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
FIFO、LRU、OPT页面调度算法及样例的更多相关文章
- OS存储管理——FIFO,LRU,OPT命中率
课程设计课题 存储管理程序设计 摘 要 虚拟存储器作为现代操作系统中存储管理的一项重要技术,实现了内存扩充功能.而分页请求分页系统正好可以完美的支持虚拟存储器功能,它具有请求调页功能和页面置换功能.在 ...
- python爬虫爬取get请求的页面数据代码样例
废话不多说,上代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # 导包 import urllib.request import urllib.pars ...
- 01_MUI之Boilerplate中:HTML5演示样例,动态组件,自己定义字体演示样例,自己定义字体演示样例,图标字体演示样例
1安装HBuilder5.0.0,安装后的界面截图例如以下: 2 依照https://www.muicss.com/docs/v1/css-js/boilerplate-html中的说明,创建上 ...
- [转] Lodop、C-Lodop使用说明及样例
本文转自:http://www.lodop.net/LodopDemo.html Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现 复杂打印. ...
- WEB打印控件Lodop(V6.x)使用说明及样例
WEB打印控件Lodop(V6.x)使用说明及样例 Lodop是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码生成复杂打印页. 控件功能强大,却简单易用,所有调用如同JavaScript扩展 ...
- Swift - 自动布局库SnapKit的使用详解4(样例1:实现一个登录页面)
前面的几篇文章讲解了自动布局库SnapKit的使用方法.本文通过一个完整的样例(登录页面)来演示在实际项目中如何使用SnapKit来实现自动化布局的.1,效果图如下
- 怎样把报表放到网页中显示(Web页面与报表简单集成样例)
1.问题描写叙述 如今用户开发的系统基本上趋向于BS架构的浏览器/server模式.这些系统可能由不同的语言开发.如HTML.ASP.JSP.PHP等.因此须要将制作好的报表嵌入到这些页面中. Fin ...
- amaze样例页面分析(一)
amaze样例页面分析(一) 一.总结 1.从审查(inspect)中是很清楚的可以弄清楚这些part之间的结构关系的 2.一者在于弄清楚他们之间的结构关系,二者在于知道结构的每一部分是干嘛的 3.i ...
- Swift - 自动布局库SnapKit的使用详解1(配置、使用方法、样例)
为了适应各种屏幕尺寸,iOS 6后引入了自动布局(Auto Layout)的概念,通过使用各种 Constraint(约束)来实现页面自适应弹性布局. 在 StoryBoard 中使用约束实现自动布局 ...
随机推荐
- JDK源码学习笔记——LinkedHashMap
HashMap有一个问题,就是迭代HashMap的顺序并不是HashMap放置的顺序,也就是无序. LinkedHashMap保证了元素迭代的顺序.该迭代顺序可以是插入顺序或者是访问顺序.通过维护一个 ...
- java浏览器控件jxbrowser(简单demo模拟自动登录与点击)
写在前面: 老大让我写个脚本自动给他写dms有一段时间了,说实话当时不知道老大指的这个脚本是什么?毕竟是做web的,难道是写个数据库sql语句脚本吗?也就放在了一边.巧了,最近一个朋友说他之前写了个程 ...
- bzoj 3384: [Usaco2004 Nov]Apple Catching 接苹果
双倍经验题... -->1750 dp!! 3384: [Usaco2004 Nov]Apple Catching 接苹果 Time Limit: 1 Sec Memory Limit: 12 ...
- Hiho : 欧拉路径
欧拉路径 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其实是一块一块骨牌. 主角继续往前走,面 ...
- 关于applicationContext.xml cannot be opened because it does not exist的解决
初学Spring在用Resource rs=new ClassPathResource("applicationContext.xml");时老是遇到这个错误.后来发现用 Appl ...
- 15.同步类容器Vector
同步类容器1 1.线程都是安全的. 2.在某些场景下需要加锁来保护“复合操作” a.迭代:反复去访问元素.遍历完容器所有的元素 b.跳转:根据下标制定去访问查找元素 c.条件运算 3.复合操作在多线程 ...
- Java数据库编程——事务
我们可以将一组语句构建成一个事务(transaction).当所有语句都顺利执行之后,事务可以提交(commit).否则,如果其中某个语句遇到错误,那么事务将被回滚,就好像没有任何语句被执行过一样. ...
- 兼容各浏览器的css背景图片拉伸代码
需要用到背景图拉伸,找到了下面这段css代码: filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='***.jpg' , s ...
- POJ 2664 Prerequisites?(简单题)
[题意简述]:k:已经选择的科目数:m:选择的科目类别:c:能够选择的科目数.r:要求最少选择的科目数量 在输入的k和m以下的一行是选择的科目号. 比如: 3 2 //3是他选择了3科.2表示选择了两 ...
- Maven+SpringMVC+Freemarker入门Demo
1 参考http://blog.csdn.net/haishu_zheng/article/details/51490299,用第二种方法创建一个名为mavenspringmvcfreemarker的 ...