页面置换算法

简介: 页面置换算法

在一个请求分页存储系统中,一个进程的页面走向为4,3,2,1,4,3,5,3,2,1,设分配给该进程的内存块数M=3,采用FIFO页面置换算法(每调进一个新页认为发生一次缺页中断)

(1)FIFO(先进先出算法)

因为有三个内存块,当放入4,3,2后,内存块就满了

后续进来需要通过FIFO算法决定替换谁,两种可能:

①后面进来的是4,3,2中的一个,则无需替换

②不是4,3,2中的一个选最长的数值(即占用内存块最久的)替换,这里为4

所以进一步得到:

接下来同理,4不在1,3,2中,所以再次挑选最长的,3最长,替换3

得到:

以此类推最终:

所以缺页率为9/10*100%=90%

10代表有10列,9代表除了不变以外的列

(2)LRU(最近最久未使用算法)

填充内存块这一步不变

接下来,两种可能

①如果后面的数值在4,3,2中,则不变

②若不在,看4,3,2谁离这一数值最远,在这里4离该数值最远,替换掉4

接下来,看1,3,2中谁离 “4” 这个数最远

接下来同理

最终可得:

(3)OPT算法(最佳置换算法)

OPT是看左边的,谁离他最远就替换谁,LFU是看右边,谁离他最远就替换谁

首先,填充部分是相同的。

接下来有两种可能

①如果后面的数值,在4,3,2中,则不变

②如果后面一个数值不在4,3,2中,就看该数值后面的4,3,2谁离该数值最远,可以看到2离得最远,所以替换2

接下来是4,4在4,3,1中,所以不变

接下来要注意一点:

如果后面的数没有出现4,3,1中的某一个或者多个,

①如果是一个,那么就把这一个当作无穷远将其替换,如下:

②如果是多个,那么就替换掉多个中的第一个

最终得到

(4)LFU算法(最近最少使用算法)

前面填充部分不变

LFU算法与LRU的算法最大的区别在于,LRU算法是替换最久未出现的数值,而LFU算法是近期访问最少的页面被替换。


如上,4,3,2都只进行了一次访问,那么有两种解决方法


①使用LRU算法,若使用该算法,则应替换4


②使用FIFO算法,若使用该算法,则也是替换4


这里我们使用FIFO算法

现在4,3,2,1都只被使用了一次,再次使用FIFO算法,替换3

现在4被使用了2次,3,2,1都被使用了1次,可以通过以下框框看出现的次数

那么对1,2使用FIFO算法,替换2

现在1只出现过1次,4,3出现过2次,那么替换1

以此类推,最终得:

目录
相关文章
|
2月前
|
算法
操作系统OPT算法(最佳页面替换算法)
操作系统OPT算法(最佳页面替换算法)
61 0
|
2月前
|
存储 算法
【操作系统】虚拟存储管理-页面置换算法
【操作系统】虚拟存储管理-页面置换算法
351 0
|
2月前
|
算法 关系型数据库 API
Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试
Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试
62 0
|
7月前
|
存储 NoSQL 算法
【LFU】一文让你弄清 Redis LFU 页面置换算法
【LFU】一文让你弄清 Redis LFU 页面置换算法
|
7月前
|
存储 NoSQL 算法
【LRU】一文让你弄清 Redis LRU 页面置换算法
【LRU】一文让你弄清 Redis LRU 页面置换算法
|
1天前
|
算法 索引
基于Prony算法的系统参数辨识matlab仿真
Prony算法在MATLAB2022a中用于信号分析,识别复指数信号成分。核心程序通过模拟信号X1,添加不同SNR的噪声,应用Prony方法处理并计算误差。算法基于离散序列的复指数叠加模型,通过构建矩阵并解线性方程组估计参数,实现LTI系统动态特性的辨识。
|
2天前
|
算法 安全 数据库
基于结点电压法的配电网状态估计算法matlab仿真
**摘要** 该程序实现了基于结点电压法的配电网状态估计算法,旨在提升数据的准确性和可靠性。在MATLAB2022a中运行,显示了状态估计过程中的电压和相位估计值,以及误差随迭代变化的图表。算法通过迭代计算雅可比矩阵,结合基尔霍夫定律解决线性方程组,估算网络节点电压。状态估计过程中应用了高斯-牛顿或莱文贝格-马夸尔特法,处理量测数据并考虑约束条件,以提高估计精度。程序结果以图形形式展示电压幅值和角度估计的比较,以及估计误差的演变,体现了算法在处理配电网状态估计问题的有效性。
|
2天前
|
算法
基于PSO粒子群优化的PID控制器参数整定算法matlab仿真
该文探讨了使用PSO(粒子群优化)算法优化PID控制器参数的方法。通过PSO迭代,不断调整PID控制器的Kp、Ki、Kd增益,以减小控制误差。文中提供了MATLAB2022a版本的核心代码,展示了参数优化过程及结果。系统仿真图像显示了参数随迭代优化的变化。PID控制器结合PSO算法能有效提升控制性能,适用于复杂系统的参数整定,未来研究可关注算法效率提升和应对不确定性。
|
3天前
|
算法
m基于GA遗传优化的高斯白噪声信道SNR估计算法matlab仿真
**MATLAB2022a模拟展示了遗传算法在AWGN信道中估计SNR的效能。该算法利用生物进化原理全局寻优,解决通信系统中复杂环境下的SNR估计问题。核心代码执行多代选择、重组和突变操作,逐步优化SNR估计。结果以图形形式对比了真实SNR与估计值,并显示了均方根误差(RMSE),体现了算法的准确性。**
10 0
|
5天前
|
机器学习/深度学习 存储 算法
基于SFLA算法的神经网络优化matlab仿真
**摘要:** 使用MATLAB2022a,基于SFLA算法优化神经网络,降低训练误差。程序创建12个神经元的前馈网络,训练后计算性能。SFLA算法寻找最优权重和偏置,更新网络并展示训练与测试集的预测效果,以及误差对比。SFLA融合蛙跳与遗传算法,通过迭代和局部全局搜索改善网络性能。通过调整算法参数和与其他优化算法结合,可进一步提升模型预测精度。