最佳页面置换算法

最佳页面置换算法

ID:41511681

大小:19.18 KB

页数:7页

时间:2019-08-26

最佳页面置换算法_第1页
最佳页面置换算法_第2页
最佳页面置换算法_第3页
最佳页面置换算法_第4页
最佳页面置换算法_第5页
资源描述:

《最佳页面置换算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、最佳页面置换算法(Optimal)(非常专业)评价一个算法的优劣,可通过在一个特定的存储访问序列(页面走向)上运行它,并计算缺页数量来实现。1先入先出法(FIFO)最简单的页面置换算法是先入先出(FIFO)法。这种算法的实质是,总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。理由是:最早调入内存的页,其不再被使用的可能性比刚调入内存的可能性大。建立一个FIFO队列,收容所有在内存中的页。被置换页面总是在队列头上进行。当一个页面被放入内存时,就把它插在队尾上。这种算法只是在按线性顺序访问地址空间

2、时才是理想的,否则效率不高。因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去。FIFO的另一个缺点是,它有一种异常现象,即在增加存储块的情况下,反而使缺页中断率增加了。当然,导致这种异常现象的页面走向实际上是很少见的。现在来看下4块的情况:0123213252362142【解答】刚开始内存并没有这个作业,所以发生缺页中断一次。作业的0号页进入内存。(1次缺页中断)而页1又不在内存,又发生缺页中断一次。作业页1进入内存。(2次缺页中断)页2不在内存,发生缺页中断。页2进入内存。(3次缺页中断

3、)页3不在内存,发生缺页中断。页3进入内存。(4次缺页中断)接下来调入页2,页1,页3,页2。由于都在内存中,并不发生缺页中断。页5不在内存,发生缺页中断。页5进入内存,页5置换页0。(5次缺页中断)接下来调入页2,页3。由于都在内存中,并不发生缺页中断。页6不在内存,发生缺页中断。页6进入内存。页6置换页1。(6次缺页中断)页2在内存,不发生缺页中断。页1不在内存(在发生第6次缺页中断时被置换了),发生缺页中断。页1进入内存,页2被置换。(7次缺页中断)页4置换页3,页4进入内存。(8次缺页中断)现在调入页2,但页2在发生

4、第7次缺页中断时被置换掉了。现在页2进入内存,其置换页5。(因为这个时候是页5最先进入内存。)(9次缺页中断)2最优置换算法(OPT)最优置换(OptimalReplacement)是在理论上提出的一种算法。其实质是:当调入新的一页而必须预先置换某个老页时,所选择的老页应是将来不再被使用,或者是在最远的将来才被访问。采用这种页面置换算法,保证有最少的缺页率。但是最优页面置换算法的实现是困难的,因为它需要人们预先就知道一个进程整个运行过程中页面走向的全部情况。不过,这个算法可用来衡量(如通过模拟实验分析或理论分析)其他算法的优

5、劣。用最佳页面置换法计算缺页次数65435436545-----------666333366665555555555444444444仅仅第四列3和第八列6处,缺页.第四列处:opt算法中,页面发生冲突时,被替换的页面是未来访问最靠后的页面。例子中,第4列处,6的再次访问最靠后,因而6被替换。之后,第8列处,3被替换是因为3,4,5中未来被访问的页是4,5。所以,3被替换。3最久未使用算法(LRU)FIFO算法和OPT算法之间的主要差别是,FIFO算法利用页面进入内存后的时间长短作为置换依据,而OPT算法的依据是将来使用页

6、面的时间。如果以最近的过去作为不久将来的近似,那么就可以把过去最长一段时间里不曾被使用的页面置换掉。它的实质是,当需要置换一页时,选择在最近一段时间里最久没有使用过的页面予以置换。这种算法就称为最久未使用算法(LeastRecentlyUsed,LRU)。LRU算法是与每个页面最后使用的时间有关的。当必须置换一个页面时,LRU算法选择过去一段时间里最久未被使用的页面。LRU算法是经常采用的页面置换算法,并被认为是相当好的,但是存在如何实现它的问题。LRU算法需要实际硬件的支持。其问题是怎么确定最后使用时间的顺序,对此有两种可

7、行的办法:(1)计数器。最简单的情况是使每个页表项对应一个使用时间字段,并给CPU增加一个逻辑时钟或计数器。每次存储访问,该时钟都加1。每当访问一个页面时,时钟寄存器的内容就被复制到相应页表项的使用时间字段中。这样我们就可以始终保留着每个页面最后访问的“时间”。在置换页面时,选择该时间值最小的页面。这样做,不仅要查页表,而且当页表改变时(因CPU调度)要维护这个页表中的时间,还要考虑到时钟值溢出的问题。(2)栈。用一个栈保留页号。每当访问一个页面时,就把它从栈中取出放在栈顶上。这样一来,栈顶总是放有目前使用最多的页,而栈底放

8、着目前最少使用的页。由于要从栈的中间移走一项,所以要用具有头尾指针的双向链连起来。在最坏的情况下,移走一页并把它放在栈顶上需要改动6个指针。每次修改都要有开销,但需要置换哪个页面却可直接得到,用不着查找,因为尾指针指向栈底,其中有被置换页。因实现LRU算法必须有大量硬件支持,还需要一定的软

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。