操作系统原理虚拟存储管理技术

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3)最近最久未使用置换算法(LRU)
选择内存中最久未使用的页面被置换。这是局 部性原理的合理近似,性能接近最佳算法。但 由于需要记录页面使用时间的先后关系,硬件 开销太大。
硬件机构如:
1)计时法
系统为每个页面增设一个计时器,页面被访问时, 当时的绝对时钟内容被复制到对应的计时器中, 这样系统记录了内存所有页面最后一次被访问 的时候,淘汰时,选取计时器中最小的页面淘 汰。
2)先进先出置换算法(FIFO)
选择建立最早的页面被置换。可以通过链表来
表示各页的建立时间先后。性能较差。较早调 入的页往往是经常被访问的页,这些页在FIFO 算法下被反复调入和调出。
• Belady现象:采用FIFO算法时,如果对一个 进程未分配它所要求的全部页面,有时就会出 现分配的页面数增多,缺页率反而提高的异常 现象。
第八章 虚拟存储管理技术
实存储管理技术要求把进程全部装入内存才能 运行,在运行过程中,会出现两种可能:
1) 要求运行的进程所需的内存空间大于系统 的内存空间,只有部分进程能够装入内存运行, 而其他进程只有留在外存中等待。
2) 逻辑地址空间大于存储空间的进程无法在 系统中运行。
两种解决方案:从物理上增加内存容量或从逻 辑上扩充内存容量(虚拟存储)
一、虚拟存储器的概念
1、局部性原理
局部性原理(principle of locality):指程 序在执行过程中的一个较短时期,所执 行的指令地址和指令的操作数地址,分 别局限于一定区域。
– 时间局限性
– 空间局限性
局部性原理是实现虚拟存储器的理论 基础。
2 、虚拟存储器
• 在程序装入时,不必将其全部读入到内存, 而只需将当前需要执行的部分页或段读入到内 存,就可让程序开始执行。
在分页式存储管理的基础上,增加了请求调页 功能、页面置换功能而形成的页式虚拟存储系 统。
系统需要解决下面三个问题:
• 1)系统如何获知进程当前所需页面不在主存。 • 2) 当发现缺页时,如何把所缺页面调入主存。
3)当主存中没有空闲的页框时,为了要接受一 个新页,需要把老的一页淘汰出去,根据什么 策略选择欲淘汰的页面。
4、页面调度算法
1)最佳置换算法(OPT)
选择“未来不再使用的”或“在离当前 最远位置上出现的”页面被置换。这是 一种理想情况,是实际执行中无法预知 的,因而不能实现。可用作性能评价的 依据。
假定系统为某进程分配了三个物理块, 并考虑有以下的页面号引用串:
7,0,1,2,0,3,0,4,2,3,0,3, 2,1,2,0,1,7,0,1
1、请求分页式存储管理的基本概念
1)基本原理
运行前将一部分页面装入内存,另外一部分页 面则装入外存。在程序运行过程中,如果所访 问的页面不再内存中,则发生缺页中断,操作 系统进行页面动态调度:
a) 找到被访问页面在外存中的地址。
b) 在内存中找一个空闲块,如果没有,则按 照淘汰算法选择一个内存块,将此块内容写回 外存,修改页表。
所谓虚拟存储器,就是仅把进程的一部分装入 内存便可运行的存储器系统,它具有请求调入 功能和置换功能,是能从逻辑上对内存容量进 行扩充的一种存储器系统。
虚拟存储器的逻辑容量由系统的寻址能力和外 存容量之和所决定。
多次性:一个作业被分成多次调入内存运行;
对换性:允许在作业的运行过程中进行换进、换 出;
• 在程序执行过程中,如果需执行的指令或访 问的数据尚未在内存(称为缺页或缺段),则 由处理器通知操作系统将相应的页或段调入到 内存,然后继续执行程序。
• 另一方面,操作系统将内存中暂时不使用的 页或段调出保存在外存上,从而腾出空间存放 将要装入的程序以及将要调入的页或段。只需 程序的一部分在内存就可执行。
2)堆栈法
按照页面最后一次访问的时间次序依次排列到堆 栈中。进程访问某一页时,其对应的页面号由 栈内取出压入栈顶,因此,栈顶始终是最新被 访问页面的页面号,栈底则是最近最久没有使 用的页面号。
4)最近未使用置换算法(NRU)
近似于LRU算法,不但希望淘汰最近未使 用的页面,还希望被挑选的页面在内存 驻留期间,其页面内容没有给修改过, 因此增加两个硬件位:访问位和修改位。 0和1,0表示未访问或未修改。
• Belady现象的描述:一个进程P要访问M个页, OS分配N个内存页面给进程P;对一个访问序 列S,发生缺页次数为PE(S,N)。当N增大时, PE(S, N)时而增大,时而减小。
• Belady现象的原因:FIFO算法的置换特征与 进程访问内存的动态特征是矛盾的,即被置换 的页面并不是进程不会访问的。
c)修改为M:纪录该页面在调入内存后是否被修 改过。
d)外存地址:指出该页在外存上的地址,通常 是物理块号,供调入该页时使用。
3)地址变换机构 图8-2
2、内存分配策略 1)内存页面分配策略 a)平均分配 b)按进程大小比例分配
c) 按进程优先级比例分配 d)按进程长度和优先级比例分配
2)外存块的分配策略
虚拟性:能从逻辑上扩充内存容量,是用户“看 到”的内存容量远大于实际大小。
该特征是以上两个特征为基础的。
二、请求分页式存储管理方式
请求式分页也称虚拟页式存储管理,与 纯分页存储管理不同,请求式分页管理 系统在进程开始运行之前,不是装入全 部页面,而是装入一个或零个页面,之 后根据进程运行的需要,动态源自文库入其它 页面;当内存空间已满,而又需要装入 新的页面时,则根据某种算法淘汰某个 页面,以便装入新的页面。
c) 读入所需得页面,修改页表。
d) 重新启动进程,执行被中断的指令。
2)页表机制
页表中除了页号和物理块,增加若干项,以完 成调入功能和置换功能
a)状态位P:指示该页是否已经调入内存,0表 示该页已在内存,1表示该页不再内存。
b)访问位A:纪录该页在一段时间内被访问的次 数,或最近已经有多少时间没有访问,供置换 算法选择页面时参考。
a) 静态分配:一个进程在运行前,将所有 页面全部装入外存。当一个外存页面被 调入内存,所占用的外存页面不释放。
b) 动态分配:一个进程运行前,仅将没有 装入内存的部分装入外存,当某页面被 调入内存时,释放所占用的外存空间。
3、页面调入时机 1)请求调页策略 发生缺页中断时进行页面调度 2)预调页策略 每次调入若干个页面
相关文档
最新文档