盒子
盒子
文章目录
  1. 虚拟存储器的特征
  2. 请求页式存储管理
  3. 驻留集管理
  4. 请求页式存储管理的调用策略
    1. 调入时间
    2. 调入地点
  5. 页面置换算法
    1. 最佳置换算法(OPT)
    2. 先进先出页面置换算法(FIFO)
    3. 最近最久未使用页面置换算法(LRU)
    4. CLOCK页面置换算法
      1. 执行过程
  6. 驻留集
    1. 抖动
  7. 请求段式存储管理

虚拟存储管理

虚拟存储器的特征

  • 离散性
  • 作业不装入连续的存储空间,内存分配采用离散分配方

  • 多次性
  • 一个作业被分割,被多次调入内存

  • 对换性
  • 作业在运行过程中换进、换出内存

  • 虚拟性
  • 从逻辑上扩充了内存的容量

    请求页式存储管理

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

  • P
  • 记录该页是否在内存。P=1该页在内存; P=0该页不在内存

  • A
  • 记录该页在一段时间内被访问的次数

  • M
  • 记录该页在内存期间是否被修改过。M=1该页调入内存后被修改过; M=0该页调入内存后未被修改过

    驻留集管理

  • 固定分配、局部置换
  • 为每个进程分配固定页数的内存空间、且运行过程中不变。当进程缺页时,只能从该进程在内存的几个页面中选出一页换出,然后再调入一页,保证进程的页数不变

  • 可变分配、全局置换
  • 系统开始先为每个进程分配一定数目的物理块。整个系统有一空闲物理块链,当某进程缺页时,系统从空闲链中选出一块分配给进程。空闲链为空时,OS从所有进程的页面中权衡选择一页换出

  • 可变分配、局部置换
  • 分配同上,但进程缺页时,只能从该进程在内存的页面中选出一页换出

    请求页式存储管理的调用策略

    调入时间

  • 预调
  • 请调
  • 调入地点

  • 进程的所有页面都放在对换区
  • 只将修改过的页面放在对换区,未改的放在文件区
  • UNIX系统方式,首次从文件区调入,换出时放在对换区,以后从对换区调入
  • 页面置换算法

    最佳置换算法(OPT)

    最佳置换算法

    置换哪些不再使用,或最长时间不使用的页

    页面换出6次,缺页9次

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

    先进先出页面置换算法

    页面换出12次,缺页15次

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

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

    页面换出9次,缺页12次

    CLOCK页面置换算法

    为每页设一访问位,再将内存中的所有页面链接成一循环队列

  • 当某页被访问时,其访问位置1
  • 置换算法在选择一页淘汰时,只需检查其访问位
  • 如果是0,就选择该页换出;如果是1,则重新将其置为0,暂不换出

    页面淘汰顺序为:

    1. A=0,M=0该页既未被访问过、又未被修改过,是最佳淘汰页
    2. A=0,M=1该页最近未被访问、但已被修改,可以被淘汰
    3. A=1,M=0最近已被访问,但未被修改,该页有可能再被访问
    4. A=1,M=1最近已被访问且被修改,该页可能再被访问

    A为访问位,M为修改位

    执行过程

    1. 从当前位置扫描循环队列,寻找1类页面
    2. 若1失败,开始第二轮扫描,寻找<2>类页面,并将所经过的页面的访问位置0
    3. 若2>也失败,返回到开始位置

    驻留集

    在某段事件间隔内,进程所要访问的页面集合

    驻留集

    若驻留集窗口大小过小会频繁残生缺页中断影响CPU效率,但过大就失去了虚拟存储器的意义

  • 缺页率与物理块数的关系
  • 缺页率与物理块数的关系

    将缺页率保持在上下限间

  • CPU的利用率与多道程序数的关系
  • CPU的利用率与多道程序数的关系

    抖动

    在请求分页系统中,若在内存引入过多的进程,会使进程的大部分时间都用于页面的换入/换出的操作,而几乎不能完成任何有效的工作。我们称这时的进程处于“抖动”状态。抖动产生的原因是在内存中引入过多的进程而产生的。

    预防抖动的方法:

  • 加载控制
  • L=S准则
  • 产生缺页的平均时间L等于系统处理缺页的平均时间 S

  • 采用局部置换
  • 挂起若干进程
  • 请求段式存储管理

    段号 | 段长 | 段始址 | 存取方式 | 状态位 | 访问字段 | 修改位 | 增补位 | 外存地址

  • 存取方式
  • 用于标识本段的存取属性是只执行、只读,还是允许读/写

  • 状态位
  • 指示该段是否已进驻内存

  • 访问字段
  • 用于记录本段有多长时间没有被访问

  • 修改位
  • 表示该段调入内存后是否被修改过

  • 增补位
  • 这是请求段式存储管理系统中特有的字段,用于表示本段在运行过程中是否进行过动态增长

  • 外存地址
  • 用于指出该段在外存的地址,供调入该段时使用

    支持一下
    扫一扫,支持Grooter
    • 微信扫一扫
    • 支付宝扫一扫