操作系统之页面置换算法

在请求分页存储管理系统中,由于使用了虚拟存储管理技术,使得所有的进程页面不是一次性地全部调入内存,而是部分页面装入。这就有可能出现下面的情况:要访问的页面不在内存,这时系统产生缺页中断。操作系统在处理缺页中断时,要把所需页面从外存调入到内存中。如果这时内存中有空闲块,就可以直接调入该页面;如果这时内存中没有空闲块,就必须先淘汰一个已经在内存中的页面,腾出空间,再把所需的页面装入,即进行页面置换。

常见的页面置换算法有:先进先出法(FIFO)、最佳置换法(OPT)和最近最少使用置换法(LRU)。

先进先出(FIFO)算法:顾名思义就是把页面中最先存在的,最先置换出来。例如:1,2,3,4,5,1,2,5,1,2,3,4,5。当内存块数量为3时,求先进先出算法的缺页次数。

内存块3个 1 2 3 4 5 1 2 5 1 2 3 4 5
1 1 1 1 2 3 4 5       1 2 3
2   2 2 3 4 5 1       2 3 4
3     3 4 5 1 2       3 4 5

由上图可知,当内存块为3块时,缺页数为10。

优缺点:先进先出法(FIFO)简单易于实现,但是性能不好,存在如果对—个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。

最佳置换(OPT)算法:就是把将来最远或不在会置换进来的页面置换出去。例如:1,2,3,4,5,1,2,5,1,2,3,4,5。当内存块数为3时,求最佳置换算法的缺页数。

内存块3个 1 2 3 4 5 1 2 5 1 2 3 4 5
1 1 1 1 1 1           3 3  
2   2 2 2 2           2 4  
3     3 4 5           5 5  

由上图可知,当内存块为3时,缺页数为7。

优缺点:OPT算法因为要需要预先知道一个进程在整个运行过程中页面走向的全部情况,因此只是一种理想状态,实际是行不通的。一般用算法来衡量(如通过模拟实验分析或理论分析)其他算法的优劣。

最近最少使用算法(LRU):就是把,最近最久没有使用过的页面数置换出去。例如:1,2,3,4,5,1,2,5,1,2,3,4,5。当内存块数为3时,求最少使用算法的缺页数。

内存块3个 1 2 3 4 5 1 2 5 1 2 3 4 5
1 1 1 1 4 4 4 2       2 2 5
2   2 2 2 5 5 5       3 3 3
3     3 3 3 1 1       1 4 4

由上图可知,当内存块为3时,缺页数为10。

优缺点:LRU算法是经常采用的页面置换算法。缺点是实现上需要大量的硬件支持。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-30 16:05:09

操作系统之页面置换算法的相关文章

操作系统之页面置换算法(最佳置换OPT,先进先出FIFO,最近最久未使用LRU)

最近学习操作系统时,实验要求实现常见的三种页面置换算法,博主按照书上要求试着编写,实现了案例,并记录在博客随记中,以便后续自己复习并也给需要的同学分享参考一下!水平有限,若有错,请悄悄告诉博主!博主好立即改正. 最佳置换算法(optimal replacement,OPT)是从内存中选择今后不再访问的页面或者在最长一段时间后才需要访问的页面进行淘汰.如下例子: 1 #include <iostream> 2 #include <stdio.h> 3 #include <std

操作系统中10种页面置换算法的总结

页面置换算法总结 当发生缺页中断时,操作系统必须将内存中选择一个页面置换出去为要调入的新页面腾出空间. 那究竟选择哪一个淘汰哪一个一面比较好呢? 1.      最优页面置换算法 选择最长时间内不会被访问的页面丢掉.越久越好.但是理论上不能实现. 2.      最近未使用页面置换算法(NRU)算法 找到最久没有使用的页面置换出去,页面被访问时设置R位,修改时设置M位,R位定期清0: 把页面分四类 0类.未被访问,未被修改的R=M=0 1类未被访问,被修改R=0,M=1 2类被访问,未被修改R=

页面置换算法-操作系统

操作系统中的页面置换算法 1.最佳置换算法(OPT) 这是理想算法,不可能实现的. 该算法是指,其所选择的淘汰页面,将是以后不再使用,或者未来最长时间内不再被访问的页面.这样来保证最低的缺页率. 例子: 假定系统为某进程分配了三个物理块,并考虑有以下的页面号引用串: 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 (1)进程运行时,先将7,0,1 三个页面装入内存. (2)当进程要访问页面2 时,将会产生缺页中断.此时OS根据最佳置换算法,将选择页面7 予以淘汰.

操作系统 页面置换算法LRU和FIFO

LRU(Least Recently Used)最少使用页面置换算法,顾名思义,就是替换掉最少使用的页面. FIFO(first in first out,先进先出)页面置换算法,这是的最早出现的置换算法.该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最长的页面给予淘汰. FIFO置换算法有这样一个奇怪现象:内存空间块数越多,缺页中断率可能相反的越高(缺页中断次数越高). LFU(Least Frequently Used)最近最少使用算法,它是基于“如果一个数据在最近一段时间内使用次

操作系统原理(二)——内存管理之页面置换算法

页面置换算法 1. 总述 为提高内存利用率,解决内存供不应求的问题,更加合理的使用内存,人们创造了分页式内存抽象.同时有一个虚拟内存的概念,是指将内存中暂时不需要的部分写入硬盘,看上去硬盘扩展了内存的容量,所以叫做“虚拟”内存.使用虚拟内存,应用程序可以使用比实际物理内存更大的内存空间.可以认为这个更大的内存空间就在硬盘上,只有将某一部分需要被用到时,才被写入真实内存:当它暂时不再被用到时,又被写回硬盘.分页式内存管理将物理内存分为等大的小块,每块大小通常为1K.2K.4K等,称为页帧:逻辑内存

操作系统页面置换算法(opt,lru,fifo,clock)实现

#include <iostream> #include<map> #include<set> #include <algorithm> #include<cstdio> #include<cstring> #include<cmath> #define N 200 using namespace std; int page[N];//页面引用号 int block[N];//物理块,内存 int dist[N][N];/

存储器管理之页面置换算法

地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断.当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间.而用来选择淘汰哪一页的规则叫做页面置换算法.常见的置换算法有: 1)最佳置换算法(OPT)(理想置换算法) 这是一种理想情况下的页面置换算法,但实际上是不可能实现的.该算法的基本思想是:发生缺页时,有些页面在内存中,其中有一页将很快被访问(也包含紧接着的下一条指令的那页),而其他页面则可能要到10.100或者1000条指令后才会被访问,

页面置换算法

地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断.当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间.而用来选择淘汰哪一页的规则叫做页面置换算法.常见的置换算法有: 1)最佳置换算法(OPT)(理想置换算法) 这是一种理想情况下的页面置换算法,但实际上是不可能实现的.该算法的基本思想是:发生缺页时,有些页面在内存中,其中有一页将很快被访问(也包含紧接着的下一条指令的那页),而其他页面则可能要到10.100或者1000条指令后才会被访问,

虚拟内存之页面置换算法

四种页面置换算法: 最佳(OPT,Optional) 最近最少使用(LRU,Least Recently Used) 先进先出(FIFO,First In First Out) 时钟(Clock) 一.最佳置换算法 OPT 策略选择置换下次访问距当前时间最长的那些页,可以看出该算法能导致最少的缺页中断,但是由于它要求操作系统必须知道将来的事件,显然这是不可能实现的.但它仍然能作为一种标准来衡量其他算法的性能. 二.最近最少使用算法 LRU 策略置换内存中上次使用距当前最远的页.根据局部性原理,这