Skip to content

Latest commit

 

History

History
17 lines (16 loc) · 1.51 KB

PageChange.md

File metadata and controls

17 lines (16 loc) · 1.51 KB

简述 Linux 虚拟内存的页面置换算法

1.为什么要有页面置换算法

  • 内存空间不足: 程序运行过程中,有时要访问的页面不在内存中,而需要将其调入内存。但是内存已经无空闲空间存储页面,为保证程序正常运行,系统必须从内存中调出一页程序或数据送到磁盘对换区,此时需要一定的算法来决定到底需要调出那个页面。通常将这种算法称为“页面置换算法”。

2.页面置换算法

2.1 最佳置换算法(OPT)

  • 实现原理:每次选择未来长时间不被访问的或者以后永不使用的页面进行淘汰。
  • 缺点:最佳置换算法是一种理想化算法,具有较好的性能,但是实际上无法实现(无法预知一个进程中的若干页面哪一个最长时间不被访问);
  • 优点:最佳置换算法可以保证获得最低的缺页率

2.2 先进先出页面置换算法(FIFO)

  • 实现原理:淘汰最先进入内存的页面,即选择在页面待的时间最长的页面淘汰。
  • 优点:先进先出算法实现简单,是最直观的一个算法
  • 缺点:先进先出的性能最差,因为与通常页面的使用规则不符合,所以实际应用少

2.3 最近最少使用置换算法(LRU)

  • 实现原理:选择最近且最久未被使用的页面进行淘汰
  • 优点:由于考虑程序访问的时间局部性,一般能有较好的性能;实际应用多
  • 缺点:实现需要较多的硬件支持,会增加硬件成本