虚拟内存的定义和特征:
基于局部性的原理, 在程序装入时,可以将程序中很快用到的部分装入内存,暂时用不到的数据装入外存,就可以让程序开始执行,在程序执行过程中,当所访问的信息不在内存的时候,由操作系统负责将所需要的信息从外存调入内存,然后继续执行程序。
请求分页存储管理与基本分页存储管理的主要区别:
在程序执行过程中,当所访问的信息不在内存中,由操作系统负责将所需要的信息从外存调入内存,然后继续执行程序
若内存空间不够,由操作系统将内存暂时用不到的信息换出外存。
2.页表机制
状态位——
在基本的分页基础上增加几个表项
状态位:表示页面已经在内存中了。
访问字段
:记录最近被访问过几次,或记录上次访问的时间,供置换算法选择换出页面参考
修改位:表示页面调入内存后是否被修改过,只有修改过的页面才需在置换时写回外存。
外存地址:页面在外存中存放的位置。
3.缺页中断机构:
找到页表项后检查页面是否在内存中,若没在内存中,产生缺页中断,缺页中断中需要将目标页面调入内存,有必要还要换出页面
缺页中断属于内中断,属于内中断中的“故障”,即可能被系统修复的异常,另一方面,一条指令在执行过程中可能产生多次缺页中断。
4.地址变换机构:找到页表项是需要检查页面是否在内存中,若页面不在内存中,还需要请求调页,若内存空间不够,还需要换出页面。
最佳置换算法:(OPT)
最佳置换算法:每次选择淘汰的页面将士以后用不使用,或者在最长时间内不再被访问的页面,这样可以保证最低的缺页率
。
先进先出置换算法(FIFO)
每次选择淘汰的页面都是最早进入内存的页面的,所以实现的方法是:把调入内存的页面根据调入的先后顺序排成一个队列,需要换出页面的选择队头的页面即可。
二、页面分配、置换策略
驻留集:指请求分页存储管理中给进程分配的物理块的集合。
在采用了虚拟存储技术的系统中,驻留集大小一般小于进程的总大小
若驻留集。
2.3固定分配局部置换:系统为每个进程分配一定数量的物理块,在整个运行期间都不改变。若进程在运行中发生缺页,则只能在内存中的页面中选出一页换出,然后再调入需要的页面。这种策略的缺点是:很难在刚开始就确定为每个进程分配多少个物理块才合适。
2.4可变全局置换:刚开始会为每个进程分配一定数量的物理块,操作系统会保持一个空闲的物理块队列,当某个进程发生缺页的时候,从空闲的物理块中取出一定数量分配给该进程;若已无空闲物理块,则可选择一个未锁定的页面换出外存,仅当空闲物理块用完的时候,系统才选择一个未锁定的页面调出。被选择调出的页可能是系统中任何一个进程中的页,因此这个备选中的进程拥有的物理块会减少,缺页率会增加。
2.5可变分配局部置换:刚开始会为每个进程分配一定数量的物理块。当某个进程发生缺页的时候,只允许从该进程自己的物理块中选出换一个进程换出外存。如果进程在运行中频繁的缺页,系统会为该进程多分配几个物理块,直至该进程的缺页绿趋势适当程度
;反之,如果进程在运行中缺页绿特别低,则可适当的减少对该进程的物理块。