在内存而需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据,送磁盘的对换区中。但应将哪个页面调出,须根据一定的算法来确定。通常,把选择换出页面的算法称为页面置换算法Page_Replaceme
tAlgorithms。
4
f一个好的页面置换算法,应具有较低的页面更换频率。从理论上讲,应将那些以后不再会访问的页面换出,或将那些在较长时间内不会再访问的页面调出。
㈠常见置换算法①最佳置换算法Optimal:
它是由Belady于1966年提出的一种理论上的算法。其所选择的被淘汰页面,将是以后永不使用的或许是在最长未来时间内不再被访问的页面。采用最佳置换算法,通常可保证获得最低的缺页率。但由于人目前还无法预知一个进程在内存的若干个页面中,哪一个页面是未来最长时间内不再被访问的,因而该算法是无法实现的,便可以利用此算法来评价其它算法。
②先进先出FIFO页面置换算法:
这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。
③LRU置换算法:
LRULeastRece
tlyUsed置换算法的描述FIFO置换算法性能之所以较差,是因为它所依据的条件是各个页面调入内存的时间,而页面调入的先后并不能反映页面的使用情况。最近最久未使用(LRU)置换算法,是根据页面调入内存后的使用情况进行决策的。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一
个页面时,选择现有页面中其t值最大的,即最近最久未使用的页面予以淘汰。
5
f七、各模块的伪码算法
(1)先进先出算法伪码算法
voidfifo
先进先出算法
i
ti2mj
queye1
a10a00
forj1j20j
ifi3i1
iffi
djF调用查找函数
aija0j
form1m4m
ifmiamjamj1
queyequeye1
ii1
else
a1ja1j1
a2ja2j1
a3ja3j1
retur
F
(2)OPT置换算法伪码算法
voidopt
OPT置换算法
i
tijmt
a10a00
forj1j3j
fori1ij2i
ifij1
aija0j
else
aijaij1
6
fi
tfi
doi
tj
查找OPT的函数
ifa1j1a0mxmifr