置换策略

当请求调页程序要调进一个页面,但是该作业分配所得的主内存块已经全部用完,则必须淘汰改作业在贮存中的一个页面。置换算法就是决定选择哪一个页面进行淘汰的规则。
如置换算法不够好,就会导致刚淘汰的页面又被需要,因此又被调入,这样就会导致频繁的调入调出,系统仅仅花费在程序执行上的时间比例降低。更差的情况是,当调入频率超过主存和辅存之间的传输能力时,系统要等待完后页面传输才能继续有效执行程序,因此,CPU 的效率降低了,这种情况叫做颠簸(thrashin)。页面置换算法的目的就是尽量减少和排除颠簸的出现。

1)最佳置换算法(OPT算法)

假设一个程序有n页,分配给它的主存只有m页(m<n),在程序执行过程中,主存中如果有所需要的页,就称访问成功;如果需要调业,就称为产生缺页中断。我们把缺页中断的次数和总的访问次数的比例称为缺页中断率。缺页中断率和分配的主存大小,程序大小和置换算法有关。
OPT算法是指缺页中断率最小的算法,一般是指淘汰的页面不会被使用或者很长时间内不会再被使用。这肯定是不可以实现的,因为在程序执行过程中无法预测那些页面不会再被用到,因此无法向后估计。因此,OPT算法更多的是作为和其他算法进行对比的对象。

2)先进先出算法(FIFO)

顾名思义,选择最先进入主存中的页面进行淘汰,也就是说,最早调入的页面不被使用的概率比较大。保持一个次序表即可实现。

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

顾名思义,选择最长时间未被使用的那一页进行淘汰,因为这一页面绝对是最不可能在将来用到的。这个算法实现比FIFO复杂,因为要根据每次页面的使用情况进行一次页面排序,这样就知道哪一个是最长时间未被使用的。硬件方法一般采用计数器实现,软件实现一般采用业号堆栈实现,即建立一个栈存储主存中可能淘汰的页号,当一个页面被访问过,就把这个页号放到栈顶,栈中原有的页面下移,这样栈底的页面就是需要淘汰的页面。如果一个页面已经存在,就把这个页面抽出。
这个算法最接近OPT,因为OPT是根据后续的页面进行最佳淘汰,LRU是根据使用过的页面就行最佳淘汰。

4)最不经常使用淘汰算法(LFU)

顾名思义,将最近应用次数最少的页面淘汰,可对每一个页面设置一个计数器,每一页被访问后就把计数器加1,过一段时间t后统一清除计数器。需要淘汰时,就淘汰计数值最小的页面。

页面置换算法简单对比----《operating system concepts》《操作系统原理》相关推荐

  1. 页面置换算法——最佳置换算法、最近最少使用算法、先进先出算法、时钟置换算法

    计算机操作系统--页面置换算法 根据中国大学MOOC计算机操作系统(电子科技大学)而写. 如果自己要设计页面置换,要根据什么原则来设计?我们首先想到的是存储器的局部性原理(时间局部性.空间局部性) P ...

  2. 操作系统实验:页面置换算法的模拟实现及命中率对比(学习笔记)

    操作系统实验:页面置换算法的模拟实现及命中率对比(学习笔记) 题目要求 输入要求 输出要求 编程平台 实验成果 开始模拟 错误输入 退出程序 代码实现 抽象数据类型定义 指令地址流生成 指令地址流到页 ...

  3. [Operating.System.Concepts(9th,2012.12)].Abraham.Silberschatz.文字版(恐龙书——操作系统概念 原书第九版)课后习题 参考答案

    目录 Chap01 导论 Chap02 OS结构 Chap03 进程 Chap04 线程 Chap05 同步(Synchronization) Chap06 CPU调度 Chap07 死锁 Chap0 ...

  4. 操作系统:基于页面置换算法的缓存原理详解(上)

    概述: 作为一个学计算机的一定听过缓存(注意这里是缓存,不是缓冲).比如我们在登录网页时,网页就可以缓存一些用户信息:比如我们在写界面代码的时候,可能就会遇到界面的绘制是基于一些缓存算法的.所以,了解 ...

  5. 2020-11-22(操作系统——页面置换算法)

    当内存中的页面满了之后,需要的数据又在磁盘虚拟内存中,可以使用页面置换算法将需要的页置换到物理内存中.下面先介绍几种局部页面置换算法,其针对一个进程而言的页面置换. 一.局部页面置换算法 1.最优页面 ...

  6. 操作系统:基于页面置换算法的缓存原理详解(下)

    概述: 在上一篇<操作系统:基于页面置换算法的缓存原理详解(上)>中,我们主要阐述了FIFO.LRU和Clock页面置换算法.接着上一篇说到的,本文也有三个核心算法要讲解.分别是LFU(L ...

  7. 分页及其管理、页面置换算法

    1.分页 大部分虚拟内存系统中都使用一种称为分页的技术. 在任何一台计算机上,程序引用了一组内存地址,由程序产生的这些地址称为虚拟地址,他们构成了一个虚拟地址空间. 在没有虚拟内存的计算机上,系统直接 ...

  8. 请求页式存储管理中页面置换算法的模拟设计_操作系统-存储管理与文件管理-笔记...

    存储管理 一.页式存储 将各进程的虚拟空间划分成若干个长度相等的页,页式管理把内存空间按页的大小划分成片或者页面,然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地 ...

  9. 【南邮操作系统实验】页面置换算法 (FIFO、LRU、OPT)Java 版

    页面置换算法Java版 先进先出置换算法(FIFO) 最近最久未使用置换算法(LRU) 最佳置换算法(OPT) 帮女朋友写了份 Python版的,Python版戳这里 帮女朋友舍友写了份 C++ 版的 ...

最新文章

  1. 引用和指针的区别?传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?
  2. 微信成为开发者C#代码
  3. 数据结构----排序
  4. spring boot + swagger2
  5. 1054: 猴子吃桃
  6. 第四周课程总结&实验报告。
  7. python 输出log_python:logging模块(记录打印日志)
  8. 政府机构网络安全实战
  9. Python音频操作工具PyAudio上手
  10. word2003如何设置护眼模式_word2003护眼色设置
  11. netbeans php 安装教程,Netbeans下载安装教程教程
  12. 美国恐怖故事第一季/全集American Horror Story 1全迅雷下载
  13. Mac解压缩rar文件
  14. vivado使用笔记(1)--防止信号被综合优化dont touch
  15. 使用Petalinux实现ZYNQ的linux程序开发(实现简单的socket通信程序)
  16. @Transactional的介绍和使用
  17. 梆梆安全:移动安全新“梆”主 专一加固移动应用
  18. java 管道设计_设计模式——管道模式
  19. 2020年4月中国编程语言排行榜
  20. Python实现RSA加密算法

热门文章

  1. 五年磨砺:微软Vista开发过程全记录
  2. PHPUnit实践二(生命周期)
  3. 前嗅ForeSpider教程:采集图片/视频/资源文件的链接地址
  4. [C#]统计文本文件txt中的行数(快速读取)
  5. WebStorm 打开多个项目的方法
  6. 新入行程序员考虑自己是否明白以下这8件事情
  7. AIX下两个常用命令
  8. OpenBSD 5.2 发布
  9. 我学UML建模系列之核心元素 -------- 参与者
  10. 全国知名高校网站挂马现象严重 考生面临安全风险