- 1、本文档共169页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.4.3 动态页式管理 该算法与简单Clock算法比较,可减少磁盘的I/O操作次数。但为了找到一个可置换的页,可能须经过几轮扫描。换言之,实现该算法本身的开销将有所增加。 假定系统为某进程分配三个主存块,开始时为空,依次要访问的页号为7、0、1、2、0、3、0、4、2、3、0、3、2、1、2、0、1,采用简单Clock算法进行页面置换情况为:先将7、0、1三个页面装入内存。访问页面2时将发生缺页中断,进行页面置换,按照简单Clock算法将把页面7淘汰,因为在第一次扫描时,三个页面的访问位都是1,都被置为0,第二次扫描时,首先检查到页面7的访问位为0,先被淘汰,页面2装入内存,访问为置为1。下次访问页面0,在内存,不产生缺页中断,把页面0的访问位置为1。在访问页面3时将发生缺页中断,进行页面置换,由于页面1的访问位为0,故页面1被淘汰,页面3装入内存,访问为置为1。 5.4.3 动态页式管理 图5.24 示出了采用最佳置换算法是的内存页面的置换情况。从图中可以看出共产生了8次缺页中断。 访问序列FIFO队列 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 1 7 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 3 1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 是否中断 是 是 是 否 否 是 否 是 是 否 是 否 否 是 否 否 否 图5. 24 采用简单Clock算法时是的内存页面的置换情况 5.4.3 动态页式管理 (7)页面缓冲算法(PBA:Page Buffering Algorithm) 虽然LRU和Clock置换算法都比FIFO算法好,但它们都需要一定的硬件支持,并需付出较多的开销,而且置换—个已修改的页比置换未修改页的开销要大。而页面缓冲算法(PBA)则既可改善分页系统的性能,又可采用一种较简单的置换策略。VAX/VMS操作系统便是使用页面缓冲算法。它采用了前述的可变分配和局部置换方式,置换算法采用的是FIFO。该算法规定将—个被淘汰的页放入两个链表中的一个,即如果页面未被修改,就特将它直接放入空闲链表中;否则,便放入已修改页面的链表中。须注意的是,这时页面在内存中并不做物理上的移动,而只是将页表中的表项移到上述两个链表之一中。 5.4.3 动态页式管理 空闲页面链表,实际上是一个空闲物理块链表,其中的每个物理块都是空闲的,因此,可在其中装入程序或数据。当需要读入一个页面时,便可利用空闲物理块链表中的第一个物理块来装入该页。当有一个未被修改的页要换出时,实际上并不将它换出内存,而是把该未被修改的页所在的物理块挂在自由页链表的末尾。类似地,在置换一个已修改的页面时,也将其所在的物理块挂在修改页面链表的末尾。利用这种方式可使已被修改的页面和未被修改的页面都仍然保留在内存中。当该进程以后再次访问这些页面时,只需花费较小的开销,使这些页面又返回到该进程的驻留集中。当被修改的页面数目达到一定值时,例如64个页面,再将它们一起写回到磁盘上,从而显著地减少了磁盘I/O的操作次数。一个较简单的页面缓冲算法己在MACH操作系统中实现了,只是它没有区分已修改页面和未修改页面。 5.4.3 动态页式管理 (8)最佳置换算法(optimal replacement algorithm,OPT)。一个理想的调度算法是当要装入一个新页而必须调出一个页面时,所选择的调出页应该是以后再也不使用的页或者是距当前最长时间以后才使用的页。这种调度算法能使缺页中断率最低。然而,因为谁也无法对程序执行中要使用的页面作出精确的断言,因此这种算法是无法实现的,不过,这个理论上的算法可作为衡量各种具体算法的标准;这个算法被称为“最佳置换算法”。 5.4.3 动态页式管理 假定系统为某进程分配三个主存块,开始时为空,依次要访问的页号为7、0、1、2、0、3、0、4、2、3、0、3、2、1、2、0、1,采用最佳置换算法进行页面置换情况为:先将7、0、1三个页面装入内存。访问页面2时将发生缺页中断,进行页面置换,按照最佳置换算法将把页面7淘汰,因为页面0将在第5次被访问,页面1将在第14次被访问,而页面7以后不被访问。下次访问页面0,在内存,不产生缺页中断。在访问页面3时,由于页面0,1,2在内存,并且这三个页面在以后的访问中页面1是最晚一个要被再访问的,所以页面1被淘汰。 5.4.3 动态页式管理 图5. 25示出了采用最佳置换算法是的内存页面的置换情况。从图中可以看出共产生了7次缺页中断。 访问序列 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2
文档评论(0)