- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机操作系统 ——请求页式管理 上节课内容回顾 静态页式管理 内存页面分配与回收、分配算法 、地址变换 静态页式管理可以实现虚存吗? 静态页式管理不能实现虚存,因为静态页式管理要求进程或作业在执行前全部被装入内存 请求页式管理 1. 调入方式 2. 地址变换 3. 页面置换算法 4. FIFO算法的Belady现象 1. 调入方式 当需要执行某条指令而又发现它不在内存时 当执行某条指令需要访问其他的数据或指令时,这些指令和数据不在内存中 从而发生缺页中断,系统将外存中相应的页面调入内存。 2. 地址变换 地址变换涉及到两个问题: 虚拟空间的划分问题 地址重定位或地址映射 3. 页面置换算法 3.1 最优算法(OPT算法) 基本思想:淘汰将来最远出现的页。 最优算法只具有理论上的意义 3.1 最优算法 3.2 先进先出算法(FIFO) 基本思想:总是选择在内存驻留时间最长的一页将其淘汰。 理由:最先进入内存的页面不再被访问的可能性最大。 3.3 最久未使用页面置换算法(LRU) 基本思想:当需要置换一页时,选择在最近一段时间最久未被使用的页面予以淘汰。 这种算法考虑了程序设计的局部性原理。 4. FIFO算法的Belady现象 4. Belady现象示例 4. Belady现象示例(续) 4. Belady现象示例(续) 4. Belady现象示例(续) 4. FIFO算法的Belady现象 结论:FIFO算法产生Belady现象的原因在于它根本没有考虑程序执行的动态特征。 总 结 页式管理具有如下优点: (1)由于它不要求程序段和数据在内存中连续存放,从而有效地解决了碎片问题。 (2)动态页式管理提供了内存和外存统一管理的虚存实现方式,使用户可以利用的存储空间大大增加。这既提高了主存的利用率,又有利于组织多道程序执行。 总 结 (续) * * 第一个问题可以用扩充页表的方法解决 第二个问题关于虚页不在内存时的处理,涉及到两点: 第一、采用何种方式把所缺的页调入内存。 第二、如内存中没有空闲页面,把调进来的页放在什么地方。 在页表中还应增加一项以记录该页是否曾被改变。增加改变位后的页表项如下图所示。 2. 地址变换(续) 例1:设进程P共有8页,且已在内存中分配有3个页面,页面走 向为7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1页号如下图。 解: 进程运行时,先将7,0,1三个页面装入内存,以后当进程要 访问页面2时,将会产生缺页中断.此时OS根据最优算法, 将选择页面7予以淘汰……缺页率为 9/20=45% 缺页率为15/20=75% 缺页率为12/20=60% 使用FIFO算法时,在未给进程或作业分配足它所要求的页面数时,有时会出现分配的页面数增多,缺页次数反而增加的奇怪现象。这种现象称为Belady现象,如下图所示。 例1:设进程P1共有8页,且已在内存中分配有3个页面,页面 走向为7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1页号如下图所示。 解: 进程在一个执行过程中,实际上发生了12次缺页。 如果设缺页率为缺页次数与访问串的访问次数之比, 则该例中的缺页率为12/17=70.5%。 例2:如果给进程P1分配4个页面,则在其执行过程中 内存页面的变化情况如下图所示。 解: 进程P1在拥有4个内存页面时,共发生9次缺页, 其 缺页率为9/17=52.9%。 例3:设进程P2可分为5页,访问串为1,2,3,4,1, 2,5,1,2,3,4,5。当进程P分得3个页面 时,执行过程中内存页面变化如下图所示。 解: 由图5.27可知,进程P2在执行过程中共缺页9次, 其缺页率为9/12=75%。 例4:如果为进程P2分配4个内存页面,是否缺页率会变小 呢? 执行过程中内存页面的变化情况如下图。 解: 缺页次数为10次,缺页率=10/12=83.3%。 页式管理的主要缺点: (1)要求有相应的硬件支持。 例如地址变换机构,缺页中断的产生和选择淘汰页面等。 这增加了机器成本。 (2)增加了系统开销,例如缺页中断处理等。 (3)请求调页的算法如选择不当,可能产生抖动现象。 (4)最后一页内总有一部分空间得不到利用。 如果页面较大,这一部分的损失仍然较大。
文档评论(0)