说白点:缺页定义为所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页,也就是内存中不存在的待进入的页号话,就会产生缺页。明白了这个之后,对于缺页计算问题就好说了。
二、先进先出调度算法(FIFO)这种调度算法总是淘汰最新进入主存储器的那一页。这种调度算法很简单,按照装入主存储器的那些页的先后顺序排成页号队列,每当进入一个缺页时候,淘汰最早进入的那页。
举个例子:例如依次要访问的页号为:0 1 2 3 2 1 3 2 5 2 3 6 2 1 4 2,现在只有三个主存可供使用如果采用FIFO调度,请模拟 调度过程,并算出缺页中断次数?
0进入,出现缺页中断(1次)此时内存中的页号:0
1进入,出现缺页中断(1次),此时内存中的页号:01
2进入,出现缺页中断(1次)此时内存中的页号:012
3进入,淘汰0,出现缺页中断(1次),3替换0的位置,此时内存中的页号:123
2进入,没出现缺页中断情况,因为内存中已经存在页号2,内存中的页号还是:123
1进入,内存中存在页号1,没有出现缺页中断,此时内存中的页号是:123
3进入,同上,没有出现缺页中断,内存中的页号是:123
2进入,同上,没有出现缺页中断,内存中的页号是:123
5进入,这时候,对于312呆的时间最长的是:1,所以5替换1,出现缺页中断(1次),此时内存中的页号:235
2进入,没有出现缺页中断,内存中的页号:235
6进入,出现缺页中断(1次),淘汰的页面是2号,内存中的页号356
2进入,出现缺页中断(1次),淘汰的页面好是3号,内存中的页号562
1进入,出现缺页中断(1次),淘汰的页面号是5号,内存中的页号是621
4进入,出现缺页中断(1次),淘汰的页面号是6号,内存中的页号是214
2进入,没有出现缺页中断,内存中的页号是214
所以,如果采用先进先出的调度算法,共出现缺页中断8次,其内存模拟情况如下表:
进入 时间 | 0 | 1 | 2 | 3 | 2 | 1 | 3 | 2 | 5 | 2 | 3 | 6 | 2 | 1 | 4 | 2 |
早 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 3 | 5 | 6 | 2 | 2 |
中 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 5 | 6 | 2 | 1 | 1 | |
晚 | 2 | 3 | 3 | 3 | 3 | 3 | 5 | 5 | 5 | 6 | 2 | 1 | 4 | 4 | ||
是否 缺页 | 是 | 是 | 是 | 是 | 不是 | 不是 | 不是 | 不是 | 是 | 不是 | 不是 | 是 | 是 | 是 | 是 | 不是 |
*红色的数字,是最新进入内存的页号
对于先进先出模拟过程,不难发现一下特点:
1、第一次进入内存的,肯定出现缺页;
2、没出现缺页的,连续的列是相同的;
3、淘汰的页面是呆在内存中时间最长的;
最近最久未使用调度算法认为:最近经常被使用到的页和可能马上就要被访问,因此不能调出。相反,如果有过去一段时间里没有被访问过的页,在最近的将来也可能暂时不会被访问。所以需要装入新页时,应选择在最近一段时间里最久没有被使用过的页调出。
仍然以上述为例子,采用LRU调度,
首先0进入,缺页(1次),此时内存中的页号按照使用频率的顺序:0
1进入,缺页(1次),此时内存中的页号按照使用频率的顺序:01
2进入,缺页(1次),此时内存中的页号按照使用频率的顺序:012
3进入,缺页(1次),最久未使用为0页号,被3替换,此时内存中的页号按照使用频率的顺序:123
2进入,不缺页,此时内存中的页号按照使用频率的顺序:132
1进入,不缺页,此时内存中的页号使用频率的顺序:321
3进入,不缺页,此时内存中的页号使用频率的顺序:213
2进入,不缺页,此时内存中的页号使用频率的顺序:132
5进入,缺页(1次),最久未使用的页号是1号,淘汰掉,此时内存中的页号使用频率的顺序:325
2进入,不缺页,此时内存中的页号使用频率的顺序:352
3进入,不缺页,此时内存中的页号使用频率的顺序:523
6进入,缺页(1次),此时内存中的页号使用频率的顺序:236
2进入,不缺页,此时内存中的页号使用频率的顺序:362
1进入,缺页(1次),最久未使用的页号为3,此时内存中的页号使用频率的顺序:621
4进入,缺页(1次),最久未使用的页号为6,此时内存中的页号使用频率的顺序:214
2进入,不缺页,此时内存中的页号使用频率的顺序:142
所以,采用最近最久未使用的调度算法,其缺页次数:8次
其在内存中的调度模拟如下表所示:
使用 频率 | 0 | 1 | 2 | 3 | 2 | 1 | 3 | 2 | 5 | 2 | 3 | 6 | 2 | 1 | 4 | 2 |
好久 没用 | 0 | 0 | 0 | 1 | 1 | 3 | 2 | 1 | 3 | 3 | 5 | 2 | 3 | 6 | 2 | 1 |
中 | 1 | 1 | 2 | 3 | 2 | 1 | 3 | 2 | 5 | 2 | 3 | 6 | 2 | 1 | 4 | |
最近 使用 | 2 | 3 | 2 | 1 | 3 | 2 | 5 | 2 | 3 | 6 | 2 | 1 | 4 | 2 | ||
是否 缺页 | 是 | 是 | 是 | 是 | 不是 | 不是 | 不是 | 不是 | 是 | 不是 | 不是 | 是 | 不是 | 是 | 是 | 不是 |
多拿笔画画~~~