4 内存管理(续)

(3)虚拟内存分配方法(虚拟内存的概念,局部性原理,实现虚拟内存所需的硬件和软件支持,请求分页(段)管理,页面置换算法)

🔎:https://blog.csdn.net/qq_31278903/article/details/83552597

1.虚拟内存的概念

1)定义

虚拟内存别称虚拟存储器。所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统

2)特征

a.多次性    b.对换性   c.虚拟性

【注】多次性和对换性必须建立在离散分配的基础上。

3)引入虚拟存储器的好处

a.在小内存中执行较大的程序。

b.提供大于内存空间的用户空间。

c.内存可容纳更多程序并发执行。

d.编程时,时空开销不再成为问题。

2.局部性原理

1)时间局部性

如果程序中的某条指令被执行,则不久以后该指令可能再次执行;如果某数据被访问过,则不久以后该数据可能再次被访问。产生时间局部性的典型原因是在程序中存在大量的循环操作

2)空间局部性

一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一点范围之内,其典型情况是程序的顺序执行

【注】

a.重复引用同一变量的程序具有良好的时间局部性

b.步长越小,空间局部性越小

c.循环有良好的时间和空间局部性,循环体越小,循环迭代次数就越多,局部性越好。

3.实现虚拟内存所需的硬件和软件支持

1)分页请求系统

分页请求系统是在分页系统的基础上增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。

  • 硬件支持

a.请求分页的页表机制   

在请求分页系统中的每个页表应含有以下诸项:

页号物理块号状态位P访问字段A修改位M外存地址

状态位(存在位)P:用于指示该页面是否已调入内存,供程序访问时参考。

访问字段A:提供给置换算法(程序)在选择换出页面时参考

修改位M标识该页在调入内存后是否被修改过

外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。

b.缺页中断机构  

(1)在指令执行期间产生和处理中断信号

(2)一条指令在执行期间可能产生多次缺页中断

c.地址变换机构

  • 软件支持

有用于实现请求分页调度的软件和实现页面置换的软件

2)请求分段系统

  • 硬件支持

a.请求分段的段表机制  

请求分段的段表项:

段名段长段基址存取方式访问字段A修改位M存在位P增补位外存地址

存取方式:该字段有两位,存取属性是只执行,只读和允许读写

增补位:请求分段式管理特有的字段,表明本段在运行时是否做过动态增长

b.缺段中断机构   

 c.地址变换机构

 

  • 软件支持

有用于实现请求调段的软件和实现段置换的软件

4.请求分页(段)管理

5.页面置换算法

🔎:https://blog.csdn.net/qq_31278903/article/details/83552597

(4)内存保护与共享

🔍:https://blog.csdn.net/innocent_jia/article/details/88935743
 

(5)抖动的概念和处理方法

1)抖动的概念

页面置换中刚刚换出的页面马上换入内存,刚刚换出的页面马上换出内存,这种频繁的页面调度称为抖动

2)处理方法

a.优化页面置换算法  b.扩大内存

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值