近期,学习了操作系统页面置换算法,为了巩固所学知识,主要用先进先出(FIFO)页面置换算法和最近最久未使用(LRU)置换算法进行一个复习。
1.FIFO页面置换算法
此算法是淘汰最先进入内存的页面,选择在内存中驻留最久的页面予以淘汰,而替换此时需要调用的页面。
实现原理:需把一个进程已调入内存的页面按先后顺序链接成一个队列,设置一个指针(替换指针),将指针指向最久调入的页面,若在此队列中已存在,则不进行替换;否则将替换指针所指向的页面出队,新调用的页面入队。
参考实验所做的代码:
#define MAXSIZE 20
(由于太懒,就用书上的图吧(#^.^#))
最开始队列为空,所以7,0,1顺序入队,在进程第一次访问页面2时,由于7页面最先调入内存,故被换出;当在第一次访问页面3时,将最久未被使用的0号页面换出,由此类推,当换入最后一个1时,共进行了12次页面置换。
2.LRU页面置换算法:
由