(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.扩大内存
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!