有一个请求分页式的虚拟存储器系统,分配给某进程三个物理块,开始时内存中预装入第1,2,3个页面,该进程的页面访问序列为1,2,4,2,6,2,1,5,6,1。 (1)若采用最佳页面置换算法,则访问过程中发生的缺页率是多少
时间: 2024-05-26 14:14:52 浏览: 233
采用最佳页面置换算法,每次缺页都将最长时间内不会被访问的页面替换出去,以保证缺页率最小化。
首先,我们可以将进程的页面访问序列分解成若干个页面访问串,每个页面访问串是一个连续的页面访问序列,其中每个页面都已经在内存中或者还未被访问过。对于每个页面访问串,最佳页面置换算法都会得到相同的结果,因此我们只需要考虑每个页面访问串的缺页情况。
进程的页面访问序列可以分解为如下的9个页面访问串:
1
2
4
2
6
2
1
5
6,
对于第1个页面访问串,由于页面1已经在内存中,因此不会发生缺页,缺页率为0。
对于第2个页面访问串,由于页面2已经在内存中,因此不会发生缺页,缺页率为0。
对于第3个页面访问串,由于页面4不在内存中,需要将一个页面替换出去。此时内存中有页面1、2、3,而这3个页面都将在未来3个页面访问之后才会被访问,因此最佳页面置换算法会选择其中的一个页面进行替换。假设选择替换页面1,则内存中的页面变成了4、2、3,缺页率为1/3。
对于第4个页面访问串,由于页面2已经在内存中,因此不会发生缺页,缺页率为0。
对于第5个页面访问串,由于页面6不在内存中,需要将一个页面替换出去。此时内存中有页面4、2、3,而这3个页面分别在未来4、2、5个页面访问之后才会被访问,因此最佳页面置换算法会选择替换页面4。替换之后内存中的页面变成了6、2、3,缺页率为2/5。
对于第6个页面访问串,由于页面2已经在内存中,因此不会发生缺页,缺页率为0。
对于第7个页面访问串,由于页面1已经在内存中,因此不会发生缺页,缺页率为0。
对于第8个页面访问串,由于页面5不在内存中,需要将一个页面替换出去。此时内存中有页面6、2、3,而这3个页面分别在未来2、4、4个页面访问之后才会被访问,因此最佳页面置换算法会选择替换页面6。替换之后内存中的页面变成了5、2、3,缺页率为3/8。
对于第9个页面访问串,由于页面6已经在内存中,因此不会发生缺页,缺页率为0。
因此,整个进程的缺页率为(0+0+1/3+0+2/5+0+0+3/8+0)/9=11/45,约为0.2444。
阅读全文