OS 基础教程

进程管理

同步

死锁

内存管理

文件管理

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/os-page-replacement-algorithms.html

页面替换算法


页面替换算法决定哪个内存页面将被替换。 替换过程有时称为换出或写入磁盘。在主存储器中找不到请求的页面时(页面错误),完成页面替换。

虚拟内存有两个主要方面,即帧分配和页面替换。 拥有最佳的帧分配和页面替换算法是非常重要的。 帧分配全部是关于将多少帧分配给进程,而页面替换则是确定需要替换的页码,以便为请求的页面留出空间。

如果算法不是最优的?

  1. 如果分配给进程的帧数量不够或不准确,则可能会出现抖动问题。 由于缺少帧,大部分页面将驻留在主内存中,因此会出现更多页面错误。但是,如果操作系统将更多的帧分配给进程,则可能会出现内部碎片。

  2. 如果页面替换算法不是最优的,那么也会出现抖动问题。 如果在不久的将来会引用被请求的页面替换的页面数量,那么将会有更多的插入和换出数量,因此操作系统必须执行更多的替换操作,这会导致性能不足。

因此,最佳页面替换算法的任务是选择可限制抖动的页面。

页面替换算法的类型

有各种页面替换算法。 每种算法都有一个不同的方法,用来替换页面。

  1. 最佳页面替换算法- 这种算法取代了将来不会被引用的页面。 虽然它不能实际实行,但可以用作基准。 其他算法在最优性方面与此相比较。

  2. 最近使用过的(LRU)页面替换算法 - 该算法替代长时间未被引用的页面。 该算法与最佳页面替换算法相反。

  3. FIFO - 在这个算法中,维护一个队列。 首先分配帧的页面将首先被替换。 换句话说,在队列稀有端的页面将被替换为每个页面错误。