虚拟页式存储管理——页面置换算法及其影响的缺页中断率
页面置换算法
先进先出置换算法(FIFO)
该算法淘汰最早进入主存的页面。最早进入的页面,不再使用的可能性比最近调入的页面要大。特点:实现简单。只要把各调入主存的页按其进入主存的先后顺序练成一个队列即可,总是淘汰队首的那一页。
最近最久未使用算法(LRU)
该算法选择在最近一段时间内最久没有使用过的页淘汰掉。它依据的是程序局部性原理。最近最久未使用算法是利用一个特殊的栈来保存当前使用的各个页的页号。每当访问某页时,考察栈内是否有与此相同的页号,若有则将该页的页号从栈中抽出,再将它压入栈顶。
最近最不常使用算法(LFU)
该算法选择当前时间为止被访问次数最少的页置换。
其实现方法是为每页设置一个访问计数器,每当页面被访问时,该页面的访问计数器就加“1”;放生缺页时,淘汰计数器值最小的页,同时将所有计数器清“0”。
理想页面置换算法(OPT)
该算法置换主存中永远不需要的页,或移出最长时间不需要访问的页。这个算法一般不可能实现,只具有理论意义。
最近未使用页面置换算法(NRU)
第0类:没有被访问,没有被修改;第1类:没有被访问,已被修改;第2类:已被访问,没有被修改;第3类:已被访问,已被修改。第二次机会页面置换算法(SC)
寻找一个最近的时钟间隔以来没有被访问过的页面。时钟页面置换算法(Clock)
将所有的页面保存在一个类似时钟面的环形链表中,一个表针指向最老的页面。
缺页中断率
缺页中断率=中断次数/页面访问总次数
影响缺页中断率的因素:1 分配给程序的内存块数2 页面的大小3 程序编制方法4 页面置换算法
例题
在一个页式虚拟存储管理系统中,一个程序的页面走向为6、0、1、2、0、3、0、4、2、3,分别采用OPT、FIFO和LRU算法进行计算。设分配给改程序的存储块数M=3,每调进一个新页就发生一次缺页中断,求缺页中断次数F和缺页率f。
结果
①最佳算法F=6;f=60%.②先进先出算法F=9;f=90%.③最近最久未使用算法F=8;f=80%.
虚拟页式存储管理——页面置换算法及其影响的缺页中断率相关推荐
- 操作系统:虚拟页式存储管理(缺页中断、页面置换算法)
1.基本工作原理 1.基本工作原理 在进程开始运行之前,不是全部装入页面,而是装入一个或者零个页面,之后根据进程运行的需要,动态装入其他页面:当内存已满,而又需要装入 新的页面时,则根据某种算法淘汰某 ...
- 5.3. 虚拟存储管理------页面置换算法
进程运行过程中,访问的页面不在内存,调入时内存已无空闲空间,需要将内存中的一页程序或数据调到外存. 页面置换算法(page replacement algorithms):选择换出哪些页面的算法,其好 ...
- 操作系统实验--存储管理--页面置换算法--FIFO and LRU c++实现
#include<iostream> #include <stdio.h> #include <stdlib.h> #include <time.h> ...
- 操作系统:第三章 内存管理2 - 详解虚拟内存,页面置换算法,页面分配策略
本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...
- 8虚拟内存9页面置换算法
8.1虚拟存储的需求背景 虚拟内存是非连续内存分配的一个延续,非连续内存分配在存储空间内可以连续也可以不连续.虚拟内存是在非连续内存分配基础上,可以把一部分内容放到外存中去,让应用程序有更大的空间使用 ...
- 缺页中断与页面置换算法
目录 缺页中断 页面置换算法: LRU算法 缺页中断 缺页:如果进程被调度,该进程需要使用的外存页(数据)不存在于数据块中,这个现象就叫做缺页.如果这个数据此时不在,就会将这个数据从加入到数据块首 ...
- Cache与页面置换算法FIFO、LRU等
1 Cache与存储结构 (1) 定义 狭义的Cache指的是位于CPU和主存间的快速RAM, 通常它不像系统主存那样使用动态随机存取存储器(Dynamic Random Access Memory, ...
- 2020-11-22(操作系统——页面置换算法)
当内存中的页面满了之后,需要的数据又在磁盘虚拟内存中,可以使用页面置换算法将需要的页置换到物理内存中.下面先介绍几种局部页面置换算法,其针对一个进程而言的页面置换. 一.局部页面置换算法 1.最优页面 ...
- 页面置换算法最佳页面置换算法模拟JAVA实现
操作系统存储管理页面置换算法-----最佳页面置换算法模拟(JAVA实现) 话不多说,我们直接展示 package com.company;import java.util.Arrays;/*** @ ...
最新文章
- C++ primer第五版随笔--2015年1月6日
- Bmu计算机,高性能定点DSP位处理单元BMU的 - 处理器/DSP - 电子发烧友网
- 接口与继承字段常量关系
- 我的Android进阶之旅------gt;Android字符串资源中的单引號问题error: Apostrophe not preceded by 的解决的方法...
- layui遍历json数组_shell脚本:json格式化与字段抓取(下)
- 设计一个处理两种类型地址的地址簿程序_编译器设计-符号表-中间代码生成
- 阿里云服务器购买后的配置指南
- css 选择一列表菜单,css实现菜单列表随滚动条指定到对应内容
- python3 compile_python3.2的pycompile
- poj 2421 ConstructingRoads 最小生成树 Prim、Kruskal
- HTML---表格table标签中thead、tbody、tfoot的作用
- 认识并行、并发、多线程
- 计算机蓝屏无法启动代码50,win7系统出现蓝屏代码0x0000050怎么解决
- 高中关于人工智能方面的课题_《人工智能的发展与应用》课题开题报告
- 【C语言跬步积累】——分支和循环总汇
- iOS 用 AVPlayer 播放一个本地音频文件
- html app状态栏,APP设计:(一)app界面常用设计规范
- 英语拼读工具开源【Gitte】
- jquery搜索框效果,搜索,请输入关键字
- kinect v2 移动电源配置