虚拟存储器管理的技术

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

用户逻辑地址空间的分页:逻辑地址空间划分成与页架大
小相同的部分--页(逻辑页,虚页),不足一页的补齐一页。给 页从0编号---页号。
逻辑地址的表示:虚拟地址A=>数对(p,d),
p--页面号;d--虚拟地址在页面号p内相对地址(页内地址) 页面大小 L,则p= A/L; d=[A]MOD L ex:L=1000, A=3456 =>逻辑地址 (3,456)
最近未使用置换算法(Not used Recently)NUR
页表扩充:为每个页面设置两个硬件位—访问位和修改位。
访问位= 0:该页尚未被访问过 = 1:该页已经被访问过 修改位= 0:该页尚未被修改过 = 1:该页已经被修改过
页面描述子 页面号 页架号 状态 存储控制 访问位 修改位 外页地址
3. 分页存储管理策略要解决的三个问题
何时取页?取页策略


请求取页:当用到某页而不在主存时即缺页时取页 (请求式分页存储管理)。 提前取页:预先装入主存一页或几页(提前页)。
取来的页面装入主存中哪个页架?置页策略 一般装入主存任一个可用的页架中。 当需调入一页,而主存已无可用的自由页架时, 如何选择或腾出一个页架给新进入的页面? 页面置换策略/页面淘汰策略
缺页率:f = (缺页次数/访问页面总数)% 常见的页面置换算法:
最佳置换算法 OPT;先进先出置换算法FIFO;最近最 少使用置换算法LRU;最近未使用置换算法NUR;工作 集。
最佳置换算法 OPT (Optimum Strategy)
基本原则: 淘汰在将来再也不被访问,或者是在最远的将来 才能被访问的页。 特点: 无法预测作业将用到哪些页!所以此算法是无法 实现的——理论上的算法。 例:某进程分配页架数为3,其运行期间页面访 问序列:A,B,C,D,A,B,E,A,B,C,D,E,分析其按照 OPT算法进行页面置换时的缺页情况。 (堆栈式算法)
0 78 19 20 31
p占12位,页面总数为212=4K; d占12位,则页面大小为4K.
页面尺寸应是2的幂:便于由指令地址场中给出的逻辑地址计算 出其页面号p及页内地址d。若页面大小2i,把地址场从第i位分成 两部分,高位部分表示的数即页面号p, 低位部分表示的数即为页 内地址d。L=1K=1024=210, A=1005H, => p= 4H; d= 5H 15 10 9 0 0001000000000101


可提供多个大容量的虚拟存储器:作业的地址空间不 再受主存大小的限制。 主存利用率大大提高:作业中不常用的页不会长期驻 留在主存,当前运行用不到的信息也不必调入主存。 能实现多道作业同时运行。 方便用户:大作业也无须考虑覆盖问题。 缺页中断处理增加系统开销 页面的调入调出增加I/O系统的负担 此外页表等占用空间且需要管理,存在页内零头…...
8.2 分页存储管理
1.分页存储管理的基本规则 2.分页系统的地址转换 3.分页存储管理策略: 4.分页存储管理技术性能分析
5.页的共享和保护 6.分页存储管理技术的软硬件实现
1. 分页存储管理基本规则
等分主存:把主存划分成相同大小的存储块---页架(page
frame),页架大小固定不变。页架从0编号---页架号。
先进先出置换算法FIFO
页面访问序列 A B C D A B E A B C D E A B C D A B E E E C D D A B C D A B B B E C C A B C D A A A B E E + + + + + + + 缺页次数=9; 缺页率 f=9/12=75% 页面访问序列 A B C D A B E A B C D D D E A B C C C D A B B B C A A A B + + + + + 缺页次数=10; 缺页率 f=10/12=83% + + A B C D E A E D C + B A E D + C B A E + D C B A + E D C B +
缺点:

解决:尽可能减少缺页中断次数。




程序质量:尽可能使编出的程序具有高度的局部性, 则执行时可经常集中在几个页面上进行访问,减少缺 页率。 页面大小:页面大,页表小,省空间且查找快;缺页 次数相对也少;一次换页的时间长,页内零头空间浪 费的可能性较大。页面小则相反。 主存容量:一个程序运行时遇到缺页中断的次数,是 和分配给该道程序的主存容量(页架数)成反比的,但 当主存容量达到某个值时,缺页次数减少不再明显。 多数程序都有一个确定值——拐点。图8.17 淘汰算法:在淘汰页选择范围选择最合适的置换算法。
Ch8 虚拟存储器管理技术

分页存储管理 分段存储管理 段页式存储管理
8.1 基本概念
进程执行程序时要访问的是程序的指令和数据的逻 辑地址。进程在处理机上才能运行,通过处理机实 际访问指令和数据的主存地址。 严格区分逻辑地址(相对地址)及逻辑地址空间和 绝对地址(实际地址)及绝对地址空间(实存地址 空间)。 虚拟地址:把一个运行进程访问的地址称为“虚拟地址” 虚拟地址空间:一个运行进程可访问的虚拟地址集合。
主存分配原则:系统以页架为单位把主存分给作业或进程,
并且分给一个作业或进程的页架不一定是相邻和连续的。即作 业可以按页为单位零散地放在主存不连续的页架中。 页面 与页架一一对应(对应关系由页表记录)。
页表:系统在作业装入主存时建立进程的同时建立的,记录各页 面的调度情况。页表表目也称为页描述子(page descriptor),包括 页号、状态、页架号、页面存储控制字段。页表起始地址b和表 长L一般放在该作业进程的PCB中,当进程投入运行时先装入页 表地址寄存器。 分页系统中地址结构:虚拟地址(p,d)在指令场中的物理表示。 Ex. IBM 页号P 页内地址d
最近最少使用置换算法LRU (Least Recently Used )
基本原则:选择最近一段时间内最长时间没有被访
问过的页面淘汰。
基本理由:认为过去一段时间里不曾被访问过的页, 在最近的将来也可能不再会被访问。 实现困难:需为每个页设置一个特定单元,记 录上次访问后到现在的时间量t,并选择t最大的 页淘汰。无论硬件还是软件实现开销都很大! 实际应用:近似算法NUR!
相关映象与直接映象结合的地址转换(续)

程序运行的局部性:
• 时间局部性:刚被访问过的单元很快再被访问; • 空间局部性:刚被访问过的单元的邻近单元很快 再被访问。

由于程序运行的局部性特点,使相关存储器 命中率达90%左右,速度约降低10%以下。 Ex: Z8000,16个表目,命中率96% NS32032,32个表目,命中率97%

相关映象的地址转换:图8.4



页表放在相关存储器(关联存储器):快表/相关页表 相关存储器:硬件寄存器,且有一定的判断能力,实现按内 容检索。 虚拟地址v由硬件截成两部分:(p,d); 用p与相关存储器中各表 目同时比较,查得其所在表目,自动送出页架号p’,再与d构 成实地址(p’,d) 处理机执行速度提高,但高速相关存储器很贵。
实地址:处理机可直接访问的主存的地址称为“实地址” 实地址空间:计算机主存称为“实地址空间”。
动态地址映象机构:实现由虚拟地址到实际地址的转换。 (把程序的指令和数据所在的虚拟地址放入主存实地址中去)
虚拟地址空间(虚存)>>实地址空间(主存) 虚存地址空间大小取决于:

指令中的地址长度; 外存空间的大小。
虚拟存储器:是一个地址空间,是进程访问的 逻辑地址空间,而不是物理主存空间。最大虚拟
地址空间往往取决于指令中的地址长度限制(因外存 空间通常大于指令地址长度所限定的范围)。
虚存管理:由OS自动实现,对用户是透明的。


决定把作业虚拟地址空间的哪一部分装入主存; 放在主存的什么位置; 主存空间不够时把哪一部分置换出主存。
0000 1000 作业 1 0000 1000 2000 3000 4000 作业 2 0000 1000 2000 3000 作业 3
页号 状态 页架号 0 Y 6 1 Y 7 0 1 2 3 4 0 1 2 3 Y Y Y N N Y Y N N 2 5 8 3 10 -
0000 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
操作 系统 作业 2 第 0 页 作业 3 第 0 页 空闲 作业 2 第 1 页 作业 1 第 0 页 作业 1 第 1 页 作业 2 第 2 页 空闲 作业 3 第 1 页
页面映象表(页表)
逻辑地址空间
物理存储(主存)
2.分页存储管理地址转换
直接映象的地址转换:图8.3
进程被调度:该进程页表起始地址和表长送页表寄存器 R=(L,b); 进程访问虚地址v:地址映象硬件把v->(p,d); 比较页面号p与页表长L,判断是否越界; 页访问合法——按p索引页表:b+p*i => 第p个页面对应页表 表目——页描述子(页架号p’)(i为表目长度) 根据该表目中存储控制字段检验访问权限是否合法; 硬件计算实际地址:页架号p’与 d构成物理地址(p’,d)。 页表放在主存中系统表格区: 主存页架数N=主存大小/页大小;最多可存放N个页面,必然还 有未能调入主存的页面,即所有进程页表表目数之和>=N,页表 所占空间=页表表目数 * 每个表目长度l>=N*l 缺点:访问两次主存(页表,数据),处理机执行速度降低1/2。
最近最少使用置换算法LRU
页面访问序列 A B C D A B E A B C D E A B C D A B E A B C D E A B C D A B E A B C D A B C D A B E A B C + + + + + + + 缺页次数=10; 缺页率=10/12=83% + + +
相关映象与直接映象结合的地址转换:图8.5


用8~16个高速相关存储器:存放正在运行进程当前最常用的 部分页面的页描述子(页表的子集)。 全部页表存放在主存系统区。 同时进行相关映象和直接映象(比较快表和主存页表-慢表), 相关映象成功,就自动停止直接映象工作;否则由直接映象 找出p’并与d构成实地址,同时把该表目送入相关存储器。
页面置换算法/页面淘汰算法
页的置换算法:当发生缺页,而主存中已无空闲页架
时,需选一页淘汰。选取淘汰页的方法叫页的置换算法。
抖动:刚被淘汰出去的页,不久又被访问,又需把它
调入而将另一页淘汰出去,很可能又把刚调入的或很快 要用的页淘汰出去了。如此反复更换页面,以至系统大 部分机时花在页面的调度和传输上,系统的实际效率很 低。这种现象称为“抖动”。
最佳置换算法OPT
页面访问序列 A B C D A B E A B C D E A A A A B A A B E E E E B B B A B B E B C D D C D D D E A A B C C + + + + 缺页次数=7; 缺页率=7/12=58% + + +
先进先出置换算法FIFO (first-in,first-out)
基本原则:选择最早进入主存的页面淘汰。 理由:最早进入的页面其不再使用的可能性比最近 调入的页面要大。 实现简单:把进入主存的各页面按进入主存的时间
次序构成队列(链表或表格),总是淘汰队头的页 面。
缺点:是理想的,否则效率 不高。 异常现象:对于一些特定的访问序列,随分配页架数增加, 缺页频率反而增加!
基本原则:淘汰最近未使用的页,且希望其在主存逗 留期间页面内的数据未被修改过!
过程:


开始时所有页的访问位,修改位都为0。访问/修改时再置1。 当选择淘汰页时,按照 访问位 0 0 1 1 的顺序淘汰。 修改位 0101 周期性地对访问位清零!
4.分页存储管理技术性能分析
优点:

相关文档
最新文档