页面置换算法(最佳置换算法、FIFO置换算法、LRU置换算法、LFU置换算法)

页面置换产生的原因是:分页请求式存储管理(它是实现虚拟存储管理的方法之一,其中一个特性是多次性-->多次将页面换入或换出内存)

效果最好的页面置换算法:最佳置换算法

比较常用的页面置换算法有:FIFO置换算法、LRU置换算法、LFU置换算法

最佳置换算法:不可能实现-->是衡量其他置换算法的方法。

FIFO置换算法:先进先出置换算法,淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。(实现简单)

LRU置换算法:最近最久未使用置换算法,该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间T,当须淘汰一个页面时,选择现有页面中其T值最大的,即最近最久未使用的页面予以淘汰。

LFU置换算法:最少使用置换算法,选择在最近时期使用最少的页面作为淘汰页。

以下是一个各算法描述的例子

假定某进程有8个页面,系统为分配了三个物理块.并考虑有以下的页面号引用串:7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

最佳置换算法:

FIFO置换算法:

LRU置换算法:

LFU置换算法:

 

时间: 2024-10-05 17:38:43

页面置换算法(最佳置换算法、FIFO置换算法、LRU置换算法、LFU置换算法)的相关文章

算法(第4版)-1.5 案例研究:union-find算法

问题→ 动态连通性:当程序从输入中读取了整数对p q时,如果已知的所有整数对都不能说明p和q是相连的,那么则将这一对整数写入到输出中.如果已知的数据可以说明p和q 是相连的,那么程序应该忽略p q这对整数并继续处理输入中的下一对整数. 该问题的应用→ 网络,变量名等价性,数字集合等. 设计API→ public class UF   UF(int N) 以整数标识(0到N-1)初始化N个触点 void union(int p, int q) 在p和q之间添加一条连接 int find(int p

排序算法(三)冒泡、选择排序的Python实现及算法优化详解

说在前面 最近一年太忙,博客长草了.近日用Python实现了常用排序算法,供大家参考. Java版本排序算法及优化,请看以前的文章. <排序算法之简单排序(冒泡.选择.插入)> <排序算法(二)堆排序> 1.排序概念 这里不再赘述,请参看前面2篇文章 2.简单排序之冒泡法Python实现及优化 原理图 2.1.基本实现 num_list = [     [1, 9, 8, 5, 6, 7, 4, 3, 2],     [1, 2, 3, 4, 5, 6, 7, 8, 9] ] nu

-实现 LFU 缓存算法

-实现 LFU 缓存算法, 设计一个类 LFUCache,实现下面三个函数 + 构造函数: 传入 Cache 内最多能存储的 key 的数量 + get(key):如果 Cache 中存在该 key,则返回对应的 value 值,否则,返回-1. + set(key,value):如果 Cache 中存在该 key,则重置 value 值:如果不存在该 key,则将该 key 插入到到 Cache 中,若插入后会导致 Cache 中存储的 key 个数超过最大容量,则在插入前淘汰访问次数最少的数

任正非:向谷歌学习,杀出一条血路(谷歌军团的编制不大,战斗力极强。任何产品都是架构第一。算法团队直接杀入到项目中去,一线既有算法又有数据,就容易突破,抽象的平台一定要有实践东西检验。蓝军不一定是有学历的。我们帮助他们在工作中完成学历教育)

IT之家1月22日消息 日前,华为心声社区公布了任正非在1月9日在杭州研究所业务汇报会上的讲话.在本次讲话中,任正非表示在软件工程能力提升上,我们最缺乏的是对宏观架构有清醒认识的人才.建立公司是一个架构:建立公司的利益体系也是一个架构:任何产品都是架构第一:软件重构一定要从宏观架构入手. 任正非强调,没有谁在限制我们的科研,我们也不要自己约束了自己,要敢于到贴近人才资源的地方进行研究活动,在每个研究所形成自己的技术要素,对行业发展形成牵引.要多和终端.外研所交流. 最后任正非表示,谷歌军团的编制

冒泡法的算法最佳情况下的时间复杂度为什么是O(n)

我在许多书本上看到冒泡排序的最佳时间复杂度是O(n),即是在序列本来就是正序的情况下. 但我一直不明白这是怎么算出来的,因此通过阅读<算法导论-第2版>的2.2节,使用对插入排序最佳时间复杂度推算的方法,来计算冒泡排序的复杂度. 1. <算法导论>2.2中对插入排序最佳时间复杂度的推算 在最好情况下,6和7总不被执行,5每次只被执行1次.因此, 时间复杂度为O(n) 2. 冒泡排序的时间复杂度 2.1 排序代码 public void bubbleSort(int arr[]) {

【转】缓存淘汰算法系列之3——FIFO类

原文地址:http://www.360doc.com/content/13/0805/16/13247663_304923435.shtml 1 FIFO 1.1. 原理 按照“先进先出(First In,First Out)”的原理淘汰数据. 1.2. 实现 FIFO队列,具体实现如下: 1. 新访问的数据插入FIFO队列尾部,数据在FIFO队列中顺序移动: 2. 淘汰FIFO队列头部的数据: 1.3. 分析 l 命中率 命中率很低,因为命中率太低,实际应用中基本上不会采用. l 复杂度 简单

【算法揭秘】Google Trips中存在了280年的古老算法揭秘

算法工程比较有意思的地方在于它永远不过时,不知道什么时候比较古老但是比较有用的算法可能会在我们的设计中体现,昨天,google发布了它的google trips, 一个新的app帮助你创建你在城市中的非常不错的行程.而这个算法确实在280年之前就已经被论证过的. 1736年,欧拉发表了著名的有关柯尼斯堡的七座桥的著名论文,七座桥问题,如下: 在这篇论文中,欧拉研究了以下问题:能否旅行者所有桥只走一次就能够逛遍整所城市(大陆被七座桥隔开)?最后论文给出了结果,对于柯尼斯堡这个城市来说来说,不能.为

算法也是很过瘾的~~用面向对象实现~夜过吊桥~算法

问题描述 1.五个人打算过一座吊桥,开始时他们都位于该桥的一侧. 2.天很黑,五个人手里只有一个手电筒. 3.该桥一次最多只能同时过两个人,无论是一个人还是两个人过桥,都需要携带手电筒看路.而且手电筒只能通过人携带过桥的方式传递. 4.第一个人过桥需要1分钟时间,第二个人过桥需要2分钟,第三个人需要5分钟,第四个需要7分钟,第五个需要10分钟.由于速度不同,两个人一起过桥的话,速度以慢的人为准. 问题:求最快过桥时间.要求写出求解的算法. 分析题目 1.从左边到右边,需要有一个人拿着手电筒,到达

【字符串处理算法】将输入字符串中的各个单词反序的算法设计及C代码实现

一.需求描述 输入一个字符串,编写程序将该字符串中的各个单词反序拼装并输出.例如,如果输入的字符串是"Hello, how do you do",那么输出的字符串为"do you do how Hello,".注意保留各个单词之间的空格及相应的标点符号. 二.算法设计 通过观察示例字符串(即"Hello, how do you do"),我们可以看到该字符串中各个单词与空格之间的关系为:单词总数=空格总数+1.也就是说,示例字符串中的空格总数为4