已知某程序访问以下页面: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...
时间: 2024-03-18 07:45:01 浏览: 238
好的,我来回答你的问题。
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次。
阅读全文