📜  操作系统页面替换算法

📅  最后修改于: 2020-12-15 03:47:43             🧑  作者: Mango

页面替换算法

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

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

如果算法不是最佳的怎么办?

1.如果分配给进程的帧数不足或不准确,则可能会出现抖动问题。由于缺少帧,大多数页面将驻留在主存储器中,因此将发生更多页面错误。

但是,如果OS为进程分配更多帧,则可能会有内部碎片。

2.如果页面替换算法不是最佳算法,那么还将出现抖动问题。如果将在不久的将来引用被请求的页面替换的页面数量,则将有更多的换入和换出数量,因此OS必须执行比通常更多的替换,这会导致性能下降。

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

页面替换算法的类型

有多种页面替换算法。每种算法都有不同的方法来替换页面。

  • 最佳页面替换算法→此算法替换了不久以后将不会被引用的页面。尽管它实际上无法实现,但是可以用作基准。就最佳性而言,将其他算法与此进行比较。
  • 最近使用过的(LRU)页面替换算法→此算法替换了很长时间没有被引用的页面。该算法与最佳页面替换算法相反。在此,我们着眼于过去而不是盯着未来。
  • FIFO→在此算法中,维护队列。首先被分配框架的页面将首先被替换。换句话说,在每个页面错误上都将替换位于队列稀有端的页面。