易学笔记-系统分析师考试-第3章 操作系统基本原理/3.3 内存管理/3.3.4 虚拟存储管理

  • 虚拟存储管理
  1. 背景:固定式、分页式、分段式存储一个共同的特点是要求的存储空间必须足够大装载入作业的全部信息,但由于作业在运行过程中,作业中所有的内存不是一次全部使用的,甚至有些内存块根本就不是使用,这样就造成了内存资源的极度浪费
  2. 虚拟存储工作过程:当作业加载到内存时,不是一次性全部加载的,而是加载当前运行到的那部分程序,而其它数据仍然是保存到外存中。当执行的指令需要访问的数据不在当前内存中的时候,再由操作系统请求调入功能将他们调入内存,如果内存已满,则还需要通过置换功能把内存中不使用的程序先调到外存,这样就能腾出空间处理当前程序。这个能从逻辑上实现内存扩展的技术叫做虚拟存储管理
  3. 虚拟存储原理:
    1. 虚拟存储的实现依赖于局部性原理。这种局部性是因为程序执行的局部性,也就是在一个很短的时间内,程序的执行只能是具体的某一部分,它所访问的存储空间也是局部的。
    2. 程序的局部性包括
      1. 时间局部性:程序的某一条执行这一个时间被执行后很大可能不久再被执行,这是由于程序存在大量的循环操作
      2. 空间局部性:程序访问的某个存储单元,不久之后它附近的存储空间也会被范围,这是由于程序是按顺序执行的
  • 工作集
  1. 抖动现象:由于虚拟存储管理会存在置换作业的页到外存的可能,这样可能会出现页不断被置换,严重时造成系统瘫痪,称这种现象为抖动现象
  2. 工作集:某段时间内,程序要进行访问的页面中的集合。
  • 页面置换算法
  1. 算法必要性:当内存中没有空闲页面,但是程序又需要从外存中调入数据到内存,这时候就需要从现在内存中选出一个或者多个页面淘汰出去,常用的算法有:
  2. 随机淘汰算法:在无法确认哪个界面被访问概率较低时,随机选择一个界面替换
  3. 转轮算法:按照内存页面的编号,循环按编号置换页面,不论这个页是刚进来的还是已经存在很久了
  4. 先进先出算法:将在内存中滞留时间最长的页置换出去。算法缺点是:滞留时间最长的页往往是被访问最频繁的页,将这些页淘汰很可能很快就要置换进来,以致交互频繁,降低内存的利用效率
    1. 举例:
  5. 最近最久未用算法:选择在离最近一段时间内未使用的页置换出去
    1. 举例:
  6. 最近没有使用页面置换算法:从最近一个时间内未被访问的任何一页置换。可以通过标志位实现,对所有的页设置开关,1表示访问,0表示未访问,系统周期性的清零
  7. 最优置换算法:选择最长时间没有访问的
  8. 时钟页面置换算法:将作业调入内存的页面连成循环队列并且设置引用位,1表示已引用,0表示未引用。指针初始化到首页界面,淘汰界面时,指针从当前位置开始扫描,如果引用位是1则修改为0,如果引用位未0则淘汰本页,指针指向下一个界面。如果所有页都是1则指针淘汰当前页,指针指向下一个界面

猜你喜欢

转载自blog.csdn.net/u011830122/article/details/84135948