页面置换算法

简介: 页面置换算法

在一个请求分页存储系统中,一个进程的页面走向为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

以此类推,最终得:

目录
相关文章
|
10月前
|
存储 算法
【操作系统】虚拟存储管理-页面置换算法
【操作系统】虚拟存储管理-页面置换算法
852 0
|
4月前
|
机器学习/深度学习 算法 数据挖掘
提高时钟置换算法的性能
【10月更文挑战第25天】通过上述一种或多种方法的综合应用,可以在不同程度上提高时钟置换算法的性能,使其更好地适应各种复杂的系统环境和应用场景,提高虚拟内存管理的效率和系统的整体性能。
143 62
|
4月前
|
算法
时钟置换算法
【10月更文挑战第25天】时钟置换算法是一种简单而有效的页面置换算法,它通过使用位标志和环形链表的结构,在一定程度上平衡了算法的复杂性和性能表现。虽然它存在一些局限性,但通过改进和与其他算法的结合,可以在不同的系统环境中发挥重要作用,提高虚拟内存管理的效率和系统的整体性能。
233 51
|
4月前
|
算法
虚拟内存的页面置换算法有哪些?
【10月更文挑战第25天】不同的页面置换算法各有优缺点,在实际应用中,操作系统会根据不同的应用场景和系统需求选择合适的页面置换算法,或者对算法进行适当的改进和优化,以平衡系统的性能、开销和资源利用率等因素。
96 5
|
5月前
|
算法
有哪些页面置换算法?
页面置换算法(Page Replacement Algorithms)在计算机操作系统中用于管理虚拟内存。
91 0
|
7月前
|
算法 程序员
理解操作系统内存管理:页面置换算法全解析
大家好,我是小米,热爱分享技术的大哥哥!今天聊的是操作系统中的页面置换算法。它解决的是内存满载时,如何选择合适的页面移出以腾出空间的问题。主要有三种算法:FIFO(先进先出),简单但性能不佳;LRU(最近最久未使用),考虑时间局部性,性能较好但实现较复杂;OPT(最佳置换),理论上最优但无法实际应用。这些算法各有千秋,在实际应用中需根据场景选择最合适的方案。希望这能帮大家更好地理解内存管理的核心机制!
282 2
|
10月前
|
算法
操作系统OPT算法(最佳页面替换算法)
操作系统OPT算法(最佳页面替换算法)
245 0
|
8天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于生物地理算法的MLP多层感知机优化matlab仿真
本程序基于生物地理算法(BBO)优化MLP多层感知机,通过MATLAB2022A实现随机数据点的趋势预测,并输出优化收敛曲线。BBO模拟物种在地理空间上的迁移、竞争与适应过程,以优化MLP的权重和偏置参数,提升预测性能。完整程序无水印,适用于机器学习和数据预测任务。
|
3天前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
2天前
|
算法 安全 数据安全/隐私保护
基于BBO生物地理优化的三维路径规划算法MATLAB仿真
本程序基于BBO生物地理优化算法,实现三维空间路径规划的MATLAB仿真(测试版本:MATLAB2022A)。通过起点与终点坐标输入,算法可生成避障最优路径,并输出优化收敛曲线。BBO算法将路径视为栖息地,利用迁移和变异操作迭代寻优。适应度函数综合路径长度与障碍物距离,确保路径最短且安全。程序运行结果完整、无水印,适用于科研与教学场景。

热门文章

最新文章