设进程分得三个页框,其执行访问序列为:0,1,2,3,0,1,2,3,0,1,2,3,4,5,6,7试采用:(1)Belady;(2)LRU;(3)LFU;(4)FIFO算法,来分别计算缺页异常次数,并给出缺页时加进内存的页号。
时间: 2023-07-16 21:11:49 浏览: 166
假设内存只有三个页框,那么在执行访问序列时,如果某一页不在内存中,就会发生缺页异常,并将其加入内存中。下面分别使用四种算法计算缺页异常次数,并给出缺页时加进内存的页号。
1. Belady算法
Belady算法是最佳置换算法,即选择未来最长时间内不会使用到的页进行置换。
访问序列:0,1,2,3,0,1,2,3,0,1,2,3,4,5,6,7
缺页异常次数:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
加入内存的页号:0, 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3
2. LRU算法
LRU算法是最近最少使用算法,即选择最长时间没有被使用的页进行置换。
访问序列:0,1,2,3,0,1,2,3,0,1,2,3,4,5,6,7
缺页异常次数:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
加入内存的页号:0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7
3. LFU算法
LFU算法是最不经常使用算法,即选择使用次数最少的页进行置换。
访问序列:0,1,2,3,0,1,2,3,0,1,2,3,4,5,6,7
缺页异常次数:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
加入内存的页号:0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7
4. FIFO算法
FIFO算法是先进先出算法,即选择最早进入内存的页进行置换。
访问序列:0,1,2,3,0,1,2,3,0,1,2,3,4,5,6,7
缺页异常次数:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
加入内存的页号:0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7
总结:根据计算结果可以看出,Belady算法的缺页异常次数最少,但它需要预先知道未来的页访问序列,实际应用中无法实现。而LRU算法和LFU算法虽然效果不如Belady算法,但都是可行的实际算法。FIFO算法比较简单,但它并没有考虑到页面的使用情况,因此它的效果也较差。
阅读全文