题目:一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1,3,2,1,2,1,5,1,2,3},采用LRU算法时,缺页数是______次。
LRU算法
简介:算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。
以{1,3,2,1,2,1,5,1,2,3}为例子,进行LRU算法演示,假设把三主存块想象成长度为3的数组。开始演示:
1 进入 —> 1(缺1)
3 进入 —> 3 1 (刚使用的放在前面(左边),未使用的依次后移(右移))(缺3)
2 进入 —> 2 3 1(缺2)
1 进入 —> 1 2 3(把原本的1移出)
2 进入 —> 2 1 3
1 进入 —> 1 2 3
5 进入 —> 5 1 2 (进行页面置换,3是最少使用的所以换出)
1 进入 —> 1 5 2
2 进入 —> 2 1 5
3 进入 —> 3 2 1(进行页面置换,5是最少使用的所以推出)
总共进行了两次页面置换,所以缺页数=3+2=5,这个3代表前三个缺的,2代表置换的次数,缺页率为5/10=0.5;
页面置换算一次缺页数,
FIFO算法
简介:FIFO(First In First Out)就是先进先出的意思,算法的核心是更换最早进入内存的页面。
以{1,3,2,1,2,1,5,1,2,3}为例子,进行FIFO算法演示,假设把三主存块想象成长度为3的数组。开始演示:
1 进入 —> 1(缺1)
3 进入 —> 1 3(最先进入内存的放在前面(左边))(缺3)
2 进入 —> 1 3 2(缺2)
1 进入 —> 1 3 2(当放入1的时候,已经存在,不需要置换)
2 进入 —> 1 3 2(当放入2的时候,已经存在,不需要置换)
1 进入 —> 1 3 2(当放入1的时候,已经存在,不需要置换)
5 进入 —> 3 2 5 (进行页面置换,1是最早进去内存所以换出)
1 进入 —> 2 5 1(进行页面置换,3是最早进去内存所以换出)
2 进入 —> 2 5 1(当放入2的时候,已经存在,不需要置换)
3 进入 —> 5 1 3(进行页面置换,5是最少使用的所以推出)
总共进行了三次页面置换,所以缺页数=3+3=6,这个3代表前三个缺的,3代表置换的次数,缺页率为6/10=0.6;
OPT算法
简介:从主存中移出永远不再需要的页面,如果没有这样的页面存在,那就选择最长时间不需要访问的页面,来保证最低的缺页率。
以{1,3,2,1,2,1,5,1,2,3}为例子,进行LRU算法演示,假设把三主存块想象成长度为3的数组。开始演示:
1 进入 —> 1(缺1)
3 进入 —> 1 3(下次出现1的下标比下次出现的3的下标小,所以把3放后面(右边))(缺3)
2 进入 —> 1 2 3(下次出现1的下标比下次出现的3的下标小,下次出现2的下标比下次出现3的下标小,下次出现1的下标比下次出现2的下标小,所以把3放最后面(最右边),把1放在最前面(最左边))(缺2)
1 进入 —> 2 1 3(当放入1的时候,已经存在,不需要置换)
2 进入 —> 1 2 3(当放入2的时候,已经存在,不需要置换)
1 进入 —> 1 2 3(当放入1的时候,已经存在,不需要置换)
5 进入 —> 1 2 5 (进行页面置换,3下次出现的下标比1和2都小,换出)
1 进入 —> 2 1 5(当放入1的时候,已经存在,不需要置换)
2 进入 —> 2 1 5(当放入2的时候,已经存在,不需要置换)
3 进入 —> 3 2 1(进行页面置换,2或者1或者5任选一个置换)
总共进行了两次页面置换,所以缺页数=3+2=5,这个3代表前三个缺的,2代表置换的次数,缺页率为5/10=0.5;
都看到这里了,不考虑点个赞再走嘛?