第5章 虚拟存储器

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

虚拟存储管理下

内存逻辑容量由内存容量和外存容量之和所决定

运行速度接近于内存速度

每位的成本却接近于外存。

虚拟存储器的实现

虚拟存储管理:允许将一个作业分多次调入内存。

虚拟存储器的特征

离散分配方式是基础

多次性:一个作业被分成多次调入内存运行

对换性:允许在作业的运行过程中进行换进、换出。(进程整体对换不算虚拟)

最终体现虚拟性:能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。

2. 请求分页存储管理方式

基本分页 + “请求调页”和“页面置换”功能。

换入和换出基本单位都是长度固定的页面

增加虚拟功能后需记录的页表项信息有变化:

(1) 状态位P :指示该页是否已调入内存。

(2) 访问字段A :用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问。(置换时考量的参数)

(3) 修改位M :该页在调入内存后是否被修改过。(关系到置换时调出的具体操作)

(4) 外存地址:用于指出该页在外存上的地址。

②缺页中断机构

每当要访问的页面不在内存时,便产生一缺页中断通知OS,OS则将所缺之页调入内存。作为中断,需经历几个步骤:

“保护CPU环境”

“分析中断原因”

“转入缺页中断处理程序”

“恢复CPU环境”等。

作为一种特殊中断,与一般中断有明显区别:

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

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

3.页面置换算法

页面置换算法(page replacement algorithms):选择换出哪些页面的算法,其好坏直接影响系统的性能。

应具有较低的缺页率:

页面调入次数(缺页次数)/总的页面使用次数

1.最佳Optimal置换算法

2.先进先出FIFO置换算法

3.最近最久未使用(LRU)置换算法

4.CLOCK置换算法

5.其他

1)最佳(Optimal)置换算法

优点:保证获得最低的缺页率

不足:无法实现,因为无法预知一进程将来的运行情况

作用:作为参照标准,评价其他算法。

2)先进先出置换算法(FIFO)

先进入的先淘汰,即选择内存中驻留时间最久的页面予以淘汰。

优点:实现简单,把一进程已调入内存的页面按先后次序组织成一个队列,并设置一个指针(替换指针),使它总是指向队首最老的页面。

不足:与进程实际运行规律不相适应(较早调入的页往往是经常被访问的页,频繁被对换造成运行性能降低)

Belady现象:出现分配的页面数增多,缺页率反而提高的异常现象。

描述:一个进程P要访问M个页,OS分配N个内存页面给进程P;对一个访问序列S,发生缺页次数为PE(S,N)。当N增大时,PE(S, N)时而增大,时而减小。

Belady现象的原因:FIFO算法的置换特征与进程访问内存的动态特征矛盾,即被置换的页面并不是进程不会访问的。

3)最近最久未使用(LRU)置换算法

无法预测将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法选择最近最久未使用(least recently used)的页面予以淘汰。

4)轮转算法(clock)

抖动

系统抖动:

为了提高处理机利用率,可增加多道程序并发度;

但进程数目增加过多,每个进程分配得到的物理块太少,在某个临界点上,会出现刚被淘汰的页很快又需重新调入;而调入不久又被淘汰出去;出现频繁缺页

大部分处理器时间都用在来回的页面调度上,这种局面称为系统抖动或颠簸(thrashing)

抖动的后果:

缺页率急剧增加

内存有效存取时间加长,

系统吞吐量骤减;系统已基本不能完成什么任务,而是忙于页面对换操作,cpu虽然忙,但效率急剧下降。

根本原因:

页面淘汰算法不合理;分配给进程的物理页面数(驻留集)太少。

常用防抖动方法:

局部置换策略;

页面调入内存前检查各进程工作集,为缺页率高的增加有限物理块;

L缺页间的平均时间=S置换一个页面所需时间,可使磁盘和cpu达到最大利用率;

抖动发生时选择暂停一些进程,调节多道程序度。

你可能感兴趣的:(第5章 虚拟存储器)