网上非常多介绍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页面调度算法及样例的更多相关文章

  1. OS存储管理——FIFO,LRU,OPT命中率

    课程设计课题 存储管理程序设计 摘 要 虚拟存储器作为现代操作系统中存储管理的一项重要技术,实现了内存扩充功能.而分页请求分页系统正好可以完美的支持虚拟存储器功能,它具有请求调页功能和页面置换功能.在 ...

  2. python爬虫爬取get请求的页面数据代码样例

    废话不多说,上代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # 导包 import urllib.request import urllib.pars ...

  3. 01_MUI之Boilerplate中:HTML5演示样例,动态组件,自己定义字体演示样例,自己定义字体演示样例,图标字体演示样例

     1安装HBuilder5.0.0,安装后的界面截图例如以下: 2 依照https://www.muicss.com/docs/v1/css-js/boilerplate-html中的说明,创建上 ...

  4. [转] Lodop、C-Lodop使用说明及样例

    本文转自:http://www.lodop.net/LodopDemo.html Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现 复杂打印. ...

  5. WEB打印控件Lodop(V6.x)使用说明及样例

    WEB打印控件Lodop(V6.x)使用说明及样例 Lodop是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码生成复杂打印页. 控件功能强大,却简单易用,所有调用如同JavaScript扩展 ...

  6. Swift - 自动布局库SnapKit的使用详解4(样例1:实现一个登录页面)

    前面的几篇文章讲解了自动布局库SnapKit的使用方法.本文通过一个完整的样例(登录页面)来演示在实际项目中如何使用SnapKit来实现自动化布局的.1,效果图如下

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

    1.问题描写叙述 如今用户开发的系统基本上趋向于BS架构的浏览器/server模式.这些系统可能由不同的语言开发.如HTML.ASP.JSP.PHP等.因此须要将制作好的报表嵌入到这些页面中. Fin ...

  8. amaze样例页面分析(一)

    amaze样例页面分析(一) 一.总结 1.从审查(inspect)中是很清楚的可以弄清楚这些part之间的结构关系的 2.一者在于弄清楚他们之间的结构关系,二者在于知道结构的每一部分是干嘛的 3.i ...

  9. Swift - 自动布局库SnapKit的使用详解1(配置、使用方法、样例)

    为了适应各种屏幕尺寸,iOS 6后引入了自动布局(Auto Layout)的概念,通过使用各种 Constraint(约束)来实现页面自适应弹性布局. 在 StoryBoard 中使用约束实现自动布局 ...

随机推荐

  1. [原创]Java中字符串、数组、集合及JSONArray的长度属性

    前言:数组没有length()这个方法,有length的属性.String有有length()这个方法. 1.String字符串 String str = "abcdefg";st ...

  2. Mysql五种时间格式

    YEAR [字节数]:1 [取值范围]:1901~2155 [赋值]: 4位数字 2位字符串:'00'~'69'相当于2000~2069:'70'~'99'相当于1970~1999 2位数字:与2位数 ...

  3. YS私有通信协议安全整改方案

    1.背景: YS私有通信是hk研发的一款用于探测或设置hk设备的设备网络搜索软件,其基于hk的私有多播或广播协议实现.由于其自身拥有和hk同样长久的历史,早期在设计时未考虑到安全性因素,导致该协议存在 ...

  4. 找回VisualStudio异常设置中丢失的“用户未处理的(User-unhandled)”列

    今天发现我的VisualStudio中的异常设置中"用户未处理的"列丢失了 虽然我很少设置这一项,但没了还是觉得怪怪的,网上搜了一下,在文章"USER-UNHANDLED ...

  5. Koch 分形,海岸线,雪花

    此算法用于生成Koch分形(海岸线,雪花).速度高速,效果绚丽 //支持的初始直线水平角度为60 的倍数. 交换起点与终点坐标可改变生成方向 void Koch(CDC *pDC, int x1, i ...

  6. git 统计代码量 shell脚本

    #!/bin/bash # 统计代码量 # 使用方法: sh gitstat.sh "2017-11-01" "2017-11-30" "JamKon ...

  7. Tile based Rendering 二 tbr and tbdr 优化建议tiled based deferred rendering

    http://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-TileBasedArchitectures.pdf tbr 和tbdr ...

  8. 远程访问ubuntu下mysql的问题

    ubuntu下mysql不能用IP地址远程访问的问题解决 方法1: 1.mysql>grant all privileges on *.* to 'root'@'%' identified by ...

  9. Solr 中 Schema 结构说明

    schema.xml位于solr/conf/目录下,类似于数据表配置文件,定义了加入索引的数据的数据类型,主要包括type.fields和其他的一些缺省设置 1.schema的基本配置 <?xm ...

  10. PostgreSQL 9.5,带来 UPSERT 等新特性

    PostgreSQL 9.5于2016年1月7日正式发布,此版本主要带来了以下几个方面的特性: UPSERT, Row Level Security, and Big Data 1)UPSERTUPS ...