FIFO、LRU、OPT页面调度算法及样例

网上非常多介绍3种页面置换算法的样例和过程是不对的, 本文依据《操作系统概念》第七版对三种算法做介绍,并给出正确的样例以验证算法。

一、FIFO先进先出页面置换算法,创建一个FIFO队列来管理内存中的全部页。

在计算缺页率的时候最好把每一次页面调度的队列写出来,这样不easy出错。

以下举例说明:

如果页帧为3,引用串为:7,0,1,2,0。3,0,4,2

页面走向:7。0。1,2。0,3。0,4,2。

-----------------------------------------------

物理页:   7,7。7,2,2,2,2,4。4,

0,0,0。0,3,3,3,2,

1。1,1。1,0,0,0。

FIFO队列:7, 7。7,0。0,1,2,3。0,

0,0。1,1。2,3。0,4。

1。2,2,3,0,4,2,

首先7,0,1页面依次进入页帧,队列变为7,0,1,下一个引用2要调入。则队列头部的7出队。队列变为0,1,2,物理页内将7换成2。下一个引用0调入,已经存在页帧中。队列不变。下一个3调入,队列头的0出队,3入队列尾,队列变为1,2,3。页帧将0变为3。

后面同理依次进行。

二、LRU是Least Recently Used 最近最少使用算法 ( 待更新 )

三、OPT是最佳页面替换算法(待更新)

以下举一些样例及答案,可依据上述算法验证调度算法的正确性。

1、在一个请求分页系统中,假如一个作业的页面走向为:1,2,3。6,4,7。3。2,1,4,7,5,6,5,2,1。当分配给该作业的物理块数为4时,分别採用最佳置换算法、LRU和FIFO页面置换算法,计算訪问过程中所发生的缺页次数和缺页率。

答:最佳置换算法的情况例如以下表


页面走向


1


2


3


6


4


7


3


2


1


4


7


5


6


5


2


1


物理页0


1


1


1


1


1


1


1


1


1


1


1


1


1


1


1


1


物理页1


2


2


2


2


2


2


2


2


2


2


2


2


2


2


2


物理页2


3


3


3


3


3


3


3


4


4


5


5


5


5


5


物理页3


6


4


7


7


7


7


7


7


7


6


6


6


6


缺页否


Y


Y


Y


Y


Y


Y


N


N


N


Y


N


Y


Y


N


N


N

缺页次数为9。缺页率为9/16

LRU算法的情况例如以下表:


页面走向


1


2


3


6


4


7


3


2


1


4


7


5


6


5


2


1


物理页0


1


1


1


1


4


4


4


4


1


1


1


1


6


6


6


6


物理页1


2


2


2


2


7


7


7


7


4


4


4


4


4


2


2


物理页2


3


3


3


3


3


3


3


3


7


7


7


7


7


1


物理页3


6


6


6


6


2


2


2


2


5


5


5


5


5


缺页否


Y


Y


Y


Y


Y


Y


N


Y


Y


Y


Y


Y


Y


N


Y


Y

缺页次数为14,缺页率为14/16

FIFO算法的情况例如以下表:


页面走向


1


2


3


6


4


7


3


2


1


4


7


5


6


5


2


1


物理页0


1


1


1


1


4


4


4


4


4


4


4


5


5


5


5


5


物理页1


2


2


2


2


7


7


7


7


7


7


7


6


6


6


6


物理页2


3


3


3


3


3


2


2


2


2


2


2


2


2


2


物理页3


6


6


6


6


6


1


1


1


1


1


1


1


1


缺页否


Y


Y


Y


Y


Y


Y


N


Y


Y


N


N


Y


Y


N


N


N

缺页次数为10,缺页率为10/16

二、在一个请求分页系统中,假如一个作业的页面走向为:4,3,2,1,4,3,5,4,3,2,1,5。当分配给该作业的物理块数M为4时,分别採用最佳置换算法、LRU和FIFO页面置换算法,计算訪问过程中所发生的缺页次数和缺页率。

答:最佳置换算法的情况例如以下表:


页面走向


4


3


2


1


4


3


5


4


3


2


1


5


物理页0


4


4


4


4


4


4


4


4


4


4


1


1


物理页1


3


3


3


3


3


3


3


3


3


3


3


物理页2


2


2


2


2


2


2


2


2


2


2


物理页3


1


1


1


5


5


5


5


5


5


缺页否


Y


Y


Y


Y


N


N


Y


N


N


N


Y


N

缺页次数为6,缺页率为6/12

LRU置换算法的情况例如以下表:


页面走向


4


3


2


1


4


3


5


4


3


2


1


5


物理页0


4


4


4


4


4


4


4


4


4


4


4


5


物理页1


3


3


3


3


3


3


3


3


3


3


3


物理页2


2


2


2


2


5


5


5


5


1


1


物理页3


1


1


1


1


1


1


2


2


2


缺页否


Y


Y


Y


Y


N


N


Y


N


N


Y


Y


Y

缺页次数为8,缺页率为8/12

FIFO算法的情况例如以下表:


页面走向


4


3


2


1


4


3


5


4


3


2


1


5


物理页0


4


4


4


4


4


4


5


5


5


5


1


1


物理页1


3


3


3


3


3


3


4


4


4


4


5


物理页2


2


2


2


2


2


2


3


3


3


3


物理页3


1


1


1


1


1


1


2


2


2


缺页否


Y


Y


Y


Y


N


N


Y


Y


Y


Y


Y


Y

缺页次数为10,缺页率为10/12

时间: 2024-10-06 21:43:33

FIFO、LRU、OPT页面调度算法及样例的相关文章

FIFO、LRU、OPT页面调度算法及例子

网上很多介绍3种页面置换算法的例子和过程是不正确的, 本文根据<操作系统概念>第七版对三种算法做介绍,并给出正确的例子以验证算法. 一.FIFO先进先出页面置换算法,创建一个FIFO队列来管理内存中的所有页.在计算缺页率的时候最好把每一次页面调度的队列写出来,这样不容易出错. 下面举例说明: 假设页帧为3,引用串为:7,0,1,2,0,3,0,4,2 页面走向:7,0,1,2,0,3,0,4,2, -----------------------------------------------

操作系统的页面置换C++算法:OPT FIFO LRU CLOCK 计算缺页率

暴力直接上代码,主要是用了vector来实现,有些方法比较费时,不太好,请各位大神斧正.这是个人的作业,  这是代码下载页http://download.csdn.net/detail/l631068264/7644569   里面还有多级反馈队列进程调度的MFC版 #include <iostream> #include <algorithm> #include <vector> #include <stdio.h> #include <stdlib

怎样把报表放到网页中显示(Web页面与报表简单集成样例)

1.问题描写叙述 如今用户开发的系统基本上趋向于BS架构的浏览器/server模式.这些系统可能由不同的语言开发.如HTML.ASP.JSP.PHP等.因此须要将制作好的报表嵌入到这些页面中. FineReport制作出的报表能够通过Frame框架集成到Web页面中. 2.将报表显示在Frame框架内 2.1集成方法 报表作为页面的一部分,能够以iFrame方式嵌入在网页中.指定iFrame的src就可以. 1.     <iframe id="reportFrame" widt

ADF Faces导出Excel文件【附样例工程】

本文提供一个基于ADF Face组件开发样例工程,工程的实现过程分为3个部分以应对Excel导出开发中常见的处理. 1.空模版文件下载:将Excel文件视为普通文件提供下载操作. 2.数据文件输出,将数据内容输出为Excel文件,目标文件尽在服务端内存中存在,这种方式需要对Excel文件的内容处理,需要引入响应的类库. 3.模版文件填充数据后下载,基于服务端的物理文件为模板,将业务数据填入约定位置后提供下载,在实现方面需要为工作簿对象指定源文件输入流,并完成后续内容处理. 实现的基本思路,由AD

Apache Tomcat样例目录session操纵漏洞

0x00   背景 前段时间扫到的漏洞,研究了下,感觉挺有意思的,发出来和大家分享下,有啥不对的地方还请各位拍砖指正. Apache Tomcat默认安装包含"/examples"目录,里面存着众多的样例,其中session样例(/examples/servlets/servlet/SessionExample)允许用户对session进行操纵.因为session是全局通用的,所以用户可以通过操纵session获取管理员权限. 案例:http://www.wooyun.org/bugs

IronPython 个人网站样例----宝藏挖掘

IronPython for ASP.NET 的 CTP 已经发布两个多星期了,惭愧的是,因为工作繁忙,一直没有太多时间来学习.居然忽略了 Personal Web Site Starter Kit 的 IronPython 样例.幸亏了 Scott Guthrie 这篇博客:http://blog.joycode.com/scottgu/archive/2006/11/18/86737.aspx,才让我发现了这个宝库. 今天下午花了点时间学习了一下,收获不少.记录在这里. IronPython

LoadRunner性能测试样例分析

LR性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源.数据库服务器资源等几个方面分析,如图1- 1所示.性能测试结果分析的一个重要的原则是以性能测试的需求指标为导向.我们回顾一下本次性能测试的目的,正如 所列的指标,本次测试的要求是验证在30分钟内完成2000次用户登录系统,然后进行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过3秒,并且服

ADF Faces 表格应用基础案例二:动态字段+事件处理【附样例工程】

本文提供一个基于ADF Face组件开发样例工程,实现表格开发中常见的处理: 1.Map对象+Bean对象填充表格的数据行. 2.使用静态列.动态列.嵌套列的实现方法. 3.介绍表格中表单组件的使用方法. 4.介绍表格单行选中事件的处理过程. 本文是基于"ADF Faces 表格应用基础案例一:应用List<Class>填充文本表格"编写的,会省去许多细节部分的介绍. 实现的基本思路: 将样例工程的创建过程分为几个小的阶段,每个阶段实现了不同的目标. 第一阶段: 表格数据:

最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture)

===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频播放演示样例2:GDI播放YUV, RGB 最简单的视音频播放演示样例3:Direct3D播放YUV,RGB(通过Surface) 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture) 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV 最简单的视音频播放演示样例