在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。
常见的页面置换算法有:
- 最佳置换算法(OPT)
最佳置换算法是一种理论上的方法,其所选择的被淘汰页面将是以后永久不使用的,或许是在最长(未来)时间内不再被访问的页面。由于人们目前无法预知,一个进程在内存的若干个页面中,哪个页面是未来最长时间内不在访问的,因而该算法是无法实现的,但可以利用该算法去评价其他算法。
假定系统为某进程分配了三个物理块,并考虑有以下的页面号引用串:
利用最佳置换算法时的置换如图1(行表示页面引用串,列表示内存物理块)
由图可知采用最佳置换算法发生了9次缺页中断(一开始内存块为空,所以前三次也算缺页),6次页面置换。
- 先进先出置换算法(FIFO)
该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。利用先进先出页面置换算法时的置换如图2
- 最近最久未使用算法(LRU)
该算法是根据页面调入内存后的使用情况做出决策的。选择最近最久未使用的页面予以淘汰。用“最近的过去”近似“最近的未来”。利用LRU算法时的置换如图3