虚拟内存—页面替换算法1、最优页面替换算法OPT是目前理想化的算法,无法实现。
选择内存中被丢弃的页面的条件:重点在于以后,看物理块中哪一个页号在以后是最后才被访问使用的或者不使用的
例题:列出分配给某个进程的物理块的数量,以及下一个要使用的页码顺序,并请使用该算法绘制替换图。
777200011替换发生第一次置换的详细分析:
此时想要访问页码2,但由于三个物理块已满,发生页面错误,使用最佳页面替换算法替换其中一个。
此时,看未使用的页编号顺序的中心并进行判断,看物理块中的三个页编号中的哪个是最后访问并使用的。
从该过程中可以看到,7用于第18页访问,0用于第5页访问,1用于第14页访问。 因此,如果废弃最后使用的页码7,将页码2置换为页码7,则物理块中为2 0 1。
二、先进先出置换算法FIFO 选择内存中被淘汰页面的条件:
看看物理块的哪个页码是第一个进入的,也就是停留时间最长,然后丢弃该页码。 根据页面被读入内存的时间来决定。
第一次置换的详细分析:在上述例题中,访问使用页码2时,由于调查物理块中701中的哪一个最先进入时首先被淘汰,所以称为先进先出。
由于从页码顺序可以看出7首先进入物理块,因此丢弃页码7。
此时,物理块为2 0 1。
三、最近最长时间替换算法(least recently used,LRU )选择内存中被淘汰页面的条件:
根据页面加载到内存中后的使用情况确定。
第一次替换的详细分析:
四.至少替换算法选择内存中被淘汰页面的条件:
最近时期使用最少的页面作为废弃页面。 也就是说,将今后的页面访问顺序中哪个页面的访问次数最少作为废弃页面。
五. Clock替换算法选择内存中被淘汰页面的条件:
其他条件:
每页设置一个访问位,并将内存中的所有页面链接到循环队列。
当一个页面被访问时,访问位置为1。
如果未访问,则访问目标为0。
淘汰条件:
仅查看访问位是否为0,如果为0,则表示该页面最近被访问过且未使用,并丢弃该页面。
如果为1,则表示此页面最近访问过并使用,访问位置再次为0。
改进型Clock替换算法:在Clock替换算法中添加修改位。
使用访问位,在修改位的同时确定要废除的页面。