操作系统:虚拟页式存储管理(缺页中断、页面置换算法)

1、基本工作原理

1、基本工作原理
在进程开始运行之前,不是全部装入页面,而是装入一个或者零个页面,之后根据进程运行的需要,动态装入其他页面;当内存已满,而又需要装入
新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面。在使用虚拟页式存储管理时需要在页表中增加一些内容:
页号、驻留位(中断位)、内存块号、外存地址、访问号、修改位驻留位:表示该页在外存还是内存;
访问位:表示该页在内存期间是否被访问过,又称R位;
修改位:表示该页在内存中是否被修改过,又称M位;

缺页中断处理

2、缺页中断
在地址映射过程中,若在页表中发现所要访问的页面不在内存,则产生中断,当发生中断时,系统必须在内存选择一个页面移出内存,
以便为调入新的页面让出空间,尽管每次可以随机选选择一个页面置换,但选择不常使用的页面会是系统性能好的多,减少不必要的额外
开销,就产生了页面置换算法。3、页面置换算法:
3.1理想页面(Optimal, OPT)置换算法
发生缺页时,有些页面在内存中,其中有一页将很快被访问(包含紧接着 的下一条指令的那页),而其他页则可能到10、
100或1000条指令后才会被访问,每个页都可以用在该页面首次被访问前所要执行的指令数进行标记。标记树最大的页应该被置换。举例:如果某页在八百万条指令内不会被使用,另外一页在六百万条指令不会被使用,则置换前一个页面。这个算法无法实现,因当缺页
中断时,系统无法知道各个页面下一次在什么时候被访问3.2先进先出置换算法(First In First Out, FIFO)
置换最先调入内存的页面,即置换在内存中驻留时间最久的页面。按照进入内存的先后次序排列成队列,从队尾进入,从队首删除。但是
该算法会淘汰经常访问的页面,不适应进程实际运行的规律,目前已经很少使用。3.3最近最久未使用置换算法(Least Recently Used, LRU)
刚被访问的页面,可能马上又要被访问;而较长时间内没有被访问的页面,可能最近不会被访问。 LRU算法普偏地适用于各种类型的程
序,但是系统要时时刻刻对各页的访问历史情况加以记录和更新,开销太大,因此LRU算法必须要有硬件的支持。3.4第二次机会页面置换算法
FIFO算法可能会把经常使用的页面置换出去,为了避免这一问题,对该算法进行简单的修改:检查最老页面的R位,如果R位是0,那么
这个页面又老有没用,可以立即置换出去,如果是1,就清零R位,并将该页放到链表的尾端,修改它的装入时间使它就像装入的一样,
然后继续搜索。如果所有的页面都被访问过,那么该算法就被降为纯粹的FIFO算法。3.5时钟页面置换算法
由于第二次机会页面置换算法要经常在链表中移动页面,降低了效率。一个更好的办法,将所有的页面存在一个类似钟表面的环形链
表中。3.6最近未使用(NRU:Not Recently Used)
用R位和M位构造一个简单的页面置换算法:当启动一个进程时,它的所有页的两个位都由操作系统设置成0,R位被定期的清零,以
区别最近没有被访问的页和被访问了的页。 
根据R位和M位,分为4类页面 
第0类:没有被访问,没有被修改 
第1类,没有被访问,被修改 
第2类,被访问,没有被修改 
第3类,被访问,被修改。
NRU算法随机地从编号最小的非空类中挑选一个页淘汰之。这个算法隐含的意思是,淘汰一个在最近一个时钟周期内没有被访问
的已修改页要比淘汰一个被频繁访问的干净的页好。4、Belady异常现象
从直觉上看,在内存中的物理页面数越多,程序的缺页次数应该越少,但是实际情况并不是这样。Belady在1969年发现一个反例,
使用FIFO算法时,四个页框时缺页次数比三个页框时多。这种奇怪的情况称为Belady异常现象。5、影响缺页次数的因素
1)分配给程序的物理页面数
2)页面的大小
3)程序的编制方法
4)页面置换算法

2、计算缺页次数

理想页面(Optimal, OPT)置换算法

理想页面

先进先出置换算法(First In First Out, FIFO)

FIFO

 最近最久未使用置换算法(Least Recently Used, LRU)

LRU

在一个请求页式存储管理中,一个程序的页面走向为3,4,2,1,4,5,4,3,5,1,2,并采用LRU算法。设分配给该程序的存储块
数 S 分别为3 和 4,在该访问中发生的缺页次数 F 

LRU

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序 长按api_高质量的微信小程序样式模板应该长什么样?

现在不懂技术的小白若想快速制作自己的小程序,一般是通过小程序模板来实现。通过在模板上添加自己的图片、文字、商品等等,可以很简单地生成一个小程序。不过要想把小程序做得好看,你得找高质量的小程序样式模板才行。那么高质量的微信小程序…

web安全测试-AppScan使用分享

这里主要分享如何使用AppScan对一大项目的部分功能进行安全扫描。 ------------------------------------------------------------------------ 其实,对于安全方面的测试知道的甚少。因为那公司每个月要求对产品进行安全扫描。掌握了一人点使用技巧,所…

ros 开源物体检测_ROS kinetic + Realsens D435i + ORK + LINEMOD 物体识别

1. ORKORK (Object Recognition Kitchen) 是 ROS 集成的物体识别库,当前 Kinetic 版本的 ROS 只集成了部分功能包的二进制安装文件,所以需通过源码编译安装。安装依赖库sudo apt-get installmeshlabsudo apt-get install libosmesa6-devsudo apt-get ins…

华为荣耀6 H60-L02/L12(联通版)救砖包【适用于无限重启】

本帖最后由 HOT米粒 于 2014-11-16 20:43 编辑 华为荣耀6 H60-L02/L12(联通版)救砖包【适用于无限重启】说明: 1、本工具包用于华为荣耀6 H60-L02(联通版); 2、本工具适用于在Honor Logo 无限重启的童鞋恢复…

Mysql存储引擎中InnoDB与Myisam的区别

为什么80%的码农都做不了架构师?>>> 1. 事务处理 innodb 支持事务功能,myisam 不支持。 Myisam 的执行速度更快,性能更好。 2. select ,update ,insert ,delete 操作 MyISAM:如果执行大量的SELECT,MyISA…

一步步学习javascript基础篇(8):细说事件

终于学到事件了,不知道为何听到“事件”就有一种莫名的兴奋。可能是之前的那些知识点过于枯燥无味吧,说起事件感觉顿时高大上了。今天我们就来好好分析下这个高大上的东西。 可以说,如果没有事件我们的页面就只能阅读了。有了事件&#xff0c…

求1到n ,这n个整数的二进制表示比特1的个数(时间复杂度:O(n))

题目描述&#xff1a; 给定一个数字n&#xff0c;统计1&#xff5e;n之间的n个数字的二进制的1的个数 int Nums_Of_Bit_1(int num) { int* number new int[num]; int pow 1,before 1; int count 0; for(int i1; i<num; i){ if (i pow){ …

mysql支持cube_mysql聚合函数rollup和cube

一、with rollup&#xff1a;with rollup通常和group by语句一起使用&#xff0c;是根据维度在分组的结果集中进行聚合操作。——对group by的分组进行汇总。假设用户需要对N个纬度进行聚合查询操作&#xff0c;普通的groupby语句需要N个查询和N次group by操作。而rollup的有点…

域名详解

定义 是由一串用 “.” 分割的字符组成的Internet上某一台计算机或计算机组的名称&#xff0c;域名的本质是IP地址的一个映射&#xff0c;域名的目的是便于记忆和沟通的一组服务器的地址。 域名解析 域名解析的过程实际上是将域名还原为IP地址的过程 &#xff08;1&#xf…

navicat远程mysql_navicat 远程连接mysql

一、修改用户权限&#xff1a;需要手动增加可以远程访问数据库的用户。方法一(不推荐)、本地登入mysql&#xff0c;更改 "mysql" 数据库里的 "user" 表里的 "host" 项&#xff0c;将"localhost"改为"%"#mysql -u root -proo…

应用层协议:HTTP与HTTPS协议详解、二者的区别

http协议详解 1、HTTP协议&#xff1a;超文本传输协议 是一种分布式、合作式、多媒体信息系统服务&#xff0c;面向应用层的协议。是一种通用的&#xff0c;不分状态的协议。是一种请求/应答协议。1.1、HTTP/1.0和HTTP/1.1的比较 RFC 1945定义了HTTP/1.0版本。其中最著名的就…

[POJ 1330] Nearest Common Ancestors (倍增法)

题目同上篇&#xff0c;最近公共祖先。 因为没有清零tot&#xff0c;RE了好多次TAT 一定要初始化啊&#xff01;&#xff01; 1 #include<cstdio>2 #include<cstring>3 #include<queue>4 #include<iostream>5 using namespace std;6 int root,head[100…

javascript console 函数详解 js开发调试的利器 浏览:3201|更新:2014-05-30 09:27

引用地址&#xff1a;http://jingyan.baidu.com/article/e75aca855c6419142edac6c1.html一键约师傅百度师傅最快的到家服务&#xff0c;最优质的电脑清灰&#xff01;Console 是用于显示 JS和 DOM 对象信息的单独窗口。并且向 JS 中注入1个 console 对象&#xff0c;使用该对象…

链路层基本问题 : 封装成帧、差错检测、流量控制

一、封装成帧 1、MAC帧 类型字段 &#xff08;2个字节&#xff09;&#xff1a; 用来标志上一层使用的是什么协议&#xff0c;以便把收到的MAC帧的数据上交给上一层的这个协议。 数据字段 &#xff08;46-1500&#xff09;&#xff1a; 正式名称是MAC客户数据字段最小长度6…

mysql 5.7 super_MySQL 5.7 下的对super用户只读

在MySQL的主从复制场景下&#xff0c;遇上slave被意外写入数据是一件比较严重的问题&#xff0c;毕竟在一般情况下我们都希望slave仅用只读数据库&#xff0c;如果被意外写入数据可能会造成数据的不一致&#xff0c;从而导致主从的报错。因此在MySQL中可以通过设置变量参数read…

CSS 链接

2019独角兽企业重金招聘Python工程师标准>>> 不同的链接可以有不同的样式。 链接样式 链接的样式&#xff0c;可以用任何CSS属性&#xff08;如颜色&#xff0c;字体&#xff0c;背景等&#xff09;。 特别的链接&#xff0c;可以有不同的样式&#xff0c;这取决于他…

数据链路层:ARP协议详解(绝对经典)

&#xff11;、ARP协议定义&#xff1a; 地址解析协议&#xff0c;工作在数据链路层&#xff0c;在本层和硬件接口联系&#xff0c;同时向上层提供服务。IP数据包常通过以太网发送&#xff0c;以太网设备不识别32位IP地址&#xff0c;他们是以48位以太网地址传输以太网数据包的…

php pdo操作mysql_PHP操作数据库详细(PDO)

PHP 5.1 发布时将附带一个全新的数据库连接层&#xff0c;即 PHP Data Objects (PDO)。虽然 PHP 一直都拥有很好的数据库连接&#xff0c;但 PDO 让 PHP的数据库操作 达到一个新的高度。PDO可支持基本的MySQL、Microsoft SQL Server、Oracle等数据库&#xff0c;并且提供了统一…

HTTP POST请求报文格式分析与Java实现文件上传

时间 2014-12-11 12:41:43 CSDN博客原文 http://blog.csdn.net/bboyfeiyu/article/details/41863951主题 HTTP HttpComponents在开发中&#xff0c;我们使用的比较多的HTTP请求方式基本上就是GET、POST。其中GET用于从服务器获取数据&#xff0c;POST主要用于向服务器提交一些…

网络层:IP协议详解(IP协议真的得看这篇)

1、IP协议概念 IP&#xff08;Internet Protocol , 互联网协议&#xff09;主要用于互联网通信。IP协议用于将多个包交换网络连接起来&#xff0c;他在原地址和目的地址之间传输数据报&#xff0c;还提供对数据大小的重新组装功能&#xff0c;以适应不同网络的要求。 IP协议是…