页面置换算法知识回顾和习题
页面置换算法
- 知识回顾
- 练习
- 习题一
- 习题二
知识回顾
练习
习题一
内容:
某页式虚拟存储管理系统中,页面大小为1KB。给某一进程分配的内存块数为3 ,并按下列地址顺序引用内存单元:
3635、3632、1140、3584、2892、3640、0040、2148、1700、2145、3209、0000、1102、1100。
如果上述数字均为十进制数,而内存中尚未装入任何页。
(1) 给出使用LRU算法时的缺页次数。
(2)用流程图的方式解释地址变换的过程。(缺页时只需指出产生缺页中断以请求调页,具体的中断处理流程不需画出)
解答
(1)根据题意,页面的引用次序为3、3、1、3、2、3、0、2、1、2、3、0、1、1,则根据LRU算法依次访问各页,各内存块中的页面置换情况为(加粗页面表示刚调入内存):
访问页面 | 3 | 3 | 1 | 3 | 2 | 3 | 0 | 2 | 1 | 2 | 3 | 0 | 1 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 1 | 1 | 1 | 0 | 0 | 0 |
内存块2 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 3 | 3 | 3 | 3 | ||
内存块3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | ||||
是否缺页 | ✔ | ❌ | ✔ | ❌ | ✔ | ❌ | ✔ | ❌ | ✔ | ❌ | ✔ | ✔ | ✔ | ❌ |
故可以看出,LRU算法时的缺页次数为8次。
PS:解题过程中需要进行淘汰页面的选择时,可以通过逆向检查此时在内存中的几个页面号,在逆向扫描过程中最后一个出现的页面就是要淘汰的页面。
例如此时分析到需要页面0,而此时内存已满,需要选一个页面淘汰,进行页面置换:那此时内存中的页面是3、1、2,然后逆向扫描之前访问的页面,三个页面当中1是最早访问的,也是最近最久未使用的页面,故将页面1淘汰,将需要的页面0调入。
页面置换之后:
其他分析过程类似。
(2)假设没有快表机构,其地址变换过程为:
习题二
题目内容:
在一个请求分页系统中,假定分配给一个进程的物理块数为3,并且此进程的页面走向为2、3、2、1、5、2、4、5、3、2、5、2。
试用FIFO、LRU和OPT三种算法分别计算出在访问过程所发生的缺页次数。
解答:
FIFO算法:优先淘汰最早进入内存的页面,可以把进入内存的页面根据调入顺序形成一个队列,需要置换页面时将队列头淘汰
访问页面 | 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 2 | 3 | 2 | 2 | ||||||||
内存块2 | 3 | 3 | 3 | |||||||||
内存块3 | 1 | |||||||||||
是否缺页 | ✔ | ✔ | ✔ |
所以把2淘汰,页面5调入:
访问页面 | 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 2 | 3 | 2 | 2 | 5 | |||||||
内存块2 | 3 | 3 | 3 | 3 | ||||||||
内存块3 | 1 | 1 | ||||||||||
是否缺页 | ✔ | ✔ | ✔ | ✔ |
此时应该淘汰页面3,调入2:
访问页面 | 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 2 | 3 | 2 | 2 | 5 | 5 | ||||||
内存块2 | 3 | 3 | 3 | 3 | 2 | |||||||
内存块3 | 1 | 1 | 1 | |||||||||
是否缺页 | ✔ | ✔ | ✔ | ✔ | ✔ |
分析过程就是这样,所以最后的结果:
访问页面 | 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 2 | 3 | 2 | 2 | 5 | 5 | 5 | 5 | 3 | 3 | 3 | 3 |
内存块2 | 3 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 5 | 5 | |
内存块3 | 1 | 1 | 1 | 4 | 4 | 4 | 4 | 4 | 2 | |||
是否缺页 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
故使用FIFO算法在访问过程中所发生的缺页次数为9次。
LRU算法:
访问页面 | 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 3 | 3 | 3 |
内存块2 | 3 | 3 | 3 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | |
内存块3 | 1 | 1 | 1 | 4 | 4 | 4 | 2 | 2 | 2 | |||
是否缺页 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
故使用LRU算法在访问过程中所发生的缺页次数为7次。
OPT算法:
访问页面 | 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 2 | 2 | 2 | 2 | 2 | 2 | 4 | 4 | 4 | 2 | 2 | 2 |
内存块2 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | |
内存块3 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | |||
是否缺页 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
(倒数第三列,后面只会用到页面5,所以既可以用4号,也可以用3号页面进行替换,置换为页面2。)
故可以看出,使用OPT算法在访问过程中所发生的缺页次数为6次。
PS:OPT算法淘汰那些永不使用,或者在最长时间内不再被访问的页面(预知未来),所以在选择淘汰哪个页面时,和LRU算法刚好相反,可以使用前向扫描方法,在前向扫描过程中最后一个出现的页面就是要淘汰的页面。
比如此时内存已满,存放了2、3、1号页面,要将5号页面置换进来,淘汰页面可以从当前页面开始前向扫描,发现1是后面不会在访问的(1号是永不再使用的),所以淘汰1。
替换之后,变为:
个人理解,有误请指正~
页面置换算法知识回顾和习题相关推荐
- 请求分页管理方式页面置换算法
大勇若怯,大智若愚 文章目录 请求分页管理方式 知识总览思维导图 页表机制 缺页中断机构 地址变换机构 总结思维导图 页面置换算法 知识总览思维导图 最佳置换算法(OPT) 先进先出置换算法 (FIF ...
- 三十七、页面置换算法
一.知识总览 请求分页存储管理与基本分页存储管理的主要区别: 在程序执行的过程中,当所访问的信息不再内存中时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序. 若内存空间不够,由操作系统负责 ...
- 操作系统:基于页面置换算法的缓存原理详解(下)
概述: 在上一篇<操作系统:基于页面置换算法的缓存原理详解(上)>中,我们主要阐述了FIFO.LRU和Clock页面置换算法.接着上一篇说到的,本文也有三个核心算法要讲解.分别是LFU(L ...
- 计算机操作系统——页面置换算法
声明:本篇博客参考书籍<计算机操作系统>(西安电子科技大学出版社) 文章目录 一.最佳页面置换算法 1.基本知识 2.算法思想 二.先进先出(FIFO)页面置换算法 1.基本知识 2.算法 ...
- 存储管理的页面置换算法
存储管理的页面置换算法 存储管理的页面置换算法在考试中常常会考到,操作系统教材中主要介绍了3种常用的页面置换算法,分别是:先进先出法(FIFO).最佳置换法(OPT)和最近最少使用置换法(LRU).大 ...
- 13 操作系统第三章 内存管理 虚拟内存 请求分页管理方式 页面置换算法 页面分配策略
文章目录 1 虚拟内存 1.1 传统存储管理方式的特征.缺点 1.2 局部性原理 1.3 虚拟内存主要特征 1.4 如何实现虚拟内存技术 1.5 虚拟内存的基本概念小结 2 请求分页管理方式 2.1 ...
- 操作系统课设之虚拟内存页面置换算法的模拟与实现
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
- 页面置换算法-LRU
页面置换算法-LRU实验报告 目录 原创性声明 1 项目描述 2 系统结构分析 3 系统详细设计 4 系统主要算法 5 系统程序实现 6课程设计总结 附录:源程序 原创性声明 参考文献 <面向对 ...
- 页面置换算法相关概念和计算
页面置换算法相关概念和计算(含例题详解) 注:本文只适用于做题,想更详细了解调度算法相关的知识可以参考这篇文章
最新文章
- Js Array数组ES5/ES6常用方法
- Ubuntu 默认输入法切换(更改)--- 解决中文输入问题
- 一文盘点数据行业的动态演变
- eclipse出现updating error reports database一直运行解决方案
- 移动端阻止body左右偏移
- mysql用命令修改主键名_MySQL的常用命令:添加外键,修改字段名称,增加字段 设置主键自增长等...
- 用TensorFlow的Linear/DNNRegrressor预测数据
- Django contenttypes组件
- About_php_封装函数
- Evolved Transformer
- 我的世界Java版最大村庄_《我的世界》MC中最大的村庄种子,PC和PE都可以用
- 004C语言 实现小世界网络
- 【实践与问题解决30】苹果手机如何取消使用切换控制时候弹出的重要通知
- CAD高版本窗体阵列LISP_如何把CAD高版本阵列对话框在低版本调出来?
- 达人评测 r7 7730u和i7 12700h差距 锐龙r77730u和酷睿i712700h对比
- UEstudio 17打开中文乱码的处理解决
- 计算机的最新应用有哪些内容是什么,善用Wink,将电脑操作录屏为flash (更新图片)...
- mysql投影和选择区别_关系运算里面,“选择”和“投影”区分?
- 面向对象设计的23种设计模式
- 学习笔记:MOOC 文献管理与信息分析
热门文章
- 视频云技术系列 - 5G 700MHz关键技术,大塔小塔模式和无线上行增强技术原理
- ug10许可证错误一8_申请流程企业排污许可证申请常见问题解答连载(一)
- 【100%通过率 】【华为OD机试c++/python】攻城战【 2023 Q1考试题 A卷 |200分】
- 51单片机学习 串行口通信实验
- Gmail POP3设定
- 华为鸿蒙电视什么屏幕,华为“屏”什么?
- [自动化-脚本]001.自动领淘金币:Anyweb模拟操作
- taggd-master和百度图钉的几个坑
- Chrome 浏览器安装Vue2、Vue3插件方法 (详细有效)
- 2014年4月7日 再次深入激辩余额宝