- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《操作系统》课件〔五〕页式存储管理
第四章 存储管理 页式存储管理 页式虚拟存储技术 段式存储管理 分区存储管理的缺点 “碎片”问题 原因:作业要求连续的存储空间。 解决办法:允许作业占据不连续的空间。 基本原理 “等分”内存。 把内存划分为大小相同的“块”。 把用户作业空间划分为大小相同的“页”。 页和块的大小相同。 在把作业加载到内存时,页和页之间不再连续。 但页内连续。 也不必把所有的页都一次性加载内存,只需要加载那些马上要用到的页。其余的页在需要时再加载。 地址变换 逻辑地址:页号+页内地址 如何转变为内存物理地址? 考虑:物理地址=块号*块长度+块内地址 块长度一定,块内地地址与页内地址相同。 问题变为:如何根据页号得到块号? 页表: 地址变换过程 1、根据页号查页表,得到块号。 2、根据块号和页内地址计算物理地址。 3、例题: 页表的实现—快表 从上述地址变换过程可以看出:CPU每取一条指令或数据,都必须经过页表。 因此,页表的每一个表项都是一个动态重定位机构。 如何实现页表,将影响系统的效率。 方式: 硬件实现:用寄存器组。但代价太高,特别是内存很大时,是不可能的。 软件实现:将页表放在内存中。每取一条指令,要两次访问内存。 快 表 软硬件结合:将页表中使用最频繁的表项(页表的的一个子集)放在cache中。称为“快表”。 cache也称为“联想寄存器”,它不是根据地址而是根据所存信息的全部特征或部分特征进行存取。在这里为页号。 若要访问的页在cache中,则只需一次访问内存。若不在,则到内存中去找,同时把新的页表表项写入cache。 内 存 分 配 用户需求:需要多少块? 内存空闲块的管理:位示图。 位示图:在内存中划出一片区域,用一位代表一个块,该位的值表示所代表的块的状态: 0:空闲;1:已分配。 内存分配 块号与字号、字长的关系:系统的字长一定,内存块从0开始编号,则有: 块号=字号*字长+位号 字号=[块号/字长] (取整的意思) 位号=块号 MOD 字长 页式系统的内存保护和共享 保护:在页表上添加一个保护位。在做地址变换时,检查对页面的访问是否合法。 共享:根据地址转换过程可知:如果在不同用户的页表中填上相同的页表表项(块号),就能够访问相同的内存空间。 页式虚拟存储技术 虚拟存储器:内存扩充技术,为用户提供一个比实际内存大得多的内存空间。 实现虚拟的三个三个条件; 程序中的哪些页已经加载内存。 当要访问的页不在内存时,如何将其掉如内存? 若此时内存空间已满,如何选择换出的页? 页式虚拟的基本原理:加载作业时,只加载那些最活跃的页,其余的页需要时再加载。“请求调页技术”和“预调页技术”。 一、如何知道哪些已在内存 在页表中添加一个标志位(中断位),标志该页是否已在内存: 0:不在 1:在内存 块号 保护位 标志位 当要访问的页不在内存时 发生“缺页中断”。 缺页中断的处理过程: 保存现场 在内存中找到一个空闲块。 从磁盘上找到要调入的页。 读磁盘到内存。 恢复现场。 重新调度运行。 在调入内存时,若内存已满 进行“页面替换”:从内存中选择一个页调出内存,为新调入的页让出空间。 如果替换的不合适,则发生“抖动”或“颠簸”现象:页在内外存之间频繁地调入调出,系统开销很大。 页面替换算法: 先进先出法(FIFO):将最先调入内存的页调出内存。 最近最少使用算法(LRU:least recently used)。将最近一段时间内没有用过的页调出内存。 页面替换算法 最近最少使用算法(LFU):最近一段时间内使用次数最少的页调出内存。 为每一个在内存的页设置一个计数器,选择计数器中的值最小的调出。 最优算法(OPT):把将来一段时间内被使用的可能性最小的页调出内存。 利用预测方法先来预测将来的使用情况。 注意:LRU、LFU之间的区别。 工作集模型 虚拟存储技术的理论基础。 局部性原理:进程往往会不均匀地高度局部化地访问内存。 时间局部性:刚刚被访问的页,很可能在不久的将来还要访问。例如:循环;子程序;栈;用户记数和总计的变量等。 空间局部性:某个页面被访问,很可能它相临的页也要被访问。例如:数组遍历;代码程序的执行;等等。 工作集:进程活跃地访问的页面的集合。 工作集模型(续) 工作集存储管理策略力求把活跃程序的工作集保存在内存中。 从上图可以看出:仅当一个进程的全部工作集都在内存时才能运行该作业。 页式存储管理的缺陷 从理论上讲,不同用户共享程序段或数据很简单,只需在不同用户的页
文档评论(0)