赞
踩
在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。
这是一种理想情况下的页面置换算法,但实际上是不可能实现的。该算法的基本思想是:发生缺页时,有些页面在内存中,其中有一页将很快被访问(也包含紧接着的下一条指令的那页),而其他页面则可能要到10、100或者1000条指令后才会被访问,每个页面都可以用在该页面首次被访问前所要执行的指令数进行标记。
最佳页面置换算法只是简单地规定:标记最大的页应该被置换。这个算法唯一的一个问题就是它无法实现。当缺页发生时,操作系统无法知道各个页面下一次是在什么时候被访问。虽然这个算法不可能实现,但是最佳页面置换算法可以用于对可实现算法的性能进行衡量比较。
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
算法执行如下操作步骤:
最简单的页面置换算法是先入先出(FIFO)法。这种算法的实质是:总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。理由是:最早调入内存的页,其不再被使用的可能性比刚调入内存的可能性大。建立一个FIFO队列,收容所有在内存中的页。被置换页面总是在队列头上进行。当一个页面被放入内存时,就把它插在队尾上。
这种算法只是在按线性顺序访问地址空间时才是理想的,否则效率不高。因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去。
FIFO的另一个缺点是,它有一种异常现象,即在增加存储块的情况下,反而使缺页中断率增加了。当然,导致这种异常现象的页面走向实际上是很少见的。(先进先出的性能最差,因为与通常页面的使用规则不符合,所以实际应用少)
算法执行如下操作步骤:
4 | 3 | 2 | 1 | 4 | 5 | 4 | 3 | 2 | 1 | 5 |
---|---|---|---|---|---|---|---|---|---|---|
4 | 4 | 4 | 3 | 2 | 1 | 4 | 5 | 3 | 2 | |
3 | 3 | 2 | 1 | 4 | 5 | 3 | 2 | 1 | ||
2 | 1 | 4 | 5 | 3 | 2 | 1 | 5 |
缺页次数=总列数-空白列数=7
缺页率=缺页数/总列数=87.5%
FIFO算法和OPT算法之间的主要差别是,FIFO算法利用页面进入内存后的时间长短作为置换依据,而OPT算法的依据是将来使用页面的时间。如果以最近的过去作为不久将来的近似,那么就可以把过去最长一段时间里不曾被使用的页面置换掉。它的实质是:当需要置换一页时,选择在之前一段时间里最久没有使用过的页面予以置换。这种算法就称为最久未使用算法(Least Recently Used,LRU)。
LRU算法是与每个页面最后使用的时间有关的。当必须置换一个页面时,LRU算法选择过去一段时间里最久未被使用的页面。(LRU算法是经常采用的页面置换算法)
算法执行如下操作步骤:
依次类推直到最后一个页面访问完。下图为采用最近最久未使用的置换算法的置换图。由图可得,采用最近最久未使用置换算法发生了3次缺页中断。
A. 7
B. 8
C. 9
D. 10
正确答案: D
答案解析:
最开始内存块是空的,即会产生三次中断。
访问页号序列号:1、2、3、4、1、2、5、1、2、3、4、5、6
第一次(1):1
第二次(2):1 2
第三次(3):1 2 3
第四次(4):2 3 4
第五次(1):3 4 1
第六次(2):4 1 2
第七次(5):1 2 5
未改变(1)
未改变(2)
第八次(3):2 5 3
第九次(4):5 3 4
未改变(5)
第十次(6):3 4 6
总共10次
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。