操做系统--页面置换算法


在这里插入图片描述咱们这里只学习局部页面置换算法!

功能:当缺页中断发生时,须要调入新的页面而内存已满时,选择内存当中那个物理页面被替换
目标:尽量减小页面的换进换出次数(即缺页中断的次数)算法

1、最优页面置换算法

把将来再也不使用的或短时间内较少使用的页面换出

最优页面置换算法,是不可能实现的,由于它是须要知道将来的,因此最优页面置换算法,只能看成页面置换算法中的一个理想标准。shell

咱们其余的页面置换算法是经过局部性原理的指导下经过过去的数据,对将来进行预测,能够经过和最优页面置换算法进行比较,来测评其余页面置换算法的效果。性能

在这里插入图片描述

2、先进先出算法(FIFO)

基本思路:选择在内存中驻留时间最长的页面并淘汰
缺点:性能较差,调出的页面有多是常常须要被访问的页面,而且有Belady现象。FIFO算法不多单独使用。学习

FIFO的实例:
 注意最开始的a、b、c、d进入内存的顺序!.net

3、最近最久未使用算法(LRU)

基本思路:当一个缺页中断发生时,选择最久未使用的那个页面并淘汰。
特色:它是对最优页面置换算法的一个近似,其依据仍是程序的局部性原理。code

LRU实例:
在这里插入图片描述blog

4、时钟页面置换算法

它是一种LRU的近似,对FIFO的一种改进
在这里插入图片描述实例:
在这里插入图片描述产生缺页中断,咱们要在存在内存里的页中选一个,放入硬盘,因此存在位确定都是1,最开始指向page0,最早进入内存那个,而后像时钟同样依次找到每一个page,若used bit=1,则将其置为0,used bit=0,则将此页放入硬盘!图片

5、二次机会法

在原来的clock方法中,再加入一位dirty bit,标志这个页是否写入过,写入时,此位会置1,没写过的页,硬盘和此页内容一致,因此不须要再回写到磁盘,写过的页,须要回写到磁盘,开销较大。内存

二次机会法,意味着有两次机会,这两次机会是给最近被写入过的页的,只要used bit和dirty bit都为0,才能被替换。
在这里插入图片描述get

相关文章
相关标签/搜索