存储管理的页面置换算法

存储管理的页面置换算法


存储管理的页面置换算法在考试中常常会考到,操作系统教材中主要介绍了3种常用的页面置换算法,分别是:先进先出法(FIFO)、最佳置换法(OPT)和最近最少使用置换法(LRU)。大家要理解3种置换算法的含义,然后能熟练地运用在具体的练习中就可以了。


  1. 为什么要进行页面置换

在请求分页存储管理系统中,由于使用了虚拟存储管理技术,使得所有的进程页面不是一次性地全部调入内存,而是部分页面装入。

这就有可能出现下面的情况:要访问的页面不在内存,这时系统产生缺页中断。操作系统在处理缺页中断时,要把所需页面从外存调入到内存中。如果这时内存中有空闲块,就可以直接调入该页面;如果这时内存中没有空闲块,就必须先淘汰一个已经在内存中的页面,腾出空间,再把所需的页面装入,即进行页面置换。

有助于理解的关键词有:请求分页、虚拟存储、缺页中断、页面置换。


  1. 常用的页面置换算法

教材中介绍的常用页面置换算法有:先进先出法(FIFO)、最佳置换法(OPT)和最近最少使用置换法(LRU)。


  1. 先进先出法(FIFO

算法描述:由于认为最早调入内存的页不再被使用的可能性要大于刚调入内存的页,因此,先进先出法总是淘汰在内存中停留时间最长的一页,即先进入内存的页,先被换出。先进先出法把一个进程所有在内存中的页按进入内存的次序排队,淘汰页面总是在队首进行。如果一个页面刚被放入内存,就把它插在队尾。

【例1】教材第4章课后习题。

考虑下述页面走向:12342156212376321236。当内存块数量分别为35时,试问先进先出置换算法(FIFO)的缺页次数是多少?(注意,所有内存块最初都是空的,凡第一次用到的页面都产生一次缺页。)

当内存块数量分别为3时,FIFO算法的执行过程如下图所示。

页面

1

2

3

4

2

1

5

6

2

1

2

3

7

6

3

2

1

2

3

6

1

1

1

1

4


4

4

6

6

6


3

3

3


2

2


2

6

2


2

2

2


1

1

1

2

2


2

7

7


7

1


1

1

3



3

3


3

5

5

5

1


1

1

6


6

6


3

3

缺页





打叉的表示发生了缺页,共缺页16次。

提示:当FIFO算法执行到蓝色的4号页面时,这时内存中有三个页面,分别是123。按照FIFO算法,在内存中停留时间最长的页面被淘汰。三个页面在内存中的停留时间用绿色区域标记出来了,可见,1号页面是停留时间最长的,因此要淘汰1号页面。

当内存块数量分别为5时,共缺页10次。FIFO算法的执行过程如下。

页面

1

2

3

4

2

1

5

6

2

1

2

3

7

6

3

2

1

2

3

6

1

1

1

1

1

1



6


6

6

6

6








2


2

2

2

2



2


1

1

1

1








3



3

3

3



3


3

2

2

2








4




4

4



4


4

4

3

3








5





5



5


5

5

5

7








缺页











优缺点:先进先出法(FIFO)简单易于实现,但是性能不好,存在Belady现象。例如对于以下页面:123412512345,当内存块为3时,出现9次缺页中断;当内存块为4时,出现10次缺页中断。缺页率随着内存块增加而增加的现象,称为Belady现象。有兴趣的同学可以试一试,看看是不是这样的。


  1. 最佳置换法(OPT

算法描述:最佳置换算法(OPT)在为调入新页面而必须预先淘汰某个老页面时,所选择的老页面应在将来不被使用,或者是在最远的将来才被访问。采用这种算法,能保证有最小缺页率。

【例2】教材第4章课后习题。

考虑下述页面走向:12342156212376321236。当内存块数量分别为35时,试问最佳置换法(OPT)的缺页次数是多少?(注意,所有内存块最初都是空的,凡第一次用到的页面都产生一次缺页。)

当内存块数量分别为3时,OPT算法的执行过程如下图所示。

页面

1

2

3

4

2

1

5

6

2

1

2

3

7

6

3

2

1

2

3

6

1

1

1

1

1



1

1




3

3



3

3



6

2


2

2

2



2

2




2

7



2

2



2

3



3

4



5

6




6

6



6

1



1

缺页










打叉的表示发生了缺页,共缺页11次。

提示:当OPT算法执行到蓝色的4号页面时,这时内存中有三个页面,分别是123。按照OPT算法,在最远的将来才被访问的页面先淘汰。这三个页面在未来页面走向序列的位置用绿色区域标记出来了,可见,3号页面是最晚被访问到的,因此要淘汰3号页面。到了最后一个6号页面时,由于没有后续的页面序列了,可以随机选择一个页面淘汰。

当内存块数量分别为5时,共缺页7次。OPT算法的执行过程如下。

页面

1

2

3

4

2

1

5

6

2

1

2

3

7

6

3

2

1

2

3

6

1

1

1

1

1

1



1





1








2


2

2

2

2



2





2








3



3

3

3



3





3








4




4

4



6





6








5





5



5





7








缺页














优缺点:OPT算法因为要需要预先知道一个进程在整个运行过程中页面走向的全部情况,因此只是一种理想状态,实际是行不通的。一般用算法来衡量(如通过模拟实验分析或理论分析)其他算法的优劣。


  1. 最近最少使用置换法(LRU

算法描述:最近最少使用置换法(LRU)是选择在最近一段时间里最久没有使用过的页面予以淘汰。借鉴FIFO算法和OPT算法,以“最近的过去”作为“不久将来”的近似。

【例3】教材第4章课后习题。

考虑下述页面走向:12342156212376321236。当内存块数量分别为35时,试问最近最少使用置换法(LRU)的缺页次数是多少?(注意,所有内存块最初都是空的,凡第一次用到的页面都产生一次缺页。)

当内存块数量分别为3时,LRU算法的执行过程如下图所示。

页面

1

2

3

4

2

1

5

6

2

1

2

3

7

6

3

2

1

2

3

6

1

1

1

1

4


4

5

5

5

1


1

7

7


2

2



2

2


2

2

2


2

2

6

6

6


3

3

3


3

3



3

3



3

3


1

1

1

2

2


2

2

6


6

1



1

缺页






打叉的表示发生了缺页,共缺页15次。

提示:当LRU算法执行到蓝色的4号页面时,这时内存中有三个页面,分别是123。按照LRU算法,在最近一段时间里最久没有使用过的页面予以淘汰。这三个页面在4号页面之前的页面走向序列中的位置用绿色区域标记出来了,可见,1号页面是最久没有被使用过的,因此要淘汰1号页面。

当内存块数量分别为5时,共缺页8次。LRU算法的执行过程如下。

页面

1

2

3

4

2

1

5

6

2

1

2

3

7

6

3

2

1

2

3

6

1

1

1

1

1

1



1




1

1








2


2

2

2

2



2




2

2








3



3

3

3



6




6

6








4




4

4



4




3

3








5





5



5




5

7








缺页













优缺点:LRU算法是经常采用的页面置换算法。缺点是实现上需要大量的硬件支持。


3. 需要注意的问题

    1. 不要把存储管理的页面置换算法与处理机调度算法混淆。有的同学可能会将FIFOFCFS弄混,FIFO是先进先出页面置换算法,FCFS是先来先服务的作业调动算法,虽然道理相似,却用在不同的地方。

    2. 缺页率。教材中提到了缺页率,没有给出它的概念。缺页率=缺页次数/页面总数。以上面3个例题为例,缺页率如下:

算法

FIFO

OPT

LRU

内存块为3

16/20=80%

11/20=55%

15/20=75%

内存块为5

10/20=50%

7/20=35%

8/20=40%

影响缺页率的因素有分配给进程的内存块数和页面尺寸等。一般来说,内存块数多,页面增大,使得发生缺页的可能性下降。但是这不是绝对的,还存在着Belady现象。

3)衡量页面置换算法好坏的标准是:好的算法能适当减少缺页率,避免系统“抖动”。

说明:以上内容仅作为教学辅导材料,不作为考核内容。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KKT条件初步理解

最近学习的时候用到了最优化理论,但是我没有多少这方面的理论基础。于是翻了很多大神的博客把容易理解的内容记载到这篇博客中。因此这是篇汇总博客,不算是全部原创,但是基础理论,应该也都差不多吧。因才疏学浅,有纰漏…

NLP复习资料(3)-六~七章:马尔科夫模型与条件随机场、词法分析与词性标注

NLP复习资料1.第六章 马尔科夫模型与条件随机场2.第七章 词法分析与词性标注国科大,宗老师《自然语言处理》课程复习笔记,个人整理,仅供参考。1.第六章 马尔科夫模型与条件随机场 1.马尔科夫模型:P6系统每一时刻的状态只与前一个…

redis——实战点赞

点赞功能随处可见,我们都知道点赞是一个非常高频的操作,redis就非常适合做这种工作。 实现效果: 分析:三种类型:给帖子点赞,给评论点赞,给回复点赞 我们只实现查看点赞数量的话,只…

network

1.网络结构 在OSI参考模型中,物理层的作用是透明的传输比特流。对等实体在一次交互作用中传送的信息单位称为协议数据单元,它包括控制信息和用户数据两部分。上下层实体之间的接口称为服务访问点(SAP),网络层的服务访问点也称为网络地址&…

NLP复习资料(4)-第八章 句法分析

NLP复习资料-第八章国科大,宗老师《自然语言处理》课程复习笔记,个人整理,仅供参考。第八章:语法理论(第三章的后续) 1.出发点chomsky的四类文法过于泛化,生成能力太强了,会生成没有…

大数据学习(10)--流计算

文章目录目录1.流计算的概述1.1 什么是流数据?1.2 批量计算和实时计算1.3 流计算的概念1.4 流计算和Hadoop1.5 流计算框架2.流计算的处理流程2.1 流计算处理基本概念2.2 数数据的实时获取2.3 数据的实时计算2.4 实时查询任务3.流计算的应用和开源框架Strom3.1 流计算…

network---written test

1、OSI(Open System Interconnect):开放系统互联,是一个七层的计算机网络模型,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 TCP/IP(Transmission Control Protocol/…

redis——实战关注

效果: 思路:很好想,把自己的粉丝和自己关注的人都存起来(set即可),做增删改查。 package com.now.community.community.service;import com.now.community.community.entity.User; import com.now.commun…

NLP复习资料(5)-第九章 句法分析

NLP复习资料-第九章1.短语结构分析2.短语结构分析方法的评估指标3依存句法分析器设计P134依存句法分析器性能评价5短语结构与依存结构能够相互转换6汉英句法结构对比7汉语长句的层次化句法分析国科大,宗老师《自然语言处理》课程复习笔记,个人整理&#…

神经网络中的优化算法总结

在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法? 这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳的…

OS --written test1

241.在提供虚拟存储的系统中,用户的逻辑地址空间主要受( )的限制。A.内存空闲块的大小 B.外存的大小 C.计算机编址范围 D.页表大小答案:C242.在分时系统中,时间片一定,( …

Java开发需要知道的HTML知识

概述 HTML(HyperText Markup Language) 不是一门编程语言,而是一种用来告知浏览器如何组织页面的标记语言。 HTML 可复杂、可简单,一切取决于开发者。它由一系列的元素组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈…

OS-written test2

操作系统各大公司笔试题汇总 1、在段页式存储管理中,其虚拟地址空间是() A、一维 B、二维 C、三维 D、层次 答案:B 2、采用( )不会产…

Ubuntu18.04上安装RTX 2080Ti显卡驱动

文章目录1.安装Linux系统1.1下载Linux镜像文件1.2 制作系统盘1.3 安装Linux系统1.4 配置linux系统2.安装英伟达显卡驱动2.1 预备工作2.2 安装显卡驱动3.安装cuda4.安装cudnn1.安装Linux系统 1.1下载Linux镜像文件 根据电脑配置和自己的爱好,选择合适的Linux镜像文…

OS

操作系统笔试题及答案一 1.在下列系统中,( )是实时系统。 A.计算机激光照排系统 B.航空定票系统 C.办公自动化系统 D.计算机辅助设计系统 答案:B 2.操作系统是一种( )。 A.应用软件 B.系统软件 C&#xff…

NLP复习资料(6)-第十章 语义分析

NLP复习资料-第十章1语义理论简介2格语法4语义网络5词义消歧5语义角色标注6词向量表示7篇章分析国科大,宗老师《自然语言处理》课程复习笔记,个人整理,仅供参考。语义分析:P3解释句子或篇章的含义,主要困难&#xff08…

处理机调度与死锁

处理机调度与死锁 处理机调度的层次 高级调度 高级调度又称为作业调度或长程调度,其主要功能是根据某种算法,把外存上处于后备队列中的那些作业调入内存,也就是说,它的调度对象是作业。 1.作业和作业步 作业:一个比程…

各种卷积

从最开始的卷积层,发展至今,卷积已不再是当初的卷积,而是一个研究方向。在反卷积这篇博客中,介绍了一些常见的卷积的关系,本篇博客就是要梳理这些有趣的卷积结构。 阅读本篇博客之前,建议将这篇博客结合在一…

springboot——kaptcha

导入包&#xff1a; <dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency> 配置类&#xff1a; package com.now.community.community.config;import…

NLP复习资料(7)-机器翻译、文本分类、情感分析

NLP复习资料国科大&#xff0c;宗老师《自然语言处理》课程复习笔记&#xff0c;个人整理&#xff0c;仅供参考。此部分为手稿&#xff0c;高清图下载见链接&#xff1a;https://download.csdn.net/download/sinat_40624829/11662412