2、页面置换算法
来源:互联网 发布:安卓手机检测软件 知乎 编辑:程序博客网 时间:2024/05/16 06:14
置换的东西是页,当页的空间不够时,我们需要将一些内存中的页置换到外存中但是到底如何选择,需要使用算法实现
一、局部置换算法
置换页面的选择范围只局限于当前进程占用的物理页。
1、最优页面置换算法(OPT)
把最后要使用的页置换出来。
评价:
- 无法实现,因为无法预知未来。但是可以用来评估其他算法的效率
2、先入先出算法(FIFO)
链表记录每一页,链首记录的页在物理内存中呆的时间最长,链尾最短。把链首元素置换出去,新加的页加在链尾
评价:
- 实现简单
- 性能较差,置换出去的可能是使用最多的页
3、最近最久未使用算法(LRU)
选择最长时间没有被引用的页面的页面
缺页时计算内存每个页面最近一次的使用的时间,使用链表或栈的压入抽出,链表首最近的
评价:
- 使用栈和链表维护开销很大(在抽出栈和链表中的元素的时候需要遍历栈和链表)
- 很像最优置换算法
- 无法实现
以上算法基本无法实现
1、时钟置换算法(Clock)
对页面访问情况进行大致访问
在页表项增加访问位
页面组织成环形
- 页面装入内存,访问位初始为0
- 访问内存(读/写)时,访问位置1
- 缺页时,从指针当前位置顺序检查环形链表,访问位为0,置换该页,新装入的页的访问位置1;访问位为1,置访问位为0,指针移动到下一页,直到找到可置换的页面
2、改进后的时钟置换算法
添加一个修改位,当修改位和访问位都为0的时候置换,其他与原来的时间置换算法相同,这个以后再看看
3、最不常用算法(LFU)
使用次数最少的页被置换
Belady现象:
采用FIFO等算法时,可能出现分配的物理页面增加,缺页次数反而升高的异常现象
原因:
FIFO算法的置换特征与
LRU算法没有Belady想想
总结
LRU & FIFO & Clock
二、全局置换算法
0 0
- 2、页面置换算法
- 页面置换算法
- 页面置换算法
- 页面置换算法
- 页面置换算法
- 页面置换算法
- 操作系统页面置换算法
- 页面置换算法解析
- 操作系统页面置换算法
- 页面置换算法初步
- 页面置换算法
- 页面置换算法
- 页面置换算法
- 页面置换算法
- 页面置换算法
- 页面置换算法LRU
- 【操作系统】页面置换算法
- 页面置换算法
- 拍照上传图片与从相册中选择图片上传
- mysql中的索引
- windows中计算进程CPU占用率(一)
- 文章标题
- CocoaPods Podfile--编写格式
- 2、页面置换算法
- Java基础——赋值文档及图片
- 指针漫谈(三):有关指针初始化的问题
- Android获取验证码倒计时功能(Timer实现)
- Linux安装gcc和g++
- 2016/11/10
- springMVC上传文件大小限制以及超过限制后的自定义处理
- 趣味取小数
- 小论软件工程(C编码实践篇)