已知某进程访问以下页面:0、0、3、1、1、4、0、5、6、6、2、4、6、7、7、0、0、6、7、2,如果进程有3个页框可用且使用下列置换算法,求出现缺页的次数及缺页率。 (1)先进先出FIFO置换算法 (2)最近最久未使用LRU置换算法
时间: 2023-11-09 17:09:08 浏览: 81
假设进程开始时页框都是空的,我们可以按照题目给出的序列模拟进程访问页面的过程。
(1) 先进先出FIFO置换算法
当进程访问第4个页面时,页框中只有0被占用,所以会产生缺页,此时缺页数为1,缺页率为1/4=0.25。
当进程访问第5个页面时,页框中已经有了0、3两个页面,所以不会产生缺页。
当进程访问第6个页面时,页框中已经有了0、3、1三个页面,所以不会产生缺页。
当进程访问第7个页面时,页框中已经有了0、3、1三个页面,所以会产生缺页,此时缺页数为2,缺页率为2/7≈0.29。
以此类推,当进程访问完全部页面后,缺页数为9,缺页率为9/20=0.45。
(2) 最近最久未使用LRU置换算法
当进程访问第4个页面时,页框中只有0被占用,所以会产生缺页,此时缺页数为1,缺页率为1/4=0.25。
当进程访问第5个页面时,页框中已经有了0、3两个页面,所以不会产生缺页。
当进程访问第6个页面时,页框中已经有了0、3、1三个页面,所以不会产生缺页。
当进程访问第7个页面时,页框中已经有了0、3、1三个页面,所以会产生缺页,此时缺页数为2,缺页率为2/7≈0.29。
以此类推,当进程访问完全部页面后,缺页数为7,缺页率为7/20=0.35。
相关问题
已知某进程访问以下页面:0、0、3、1、1、4、0、5、6、6、2、4、6、7、7、0、0、6、7、2,如果进程有3个页框可用且使用下列置换算法,求出现缺页的次数及缺页率。 (1)先进先出FIFO置换算法
使用3个页框并按照先进先出(FIFO)算法进行页面置换,页面访问序列为:
0、0、3、1、1、4、0、5、6、6、2、4、6、7、7、0、0、6、7、2
首先将3个页框全部初始化为-1,表示空页框。
当访问0时,0不在页框中,将0存入页框中,此时页框为{0,-1,-1},缺页次数为1。
当访问0时,0已经在页框中,页框不变,缺页次数不增加。
当访问3时,3不在页框中,将3存入页框中,此时页框为{0,3,-1},缺页次数为2。
当访问1时,1不在页框中,将1存入页框中,此时页框为{0,3,1},缺页次数为3。
当访问1时,1已经在页框中,页框不变,缺页次数不增加。
当访问4时,4不在页框中,将4存入页框中,此时页框为{0,3,4},缺页次数为4。
当访问0时,0已经在页框中,页框不变,缺页次数不增加。
当访问5时,5不在页框中,将5存入页框中,此时页框为{0,3,5},缺页次数为5。
当访问6时,6不在页框中,将6存入页框中,此时页框为{0,3,6},缺页次数为6。
当访问6时,6已经在页框中,页框不变,缺页次数不增加。
当访问2时,2不在页框中,将2存入页框中,此时页框为{0,3,2},缺页次数为7。
当访问4时,4已经在页框中,页框不变,缺页次数不增加。
当访问6时,6已经在页框中,页框不变,缺页次数不增加。
当访问7时,7不在页框中,将7存入页框中,此时页框为{0,2,7},缺页次数为8。
当访问7时,7已经在页框中,页框不变,缺页次数不增加。
当访问0时,0已经在页框中,页框不变,缺页次数不增加。
当访问0时,0已经在页框中,页框不变,缺页次数不增加。
当访问6时,6已经在页框中,页框不变,缺页次数不增加。
当访问7时,7已经在页框中,页框不变,缺页次数不增加。
当访问2时,2已经在页框中,页框不变,缺页次数不增加。
因此,现缺页的次数为8,缺页率为8/20=40%。
已知某程序访问以下页面:0,1,4,2,0,2,6,5,1,2,3,2,1,2,6,2,1,3,6,2如果程序有以下3个页框可用且使用下列替换算法,求出现缺页的次数。(1)FIFO替换算法(2)LRU...
好的,我来回答你的问题。
1. FIFO替换算法
首先,我们需要了解什么是FIFO替换算法。FIFO替换算法是指将最先进入页框的页面替换出去,也就是说,如果新的页面需要装入页框,就将最先进入页框的页面替换出去。
对于你提供的页面序列,我们可以使用FIFO替换算法来模拟页面的访问情况。假设初始状态下,我们有3个页框可用,且都没有被使用过。那么,我们可以按照页面的访问顺序来模拟:
0,1,4,2,0,2,6,5,1,2,3,2,1,2,6,2,1,3,6,2
首先,我们将页面0、1、4装入页框中,此时页框的情况为:
```
0 1 4
- - -
- - -
- - -
```
接着,程序访问页面2,需要将页面0替换出去。因此,页框的情况变为:
```
2 1 4
- - -
- - -
- - -
```
然后,程序访问页面0,发现页面0已经在页框中了,不需要做任何操作。页框的情况仍然是:
```
2 1 4
- - -
- - -
- - -
```
接下来,程序访问页面2,发现页面2已经在页框中了,不需要做任何操作。页框的情况仍然是:
```
2 1 4
- - -
- - -
- - -
```
然后,程序访问页面6,需要将页面1替换出去。因此,页框的情况变为:
```
2 6 4
- - -
- - -
- - -
```
再接着,程序访问页面5,需要将页面4替换出去。因此,页框的情况变为:
```
2 6 5
- - -
- - -
- - -
```
然后,程序访问页面1,需要将页面2替换出去。因此,页框的情况变为:
```
1 6 5
- - -
- - -
- - -
```
接下来,程序访问页面2,需要将页面6替换出去。因此,页框的情况变为:
```
1 2 5
- - -
- - -
- - -
```
然后,程序访问页面3,需要将页面5替换出去。因此,页框的情况变为:
```
1 2 3
- - -
- - -
- - -
```
再接着,程序访问页面2,需要将页面1替换出去。因此,页框的情况变为:
```
2 2 3
- - -
- - -
- - -
```
然后,程序访问页面6,需要将页面3替换出去。因此,页框的情况变为:
```
2 2 6
- - -
- - -
- - -
```
最后,程序访问页面2,需要将页面2替换出去。因此,页框的情况变为:
```
2 2 6
- - -
- - -
- - -
```
在上述过程中,程序一共发生了9次缺页,因此,FIFO替换算法的缺页次数为9次。
2. LRU替换算法
接下来,我们来看一下LRU替换算法。LRU替换算法是指将最近最少使用的页面替换出去,也就是说,如果新的页面需要装入页框,就将最近最少使用的页面替换出去。
对于你提供的页面序列,我们可以使用LRU替换算法来模拟页面的访问情况。假设初始状态下,我们有3个页框可用,且都没有被使用过。那么,我们可以按照页面的访问顺序来模拟:
0,1,4,2,0,2,6,5,1,2,3,2,1,2,6,2,1,3,6,2
首先,我们将页面0、1、4装入页框中,此时页框的情况为:
```
0 1 4
- - -
- - -
- - -
```
然后,程序访问页面2,需要将页面0替换出去。因此,页框的情况变为:
```
2 1 4
0 - -
- - -
- - -
```
接着,程序访问页面0,需要将页面1替换出去。因此,页框的情况变为:
```
2 0 4
- 1 -
- - -
- - -
```
然后,程序访问页面2,需要将页面4替换出去。因此,页框的情况变为:
```
2 0 2
- 1 -
4 - -
- - -
```
接下来,程序访问页面6,需要将页面1替换出去。因此,页框的情况变为:
```
2 0 6
- 1 -
4 - -
- - -
```
然后,程序访问页面5,需要将页面4替换出去。因此,页框的情况变为:
```
2 0 6
- 1 5
4 - -
- - -
```
接着,程序访问页面1,需要将页面0替换出去。因此,页框的情况变为:
```
2 1 6
- 0 5
4 - -
- - -
```
然后,程序访问页面2,需要将页面4替换出去。因此,页框的情况变为:
```
2 1 6
- 0 5
4 - -
- - -
```
接下来,程序访问页面3,需要将页面6替换出去。因此,页框的情况变为:
```
2 1 3
- 0 5
4 - -
- - 6
```
然后,程序访问页面6,需要将页面5替换出去。因此,页框的情况变为:
```
2 1 3
- 0 6
4 - -
- - -
```
最后,程序访问页面2,需要将页面0替换出去。因此,页框的情况变为:
```
2 1 3
- 0 6
4 - -
- - -
```
在上述过程中,程序一共发生了10次缺页,因此,LRU替换算法的缺页次数为10次。
综上所述,对于你提供的页面序列和3个页框的情况,FIFO替换算法的缺页次数为9次,而LRU替换算法的缺页次数为10次。