操作系统之页面置换算法
2015-08-17 10:30
288 查看
在请求分页存储管理系统中,由于使用了虚拟存储管理技术,使得所有的进程页面不是一次性地全部调入内存,而是部分页面装入。这就有可能出现下面的情况:要访问的页面不在内存,这时系统产生缺页中断。操作系统在处理缺页中断时,要把所需页面从外存调入到内存中。如果这时内存中有空闲块,就可以直接调入该页面;如果这时内存中没有空闲块,就必须先淘汰一个已经在内存中的页面,腾出空间,再把所需的页面装入,即进行页面置换。
常见的页面置换算法有:先进先出法(FIFO)、最佳置换法(OPT)和最近最少使用置换法(LRU)。
先进先出(FIFO)算法:顾名思义就是把页面中最先存在的,最先置换出来。例如:1,2,3,4,5,1,2,5,1,2,3,4,5。当内存块数量为3时,求先进先出算法的缺页次数。
由上图可知,当内存块为3块时,缺页数为10。
优缺点:先进先出法(FIFO)简单易于实现,但是性能不好,存在如果对—个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。
最佳置换(OPT)算法:就是把将来最远或不在会置换进来的页面置换出去。例如:1,2,3,4,5,1,2,5,1,2,3,4,5。当内存块数为3时,求最佳置换算法的缺页数。
由上图可知,当内存块为3时,缺页数为7。
优缺点:OPT算法因为要需要预先知道一个进程在整个运行过程中页面走向的全部情况,因此只是一种理想状态,实际是行不通的。一般用算法来衡量(如通过模拟实验分析或理论分析)其他算法的优劣。
最近最少使用算法(LRU):就是把,最近最久没有使用过的页面数置换出去。例如:1,2,3,4,5,1,2,5,1,2,3,4,5。当内存块数为3时,求最少使用算法的缺页数。
由上图可知,当内存块为3时,缺页数为10。
优缺点:LRU算法是经常采用的页面置换算法。缺点是实现上需要大量的硬件支持。
常见的页面置换算法有:先进先出法(FIFO)、最佳置换法(OPT)和最近最少使用置换法(LRU)。
先进先出(FIFO)算法:顾名思义就是把页面中最先存在的,最先置换出来。例如:1,2,3,4,5,1,2,5,1,2,3,4,5。当内存块数量为3时,求先进先出算法的缺页次数。
内存块3个 | 1 | 2 | 3 | 4 | 5 | 1 | 2 | 5 | 1 | 2 | 3 | 4 | 5 |
1 | 1 | 1 | 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | |||
2 | 2 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | ||||
3 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 |
优缺点:先进先出法(FIFO)简单易于实现,但是性能不好,存在如果对—个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。
最佳置换(OPT)算法:就是把将来最远或不在会置换进来的页面置换出去。例如:1,2,3,4,5,1,2,5,1,2,3,4,5。当内存块数为3时,求最佳置换算法的缺页数。
内存块3个 | 1 | 2 | 3 | 4 | 5 | 1 | 2 | 5 | 1 | 2 | 3 | 4 | 5 |
1 | 1 | 1 | 1 | 1 | 1 | 3 | 3 | ||||||
2 | 2 | 2 | 2 | 2 | 2 | 4 | |||||||
3 | 3 | 4 | 5 | 5 | 5 |
优缺点:OPT算法因为要需要预先知道一个进程在整个运行过程中页面走向的全部情况,因此只是一种理想状态,实际是行不通的。一般用算法来衡量(如通过模拟实验分析或理论分析)其他算法的优劣。
最近最少使用算法(LRU):就是把,最近最久没有使用过的页面数置换出去。例如:1,2,3,4,5,1,2,5,1,2,3,4,5。当内存块数为3时,求最少使用算法的缺页数。
内存块3个 | 1 | 2 | 3 | 4 | 5 | 1 | 2 | 5 | 1 | 2 | 3 | 4 | 5 |
1 | 1 | 1 | 1 | 4 | 4 | 4 | 2 | 2 | 2 | 5 | |||
2 | 2 | 2 | 2 | 5 | 5 | 5 | 3 | 3 | 3 | ||||
3 | 3 | 3 | 3 | 1 | 1 | 1 | 4 | 4 |
优缺点:LRU算法是经常采用的页面置换算法。缺点是实现上需要大量的硬件支持。
相关文章推荐
- 【CF 507E】Breaking Good
- JS定时器
- NAS硬盘损坏拷贝时的处理办法及 UBUNTU下遍历删除某目录的方法
- css基础学习-效果网站收集
- ubuntu双屏调整分辨率
- NSURLSession概述
- Android应用自动更新功能的实现
- N皇后的回溯加递归调用实现
- 转发和重定向
- Flatten Binary Tree to Linked List
- UIView
- 【BZOJ2631】tree
- pdf文件的作成
- http://phantomjs.org/page-automation.html
- php中max_input_vars默认值为1000导致多表单提交失败
- yum 安装MySQL
- impala大数据量查询/tmp/impala-scratch创建异常
- word使用
- Android引导界面设计之ParallaxViewPager视差效果
- arcengine在代码中连接MXD中配置好的要素类