分页虚拟存储管理——页面置换算法

2023-11-25 15:30

本文主要是介绍分页虚拟存储管理——页面置换算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

页面置换算法

  • 最佳置换算法(Optimal,OPT)
  • 先入先出置换算法(First-In First-Out,FIFO)
  • 最近最久未使用置换算法(Least Recently Used,LRU)

最佳置换算法(Optimal,OPT)

最佳置换算法是一种理想化的算法。要求从内存中淘汰以后永远不使用的页,若无这样的页,则淘汰在最长时间内不再被访问的页。采用最佳置换算法,可以保证获得最低的缺页率。但是人们无法预知一个进程在内存的若干个页面,哪一个页面是未来最长时间不再被访问的,因此这种算法是无法实现的,只能作为其他置换算法的衡量标准。

【例题】在一个分页式虚拟存储管理的系统中,一个作业的页面走向为1,2,1,0,4,1,3,4,2,1,4,1每调进一个新页就发生一次缺页中断。设分配给该作业的物理块数M=3,采用最佳置换算法求缺页中断次数F和缺页率f。
分析题目
页面走向为:1,2,1,0,4,1,3,4,2,1,4,1
缺页中断原则:每调进一个新页就发生一次缺页中断
分配给该作业的物理块数M=3,意思是:内存中最多可放置3页。
解:页面置换情况如下表所示。
为了好看,先写一个空表
在这里插入图片描述
访问顺序就是按照页面走向来排的,
1 进来时,内存尚为空,1 进来后占据1页。由于在 1 进来之前内存块中事先没有 1 的存在,所以此时 1 对于内存而言是一个新页,按照题目缺页中断的原则
每调进一个新页就发生一次缺页中断
,那么缺页数相应的加1,此时缺页数=1。
在这里插入图片描述
2进来时,内存已经被1占据了1块,此时内存剩余容量为2。当2进来后占据1页。由于在2进来之前内存中事先没有2的存在,所以此时 2 对于内存而言是一个新页,按照题目缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=2。
在这里插入图片描述
1进来时,内存已经被12占据了2块,此时内存剩余量为1。当1进来后,由于在1进来之前内存中事先有1的存在。所以此时的1对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
0进来时,内存已经被12、占据了2块,此时内存剩余量为1,0 是一个新页,所以缺页数应该加1,此时缺页数=3。
在这里插入图片描述
4进来时,内存已经被120占据了3块,此时内存无剩余量,且4 是一个新页,4想要进来就必须替换掉1,2,0中的一个,替换的规则就是看4后面的访问顺序 1,3,4,2,1,4,1那么究竟要替换哪一个数呢?答案是0,最佳置换算法的原理是:淘汰在最长时间内不再被访问的页,4要替换掉1,2,0中的在最长时间内不再被访问的页,当然就是0啦,4后面的访问顺序里都没有0被访问了,所以就让4替换掉0,与此同时缺页数加1,此时缺页数=4。
在这里插入图片描述
1进来时,内存已经被1,2,4占据了3块,此时内存剩余量为0。当1进来后,由于在1进来之前内存中事先有1的存在。所以此时的1对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
3进来时,内存已经被1,2,4占据了3块,此时内存剩余量为0。且3 是一个新页,3想要进来就必须替换掉1,2,4中的一个,替换的规则就是看3后面的访问顺序 4,2,1,4,1那么究竟要替换哪一个数呢?答案是1,最佳置换算法的原理是:淘汰在最长时间内不再被访问的页,3要替换掉1,2,4中的在最长时间内不再被访问的页,当然就是1啦,3后面的访问顺序相比较于4,21被访问的时候还早着呢!所以3要去置换1,与此同时缺页数加1,此时缺页数=5。
在这里插入图片描述
4进来时,内存已经被3,2,4占据了3块,此时内存剩余量为0。当4进来后,由于在4进来之前内存中事先有4的存在。所以此时的4对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
2进来时,内存已经被3,2,4占据了3块,此时内存剩余量为0。当2进来后,由于在2进来之前内存中事先有2的存在。所以此时的2对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
1进来时,内存已经被3,2,4占据了3块,此时内存剩余量为0。且1 是一个新页,1想要进来就必须替换掉3,2,4中的一个,替换的规则就是看1后面的访问顺序 4,1那么究竟要替换哪一个数呢?答案是3,最佳置换算法的原理是:淘汰在最长时间内不再被访问的页,1要替换掉3,2,4中的在最长时间内不再被访问的页,我们发现在后续的访问顺序中32都不会被访问到了,那么究竟要替换它们两个中的哪一个呢答案是3,(通过上一步2进入内存的时候3就已经存在了,32来得更早,换句话说32更早访问,那么相比23再被访问的时间就会晚一点),与此同时缺页数加1,此时缺页数=6。
在这里插入图片描述
4进来时,内存已经被1,2,4占据了3块,此时内存剩余量为0。当4进来后,由于在4进来之前内存中事先有4的存在。所以此时的4对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
1进来时,内存已经被1,2,4占据了3块,此时内存剩余量为0。当1进来后,由于在1进来之前内存中事先有1的存在。所以此时的1对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
至此所有的页面都访问完毕了,对应的页面置换情况表也成功出炉了:
在这里插入图片描述
缺页中断次数:F=6
缺页率:f=6/12=50%

先入先出置换算法(First-In First-Out,FIFO)

原理:淘汰最早进入内存的那个页面。因为,最早进入的页面,其不再使用的可能性比最近调入的页面要大。这种置换算法实现简单,只要把各个调入内存的页按其进入内存的现后顺序连成一个队列即可,总是淘汰队首的那一页。
【例题】在一个分页式虚拟存储管理的系统中,一个作业的
页面走向为1,2,1,0,4,1,3,4,2,1,4,1
每调进一个新页就发生一次缺页中断。设分配给该作业的物理块数M=3时,采用先入先出置换算法求缺页中断次数F和缺页率f。
分析题目
页面走向为:1,2,1,0,4,1,3,4,2,1,4,1
缺页中断原则:每调进一个新页就发生一次缺页中断
分配给该作业的物理块数M=3,意思是:内存中最多可放置3页。
解:分配给该作业的物理块数M=3时,页面置换情况如下表所示。
为了好看,先写一个空表在这里插入图片描述
访问顺序就是按照页面走向来排的,
1 进来时,内存尚为空,1 进来后占据1页。由于在 1 进来之前内存块中事先没有 1 的存在,所以此时 1 对于内存而言是一个新页,按照题目缺页中断的原则
每调进一个新页就发生一次缺页中断
,那么缺页数相应的加1,此时缺页数=1。
在这里插入图片描述
2进来时,内存已经被1占据了1块,此时内存剩余容量为2。当2进来后占据1页。由于在2进来之前内存中事先没有2的存在,所以此时 2 对于内存而言是一个新页,按照题目缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=2。
在这里插入图片描述
1进来时,内存已经被12占据了2块,此时内存剩余量为1。当1进来后,由于在1进来之前内存中事先有1的存在。所以此时的1对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
0进来时,内存已经被12、占据了2块,此时内存剩余量为1,0 是一个新页,所以缺页数应该加1,此时缺页数=3。
在这里插入图片描述
4进来时,内存已经被120占据了3块,此时内存无剩余量,且4 是一个新页,4想要进来就必须替换掉1,2,0中的一个,替换的规则就是看1,2,0谁是最先进入内存的,答案是1,先进先出置换算法的原理是:淘汰最早进入内存的那个页面,4要替换掉1,2,0中最早进入内存的页面,当然就是1啦,所以就让4替换掉1,与此同时缺页数加1,此时缺页数=4。
在这里插入图片描述
1进来时,内存已经被420占据了3块,此时内存无剩余量,且1 是一个新页,1想要进来就必须替换掉4,2,0中的一个,替换的规则就是看4,2,0谁是最先进入内存的,答案是2,先进先出置换算法的原理是:淘汰最早进入内存的那个页面,1要替换掉4,2,0中最早进入内存的页面,当然就是2啦,所以就让1替换掉2,与此同时缺页数加1,此时缺页数=5。
在这里插入图片描述
3进来时,内存已经被410占据了3块,此时内存无剩余量,且 3 是一个新页,3想要进来就必须替换掉4,1,0中的一个,替换的规则就是看4,1,0谁是最先进入内存的,答案是0,先进先出置换算法的原理是:淘汰最早进入内存的那个页面,3要替换掉4,1,0中最早进入内存的页面,当然就是0啦,所以就让3替换掉0,与此同时缺页数加1,此时缺页数=6。
在这里插入图片描述

4进来时,内存已经被4,1,3占据了3块,此时内存剩余量为0。当4进来后,由于在4进来之前内存中事先有4的存在。所以此时的4对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
2进来时,内存已经被413占据了3块,此时内存无剩余量,且2 是一个新页,2想要进来就必须替换掉4,1,3中的一个,替换的规则就是看4,1,3谁是最先进入内存的,答案是4,先进先出置换算法的原理是:淘汰最早进入内存的那个页面,2要替换掉4,1,3中最早进入内存的页面,当然就是4啦,所以就让2替换掉4,与此同时缺页数加1,此时缺页数=7。
在这里插入图片描述
1进来时,内存已经被2,1,3占据了3块,此时内存剩余量为0。当1进来后,由于在1进来之前内存中事先有1的存在。所以此时的1对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
4进来时,内存已经被213占据了3块,此时内存无剩余量,且4 是一个新页,4想要进来就必须替换掉2,1,3中的一个,替换的规则就是看2,1,3谁是最先进入内存的,答案是1,先进先出置换算法的原理是:淘汰最早进入内存的那个页面,4要替换掉2,1,3中最早进入内存的页面,当然就是1啦,所以就让4替换掉1,与此同时缺页数加1,此时缺页数=8。
在这里插入图片描述
1进来时,内存已经被243占据了3块,此时内存无剩余量,且1 是一个新页,1想要进来就必须替换掉2,4,3中的一个,替换的规则就是看2,4,3谁是最先进入内存的,答案是3,先进先出置换算法的原理是:淘汰最早进入内存的那个页面,1要替换掉2,4,3中最早进入内存的页面,当然就是3啦,所以就让1替换掉3,与此同时缺页数加1,此时缺页数=9。
在这里插入图片描述

至此所有的页面都访问完毕了,对应的页面置换情况表也成功出炉了:
在这里插入图片描述
缺页中断次数:F=9
缺页率:f=9/12=75%

最近最久未使用置换算法(Least Recently Used,LRU)

原理:选择在最近一段时间内最久没有使用过的页,把它淘汰掉
【例题】在一个分页式虚拟存储管理的系统中,一个作业的页面走向为1,2,1,0,4,1,3,4,2,1,4,1每调进一个新页就发生一次缺页中断。设分配给该作业的物理块数M=3时,采用最近最久未使用置换算法求缺页中断次数F和缺页率f。
分析题目
页面走向为:1,2,1,0,4,1,3,4,2,1,4,1
缺页中断原则:每调进一个新页就发生一次缺页中断
分配给该作业的物理块数M=3,意思是:内存中最多可放置3页。
解:分配给该作业的物理块数M=3时,页面置换情况如下表所示。
为了好看,先写一个空表在这里插入图片描述
访问顺序就是按照页面走向来排的,
1 进来时,内存尚为空,1 进来后占据1页。由于在 1 进来之前内存块中事先没有 1 的存在,所以此时 1 对于内存而言是一个新页,按照题目缺页中断的原则
每调进一个新页就发生一次缺页中断
,那么缺页数相应的加1,此时缺页数=1。
在这里插入图片描述
2进来时,内存已经被1占据了1块,此时内存剩余容量为2。当2进来后占据1页。由于在2进来之前内存中事先没有2的存在,所以此时 2 对于内存而言是一个新页,按照题目缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=2。
在这里插入图片描述
1进来时,内存已经被12占据了2块,此时内存剩余量为1。当1进来后,由于在1进来之前内存中事先有1的存在。所以此时的1对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
0进来时,内存已经被12、占据了2块,此时内存剩余量为1,0 是一个新页,所以缺页数应该加1,此时缺页数=3。
在这里插入图片描述
4进来时,内存已经被120占据了3块,此时内存无剩余量,且4 是一个新页,4想要进来就必须替换掉1,2,0中的一个,替换的规则就是看4左边的访问过了的顺序 1,2,1,0,找到离4最近的要替换的数字120,那么究竟要替换哪一个数呢?答案是2最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了0,上上一秒访问了1,上上上一秒访问了2)所以最近最久未使用的就是2,所以就让4替换掉2,与此同时缺页数加1,此时缺页数=4。
在这里插入图片描述

1进来时,内存已经被140占据了3块,此时内存剩余量为0。当1进来后,由于在1进来之前内存中事先有1的存在。所以此时的1对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
3进来时,内存已经被140占据了3块,此时内存无剩余量,且3 是一个新页,3想要进来就必须替换掉1,4,0中的一个,替换的规则就是看3左边的访问过了的顺序 1,2,1,0,4,1,找到离3最近的要替换的数字1,4,0那么究竟要替换哪一个数呢?答案是0最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了1,上上一秒访问了4,上上上一秒访问了0)所以最近最久未使用的就是0,所以就让3替换掉0,与此同时缺页数加1,此时缺页数=5。
在这里插入图片描述
4进来时,内存已经被143占据了3块,此时内存剩余量为0。当4进来后,由于在4进来之前内存中事先有4的存在。所以此时的4对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
2进来时,内存已经被143占据了3块,此时内存无剩余量,且2 是一个新页,2想要进来就必须替换掉1,4,3中的一个,替换的规则就是看2左边的访问过了的顺序 1,2,1,0,4,1,3,4,找到离2最近的1,4,3那么究竟要替换哪一个数呢?答案是1最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了4,上上一秒访问了3,上上上一秒访问了1)所以最近最久未使用的就是1,所以就让2替换掉1,与此同时缺页数加1,此时缺页数=6。
在这里插入图片描述

1进来时,内存已经被243占据了3块,此时内存无剩余量,且** 1** 是一个新页,1想要进来就必须替换掉2,4,3中的一个,替换的规则就是看1左边的访问过了的顺序1,2,1,0,4,1,3,4,2,找到离1最近的2,4,3那么究竟要替换哪一个数呢?答案是3最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了2,上上一秒访问了4,上上上一秒访问了3)所以最近最久未使用的就是3,所以就让1替换掉3,与此同时缺页数加1,此时缺页数=7。
在这里插入图片描述

4进来时,内存已经被241占据了3块,此时内存剩余量为0。当4进来后,由于在4进来之前内存中事先有4的存在。所以此时的4对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
1进来时,内存已经被241占据了3块,此时内存剩余量为0。当1进来后,由于在1进来之前内存中事先有1的存在。所以此时的1对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
至此所有的页面都访问完毕了,对应的页面置换情况表也成功出炉了:
在这里插入图片描述
缺页中断次数:F=7
缺页率:f=7/12=58%

相关拓展练习请转到:

这篇关于分页虚拟存储管理——页面置换算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424048

相关文章

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖