操作系统复习-虚拟存储器

虚拟存储器

虚拟存储器概述

虚拟存储器的定义和特征

定义

具有请求调入功能,能从逻辑上对内存容量加以扩充的一种存储器系统。

特征

  1. 多次性:作业允许被分成多次调入内存
  2. 对换性
  3. 虚拟性

虚拟存储器的实现方法

请求分页方法

  1. 硬件支持:页表机制,缺页中断机制,地址变换机制
  2. 软件支持

请求分段系统

请求分页式存储管理方式

请求分页中的硬件支持

请求页表机制

请求页表包含以下的部分

页号 物理块号 状态位P 访问字段A 修改位M 外存地址
  1. 状态位:指示该页是否已经被调入内存
  2. 访问字段:一段时间内被范文的次数,或则以及多久没被访问
  3. 修改位:标志该页在调入内存后是否被修改过
  4. 外存地址:指出该页在外存中的地址,通常是物理块号

缺页中断机制

范文的页面不在内存中,就要产生缺页中断

地址变换机构

请求分页中的内存分配

涉及三个问题

  1. 所需要的最小物理块数确定
  2. 应该采取什么样的分配策略
  3. 采取平均分配还是按进程大小比例分配

最小物理块的确定

最小物理块数是能保证进程正常运行所需的最小物理块数。

内存分配策略

  1. 固定分配局部置换:固定分配指的是为每个进程分配一组数目固定的物理块,在进程运行期间不再改变。局部置换指的是进程运行中发现缺页,则只能从分配给该进程中的n页中选择一页进程置换。
  2. 可变分配和全局置换:可变分配指的是先为每一个进程分配一定数量的物理块,然后在进程运行的期间,可根据情况增加或减少。全局置换指的是进程缺页,就将物理块为单位置换。
  3. 可变分配和局部置换

物理块的分配算法

  1. 平均分配算法:所有可供分配的物理块,平均分配给每个进程
  2. 按比例分配算法:物理块数 = (进程页数 / 总页数)* 可用物理块数

页面调入策略

何时调入页面

  1. 预调页策略:预测未来将会调入的页面
  2. 请求调页策略:需要某些页面的时候发现不在内存中才调入

从何处调入页面

如何调入页面

缺页率

进程的逻辑空间为n页,系统为其分配的内存物理块数为m,访问成功的次数为S,访问失败的次数为F,总访问次数为A = S + F,缺页率为f = F / A。

影响因素:

  1. 页面大小
  2. 进程所分配的物理块数目
  3. 页面置换算法
  4. 程序固有的特性

页面置换算法

不适当的算法可能会发生抖动,即刚刚换出的页很快又要被访问,又要把它重新调入。

最佳页面置换算法(OPT)

物理块越多,不一定命中率越高,因为发生了抖动。其淘汰永远或最长不访问的块。该算法无法实现,但是可以用来评价其他的算法。

先进先出页面置换算法(FIFO)

直接淘汰最早进入内存的页面

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

往左找最远的那一个进行置换

硬件支持

1、寄存器:为页面配置移位寄存器。访问物理块的是偶,把对应寄存器的R_n-1位置为1,定时信号每隔一定时间使得寄存器右移一位,具有最小数值的寄存器就是最近最久未使用的页面。

2、栈:直接淘汰栈底的页,如果命中就移动到栈顶。

最少使用页面置换算法(LFU)

最近使其最少使用的被置换

抖动与工作集

抖动

产生抖动的根本原因是系统中运行的进程太多,导致分配给每个进程的物理块太少,不能满足进程正常运行的基本要求,使得每个进程在运行的时候疯狂缺页。

缺页率开始随着物理块数增加而减少,但是超过某个数目的时候,就没有明显改善了。

预防方法

  1. 局部置换策略
  2. 把工作集算法融入处理机调度中
  3. 选择暂停的进程
  4. 利用L=S准则调节缺页率

请求分段管理方式

上一篇
下一篇