页面置换算法简单对比----《operating system concepts》《操作系统原理》
置换策略
当请求调页程序要调进一个页面,但是该作业分配所得的主内存块已经全部用完,则必须淘汰改作业在贮存中的一个页面。置换算法就是决定选择哪一个页面进行淘汰的规则。
如置换算法不够好,就会导致刚淘汰的页面又被需要,因此又被调入,这样就会导致频繁的调入调出,系统仅仅花费在程序执行上的时间比例降低。更差的情况是,当调入频率超过主存和辅存之间的传输能力时,系统要等待完后页面传输才能继续有效执行程序,因此,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》《操作系统原理》相关推荐
- 页面置换算法——最佳置换算法、最近最少使用算法、先进先出算法、时钟置换算法
计算机操作系统--页面置换算法 根据中国大学MOOC计算机操作系统(电子科技大学)而写. 如果自己要设计页面置换,要根据什么原则来设计?我们首先想到的是存储器的局部性原理(时间局部性.空间局部性) P ...
- 操作系统实验:页面置换算法的模拟实现及命中率对比(学习笔记)
操作系统实验:页面置换算法的模拟实现及命中率对比(学习笔记) 题目要求 输入要求 输出要求 编程平台 实验成果 开始模拟 错误输入 退出程序 代码实现 抽象数据类型定义 指令地址流生成 指令地址流到页 ...
- [Operating.System.Concepts(9th,2012.12)].Abraham.Silberschatz.文字版(恐龙书——操作系统概念 原书第九版)课后习题 参考答案
目录 Chap01 导论 Chap02 OS结构 Chap03 进程 Chap04 线程 Chap05 同步(Synchronization) Chap06 CPU调度 Chap07 死锁 Chap0 ...
- 操作系统:基于页面置换算法的缓存原理详解(上)
概述: 作为一个学计算机的一定听过缓存(注意这里是缓存,不是缓冲).比如我们在登录网页时,网页就可以缓存一些用户信息:比如我们在写界面代码的时候,可能就会遇到界面的绘制是基于一些缓存算法的.所以,了解 ...
- 2020-11-22(操作系统——页面置换算法)
当内存中的页面满了之后,需要的数据又在磁盘虚拟内存中,可以使用页面置换算法将需要的页置换到物理内存中.下面先介绍几种局部页面置换算法,其针对一个进程而言的页面置换. 一.局部页面置换算法 1.最优页面 ...
- 操作系统:基于页面置换算法的缓存原理详解(下)
概述: 在上一篇<操作系统:基于页面置换算法的缓存原理详解(上)>中,我们主要阐述了FIFO.LRU和Clock页面置换算法.接着上一篇说到的,本文也有三个核心算法要讲解.分别是LFU(L ...
- 分页及其管理、页面置换算法
1.分页 大部分虚拟内存系统中都使用一种称为分页的技术. 在任何一台计算机上,程序引用了一组内存地址,由程序产生的这些地址称为虚拟地址,他们构成了一个虚拟地址空间. 在没有虚拟内存的计算机上,系统直接 ...
- 请求页式存储管理中页面置换算法的模拟设计_操作系统-存储管理与文件管理-笔记...
存储管理 一.页式存储 将各进程的虚拟空间划分成若干个长度相等的页,页式管理把内存空间按页的大小划分成片或者页面,然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地 ...
- 【南邮操作系统实验】页面置换算法 (FIFO、LRU、OPT)Java 版
页面置换算法Java版 先进先出置换算法(FIFO) 最近最久未使用置换算法(LRU) 最佳置换算法(OPT) 帮女朋友写了份 Python版的,Python版戳这里 帮女朋友舍友写了份 C++ 版的 ...
最新文章
- 引用和指针的区别?传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?
- 微信成为开发者C#代码
- 数据结构----排序
- spring boot + swagger2
- 1054: 猴子吃桃
- 第四周课程总结&实验报告。
- python 输出log_python:logging模块(记录打印日志)
- 政府机构网络安全实战
- Python音频操作工具PyAudio上手
- word2003如何设置护眼模式_word2003护眼色设置
- netbeans php 安装教程,Netbeans下载安装教程教程
- 美国恐怖故事第一季/全集American Horror Story 1全迅雷下载
- Mac解压缩rar文件
- vivado使用笔记(1)--防止信号被综合优化dont touch
- 使用Petalinux实现ZYNQ的linux程序开发(实现简单的socket通信程序)
- @Transactional的介绍和使用
- 梆梆安全:移动安全新“梆”主 专一加固移动应用
- java 管道设计_设计模式——管道模式
- 2020年4月中国编程语言排行榜
- Python实现RSA加密算法