操作系统-课件页式存储管理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有一个分页式虚拟存储管理系统,每个进程在内存有3页 数据区、1页程序区,刚开始时数据区为空。现有一个进程有 以下访问序列:
1,5,4,1,2,3,2,1,5,4,2,4,3,5,1 若系统采用: (1)最近最少使用(LRU)淘汰算法 (2)先进先出(FIFO)淘汰算法 请计算缺页次数和发生缺页中断后的淘汰页号。
114 1 1 121 5 5 44 3
缺页中断
页面替换
54
32 1
5 24
答案:缺页中断的次数为11次,页面替换的次序是:5 4 3 2 1 5 2 4
工作集模型
虚拟存储技术的理论基础。
局部性原理:进程往往会不均匀地高度局部 化地访问内存。
时间局部性:刚刚被访问的页,很可能在不久的 将来还要访问。例如:循环;子程序;栈;用户 记数和总计的变量等。
页号
物理块号
0
5
1
10
2
3
3
7
分析:(1)根据题意,页内地址为10位,页号为5位。
210=1024,25=32
(2)根据给定的逻辑地址得到页号和页内地址。
035E(H)=(0000001101011110)2 从左边 数10位为页内地址,剩余为页号。页号为0。
(3)根据页号查页表,得到块号为5。
(4)将块号与块内地址组合为物理地址:
缺页中断
页面替换
15
4 23 1
5 43
答案:缺页中断的次数为12次,页面替换的次序是:1 5 4 2 3 1 5 4 3。
(2)LRU算法:
访问队列:1 5 4 1 2 3 2 1 5 4 2 4 3 5 1
1 5442 3 3 354 2 2 35 1 内 存 1551 2 2 215 4 4 23 5
快表
软硬件结合:将页表中使用最频繁的表项 (页表的的一个子集)放在cache中。称为 “快表”。
cache也称为“联想寄存器”,它不是根据 地址而是根据所存信息的全部特征或部分特 征进行存取。在这里为页号。
若要访问的页在cache中,则只需一次访问 内存。若不在,则到内存中去找,同时把新 的页表表项写入cache。
页面替换算法
最近最少使用算法(LFU):最近一段时 间内使用次数最少的页调出内存。 为每一个在内存的页设置一个计数器, 选择计数器中的值最小的调出。
最优算法(OPT):把将来一段时间内被 使用的可能性最小的页调出内存。 利用预测方法先来预测将来的使用情况。
注意:LRU、LFU之间的区别。
例 题:
一、如何知道哪些已在内存
在页表中添加一个标志位(中断位),标 志该页是否已在内存: 0:不在 1:在内存 块号 保护位 标志位
当要访问的页不在内存时
发生“缺页中断”。 缺页中断的处理过程:
保存现场 在内存中找到一个空闲块。 从磁盘上找到要调入的页。 读磁盘到内存。 恢复现场。 重新调度运行。
例题:对于利用快表且页表存于内存的分页系统,
假定CPU的一次访问内存时间为1µs,访问快表时间 忽略不计。如果85%的地址映射可直接通过快表完成, 那么进程完成一次内存读写的平均有效时间是多少?
分析:
(1)若直接通过快表完成,则只需一次访问内存。 (2)若不能,则需要两次访问内存。 (3)平均时间=1*85%+2*15%
用户作业请求:块数B 空闲块数B N
无法分配
扫描位示图,查找为0的位 计算块号 建立页表
页式系统的内存保护和共享
保护:在页表上添加一个保护位。在做地址 变换时,检查对页面的访问是否合法。
共享:根据地址转换过程可知:如果在不同 用户的页表中填上相同的页表表项(块号), 就能够访问相同的内存空间。
内存分配
用户需求:需要多少块? 内存空闲块的管理:位示图。
位示图:在内存中划出一片区域,用一位 代表一个块,该位的值表示所代表的块的状 态:
0:空闲;1:已分配。
内存分配
块号与字号、字长的关系:系统的字长 一定,内存块从0开始编号,则有: 块号=字号*字长+位号 字号=[块号/字长] (取整的意思) 位号=块号 MOD 字长
操作系统-课件页 式存储管理
地址变换过程
1、根据页号查页表,得到块号。 2、根据块号和页内地址计算物理地址。 3、例题:
例题:在分页存储管理系统中,用户编程空间共32个
页,每页大小为1024B,内存为16KB。假定某一时刻用 户页表如下,若逻辑地址为035E(H),求其所对应的 物理地址。
块号
5 12
保护位
R WR
5
5
5
5
5
用户1
Hale Waihona Puke Baidu用户2
用户3
页式虚拟存储技术
虚拟存储器:内存扩充技术,为用户提供一 个比实际内存大得多的内存空间。
实现虚拟的三个三个条件;
程序中的哪些页已经加载内存。 当要访问的页不在内存时,如何将其掉如内存? 若此时内存空间已满,如何选择换出的页?
页式虚拟的基本原理:加载作业时,只加载 那些最活跃的页,其余的页需要时再加载。 “请求调页技术”和“预调页技术”。
01011101011110=175E(H)
页表的实现—快表
从上述地址变换过程可以看出:CPU每取一条 指令或数据,都必须经过页表。
因此,页表的每一个表项都是一个动态重定位 机构。
如何实现页表,将影响系统的效率。 方式:
硬件实现:用寄存器组。但代价太高,特别是内存 很大时,是不可能的。
软件实现:将页表放在内存中。每取一条指令,要 两次访问内存。
在调入内存时,若内存已满
进行“页面替换”:从内存中选择一个页调 出内存,为新调入的页让出空间。
如果替换的不合适,则发生“抖动”或“颠 簸”现象:页在内外存之间频繁地调入调出, 系统开销很大。
页面替换算法:
先进先出法(FIFO):将最先调入内存的页调出 内存。
最近最少使用算法(LRU:least recently used)。 将最近一段时间内没有用过的页调出内存。
分析:
(1)采用FIFO方法: 将内存中的页按进入的先后次序排队,后来的加入队尾,
先来的先出去。
(1)FIFO算法
访问队列:1 5 4 1 2 3 2 1 5 4 2 4 3 5 1
1 5442 3 3 154 2 2 35 1 内 存 1554 2 2 315 4 4 23 5
115 4 4 231 5 5 42 3
相关文档
最新文档