Chapter 10 Virtual Memory

  1. 常规存储器段长特征
    • 一次性
      • 作业在允许前需要一次性的全部装入内存
    • 驻留型
      • 作业装入内存后,便一直驻留在内存中,直到作业结束
  2. Virtual memory: is a technique that allows the execution of processes that may not be completely in memory
    • Principle of locality
    • Only part of the program needs to be in memory for execution
    • Logical address space can therefore be much larger than physical address space
    • Need to allow pages to be swapped in and out
  3. 虚拟存储器的特征
    • 离散性:最基本
    • 多次性
    • 对换性
      • 作业在运行过程中信息在内存和外存的对换区之间换进、换出
    • 虚拟性:从逻辑上扩充内存容量
  4. 页面调入策略
    • Fetch policy
      • Prepaging
        • 主动的页面调入策略,即把那些预计很快会被访问内存的程序或数据所在的页面,预先调入内存
        • 预测的准确率不高,主要用于进程的首次调入
      • Demand paging: bring a page into memory only when it is needed
        • Less I/O needed
        • Less memory needed
        • Faster response
        • More users
        • 页表机制
          • 时在纯分页的页表机制上形成的
          • 需要在页表中再增加若干项,供程序再换进、换出时参考
            • P
              • 指示该页是否已调入内存
            • A
              • 记录被访问次数
            • M
              • 表示该页在调入内存后是否被修改过
            • 外存地址
        • 缺页中断机构
          • 每当所要访问的页面不在内存中时,便要产生一缺页中断,请求OS将所缺页调入内存
          • 与一般中断区别
            • 缺页中断在指令执行期间产生和处理中断信号,而一般中断在一条指令执行完后检查和处理中断信号。
            • 缺页中断返回到该指令的开始重新执行该指令,而一般中断返回到该指令的下一条指令执行。
            • 一条指令在执行期间,可能产生多次缺页中断
        • 当进程在运行中发生缺页时,由系统将缺页调入内存
        • 大多数系统采取此策略
        • 在调页时须花较大的系统开销,如需频繁启动磁盘I/O
        • Performance
          • Page Fault Rate 0 <= p <= 1.0
          • if p = 0 no page faults (如果p = 0 ,没有缺页)
          • if p = 1, every reference is a fault(每次访问都缺页)
          • Effective Access Time (EAT)(有效存取时间)
          • EAT = (1 – p) x memory access  + p(page fault overhead + [swap page ] + [restart overhead])
    • Assignment policy
    • 从何处调入页面
      • 外存被分为两部分:文件区和对换区。对换区(连续分配)的磁盘I/O速度比文件区(离散分配)要高
      • 从文件系统中调入页面
      • 从交换区中调入页面
  5. Page replacement
    • Find some page in memory, but not really in use, swap it out
    • 如果没有空闲帧,需要两个页面传输,一个换出,一个换入
    • Algorithms
      • OPT:  Replace page that will not be used for longest period of time
      • FIFO
        • Bleady异常现象
      • LRU
        • Counter implementation
          • Every page entry has a counter
        • Stack implementation
          • Keep a stack of page numbers in a double link form
      • LRU近似算法
        • (1) Reference bit
          • With each page associate a bit, initially = 0
          • When a page is referenced page, bit set to 1
          • Replace the one whose bit is 0, however, we do not know the order
        • (2) Second chance
          • Need a reference bit
          • Clock replacement
        • (3) Enhanced second chance
          • 不仅要考虑页面的使用情况,还要考虑置换代价,选择淘汰页面时,既要是未被访问的,还要是未被修改的页面
          • 实现
            • 设置两位
              • 访问位A,修改位M
              • 启动一个进程时,A、M置0
              • A被定期置零
            • 步骤
              • OS首先寻找第0类页面,将找到的第一个页面淘汰;
              • 若没找到,则找第1类页面,将找到的第一个页面淘汰,并将扫描过的页面的A位全部置为0;
              • 若没找到,则指针回到开始位置,将所有的A位置为0。然后重复第一步。
      • Counting algorithms
        • LFU
          • Replaces page with smallest count
        • MFU
          • Based on the argument that the page with the smallest count was probably just brought in and has yet to be used
  6. Allocation of frames
    • Each process needs minimum number of pages
      • 保证进程正常运行所需的最小物理块数
    • Major allocation schemes
      • Fixed allocation
        • Equal allocation
        • Proportional allocation
      • Priority allocation
    • Global allocation & Local allocation
      • Global replacement
        • Selects a replacement frame from the set of all frames
      • Local replacement
        • Selects from only its own set of allocated frame
      • 局部置换时,分配给每个进程的帧数量不变
      • 全局置换时,进程的帧数量会增加,但是无法控制页错误率
      • 相对而言,全局替换会带来较高的系统吞吐率
  7. Thrashing
    • 刚被换出的页很快又被访问,需重新调入,导致系统频繁地交换页面,以致大部分CPU时间花费在完成页面置换的工作上
    • 局部置换能限制系统颠簸,但也会增加进程的有效访问时间
    • Solution
      • ∑ size of locality < total memory size
  8. Working set
    • 基本思想
      • 根据程序的局部性原理
      • 如果为进程提供与活跃页面数相等的物理块数,则可减少缺页中断次数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值