当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:操作系统的内存管理一直是计算机领域研究的一个重要方向。文中分析了几种常用内存管理中的页面置换算法及其存在的问题,提出了LUR页面置换算法的操作系统内存管理中比较接近理想算法的一种页面置换算法,并阐述了使用矩阵方法实现该页面置换算法的原理。

引言

操作系统的内存管理一直是计算机领域研究的一个重要方向,而内存的虚存管理是存储管理的核心。其原因在于内存的价格昂贵,用大量的内存存储所有被访问的程序与数据段是不可能的;而外存尽管访问速度较慢,但价格便宜,适合于存放大量的信息。因此,在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到的信息,这无疑可以大大扩充内存的功能,并大大提高计算机的并发度。虚拟页式存储管理,就是将进程所需空间划分为多个页面,内存中只存放当前所需页面,其余页面放入外存的管理的一种假内存扩充方式。在程序执行时,如果发现要访问的页面不在内存,则系统将产生缺页中断。缺页中断服务程序将负责把位于磁盘上的数据加载到物理内存。

虚拟页式存储管理虽然在某些程度上可以减少进程所需的内存空间,但同时也会带来运行时间变长的问题。进程在运行的过程中,不可避免地要把在外存中存放的一些信息和内存中已有的数据进行交换,由于内外存运行速度的差异,这一步骤所花费的时间一般不可忽略,因而必须采取尽量好的算法来减少读取外存的次数。

对于虚拟页式存储,内外存信息的替换是以页面为单位进行的。当需要一个放在外存的页面时,系统便把它调入内存,同时又要把内存中的一个页面调出至外存。当然,这种调动越少,进程执行的效率也就越高。那么,把哪个页面调出去就可以达到调动尽量少的目的?操作系统中提出了很多种页面置换算法,LRU(LeastRecentlyUsed)最近最少使用页面置换算法就是比较接近理想算法的一种解决方案。

1LRU算法的提出

1.1传统的页面置换算法

为了尽量减少与理想算法的差距,现在已经出现了各种精妙的算法,如随机淘汰算法、轮转法(RR)和先进先出算法(FIFO)等,但这几种算法都有着各自的缺点。随机淘汰算法的思想是无法确定哪些页面被访问的概率较低时,随机地选择某个用户的页面并将其换出的一种方法。这种算法的随机性太大,无法达到减少页面调动的目的。轮转法是循回换出内存可用区内一个可以被换出的页,无论该页是刚被换进或已换进内存很长时间。FIFO认为先调入内存的页不再被访问的可能性要比其它页大,因而选择最先调入内存的页并将其换出。但是实验证明,FIFO算法和RR算法的内存利用率都不高,因为这两种算法都是基于CPU按线性顺序访问地址空间这一假设。事实上,CPU不一定是按线性顺序访问地址空间的。FIFO算法的另一个重要的缺点是它会产生Belady现象,即对于一个进程,如果给它分配的页面数增多,缺页次数反而会增加这一奇怪现象。

1.2LRU页面置换算法

LRU算法是基于这样一个事实:在前面几条指令中使用频繁的页面也很可能在后面的几条指令中频繁使用。反过来说,已经很久没有使用过的页面很可能在未来较长的一段时间内也不会被用到。这就是著名的局部性原理。比内存速度还要快的cache,也是基于同样的原理运行的。因此,从程序运行的原理来看,LRU算法是比较接近理想的置换算法。

2LRU算法的实现

矩阵的方法来实现LRU算法的思想是使用矩阵来记录页面使用的频率和时间。设矩阵是nXn维的,n是相关程序当前驻内存的页面数。矩阵的初值为0,每次访问一个页面,例如第i个虚拟页被访问时,可对矩阵进行如下操作:

一是将第i行的值全部置1:二是将第i列的值全部置0。

在每次需要更换页面时,选择矩阵里对应行值最小的页面。行值是指把此行所有的01代码连起来作为二进制的取值。

假如某程序有3个虚拟页面0、1、2,该页面的访问次序是0、1、2、2、1、0、2、1。随着页面的访问,矩阵的状态变换如图1中的(a)~(i)所示。

在经过一系列的页面访问之后,行值最小的是第1行,也就是说,虚页面0是最近最少被访问过的页面。如果此时需要替换某个页面,则第0个虚拟页面将被淘汰。

当一个页面被访问时,该页面所对应的行值将被置1,这样就保证了该页面对应的行值为最大之一,随后将该页面的对应列值置0,以保证该页面对应的行值为唯一最大。每次访问都将某一列置0,长时间没有被访问的页面,所对应的行元素里面被置0的列个数就越多,即它对应的行值就越小。因此,

用矩阵的方法可以实现接近理想算法的页面置换。

使用矩阵实现LRU的页面置换算法

图1矩阵的状态变换

3结语

使用矩阵法相比其它页面淘汰算法有其突出的优点,因为可以使用矩阵的理论来迅速判断哪个矩阵行值最小。即:当需要替换掉某一页时,哪个页面将能被最先淘汰掉。使用矩阵来实现LRU的成本也比其它的算法要低,因为矩阵的行列数并不需要虚拟页面数,而是内存的实际页面数,而实际页面数则要小得多。另外,它的缺点是矩阵太大,总的存储位是页面数的平方。

20210916_614358ce1bf72__使用矩阵实现LRU的页面置换算法

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭