一个进程执行时按{0,2,5,3,6,3,0,2,3,2}顺序访问页,进程分得3块主存块,采用LRU,产生多少次缺页中断()
LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。
用链表实现算法如下:
- 新数据插入到链表头部;
- 每当缓存命中(即缓存数据被访问),则将数据移到链表头部;
- 当链表满的时候,将链表尾部的数据丢弃。
对题中所给进程序列{0,2,5,3,6,3,0,2,3,2}和3个主存块,按照LRU算法,调度过程如下:
0 !
0 2 !
0 2 5 !
2 5 3 !
5 3 6 !
5 6 3
6 3 0 !
3 0 2 !
0 2 3
0 3 2
其中标“!”的步骤中发生了缺页中断,总计7次。