41页面置换算法

页面置换算法:进程运行时,若其访问的页面不在内存中而需将其调入,但内存已经无空闲空间时,就需要从内存中调出一页程序或数据,送入磁盘的对换区
而选择调出页面的算法就称为页面置换算法。好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问的或者较长时间内不会再访问的页面先调出。
常见的置换算法有以下四种
1、 最佳置换算法(OPT)
最佳(Optimal,OPT)置换所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。但由于目前无法预知进程在内存下的页面哪个是未来最长时间内不被访问,因而算法无法实现
41页面置换算法
在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210128135704616.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTg4Mzg5MA==,size_16,color_FFFFFF,t_70)

2、 先进先出(FIFO)页面置换算法
优先淘汰最早进入内存的页面,即在内存中驻留时间。但该算法与进程实际运行时的规律不适应,因为在进程中,有的页面经常被访问。
41页面置换算法
41页面置换算法

3、 最近最久未使用(LRU)置换算法
选择最近最长时间未访问过的页面予以淘汰,它认为过去一段时间内未访问过的页面,在最近的将来可能也不会被访问。该算法为每个页面设置一个访问字段,来记录页面自上次被访问以来所经历的时间,淘汰页面时选择现有页面中值最大的予以淘汰。
41页面置换算法

4、 时钟(CLOCK)置换算法
41页面置换算法

简单的CLOCK算法是给每一帧关联一个附加位,称为使用位。当某一页首次装入主存时,该帧的使用位为1;当该页随后再被访问到时,它的使用位也被置为1。对于页替换算法,用于替换的候选帧集合看作一个循环缓冲区,并且有一个指针与之关联。当某一页被替换时,该指针被设置成指向缓冲区中的下一帧。当需要替换一页时,操作系统扫描缓冲区,以查找使用位被置为0的一帧。每当遇到一个使用位为1的帧时,操作系统就将该位重新置为0;如果在这个过程开始时,缓冲区中所有帧的使用位均为0,则选择遇到的第一个帧替换;如果所有帧的使用位均为1,则指针在缓冲区中完成循环一周,把所有使用位都置为0,并且停留在最初的位置上,替换该帧中的页。由于该算法循环地检测各页面的情况,故称为CLOCK算法,又称为最近未用算法(NRU).

41页面置换算法

上一篇:分布式自增ID算法---雪花算法 (snowflake,Java版)


下一篇:分布式唯一ID解决方案-雪花算法