页面置换算法

最佳置换算法(OPT)

每次选择淘汰的页面将是以后永不使用或者在最长时间内不再被访问的页面

可以保证最低缺页率,操作系统无法提取预判页面访问序列,因此,最佳置换算法无法实现

先进先出(FIFO)

每次选择淘汰的页面是最早进入内存的页面

当为进程分配的物理块数增大时,缺页次数不增反减的异常现象,算法性能差

最近最久未使用置换算法(LRU)

每次淘汰的页面是最近最近未使用的页面

实现方法:赋予每个页面对应的的页表项中,用访问字段记录该页面自上次被访问以来经历的时间t,选择t值最大的

优点

LRU算法利用了计算机程序的局部性原理,即程序倾向于频繁访问一小部分数据。通过保留最近访问的页面,LRU算法可以提高缓存的命中率。

性能提升:在许多情况下,LRU算法能够显著提高系统的性能,因为它减少了不必要的页面置换和I/O操作。

缺点:

实现复杂性:LRU算法需要记录每个页面的访问时间或访问顺序,这可能需要复杂的数据结构(如哈希表和双向链表)来实现。

时钟置换算法(CLOCK)

Clock算法的简单性使其更适合于硬件实现,因为硬件可以更有效地处理循环队列和指针操作。它牺牲了LRU算法的一些精确性,以换取实现的简便和效率 

改进时钟置换算法(CLOCK)

如果淘汰的页面没有被修改过,就不需要执行I/O操作写回外存,只有被淘汰的页面修改过,才需要写回外存

在其他条件都相同时,应该优先淘汰没有修改过的页面,避免I/O操作

第一优先级:

最近没访问,且没修改过的页面

第二优先级:

最近没访问,但修改过的页面

第三优先级:

最近访问了,但没修改的页面

第四优先级: 

最近访问过,且修改过的页面

相关推荐

  1. 理解和实现 LRU 缓存置换算法

    2024-07-20 21:56:03       33 阅读
  2. footer置于页面最底部

    2024-07-20 21:56:03       49 阅读
  3. Python群论:置换置换

    2024-07-20 21:56:03       56 阅读
  4. shell脚本规范及变量类型、置换

    2024-07-20 21:56:03       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 21:56:03       141 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 21:56:03       156 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 21:56:03       129 阅读
  4. Python语言-面向对象

    2024-07-20 21:56:03       141 阅读

热门阅读

  1. 23年oppo提前批B组笔试真题-小欧的卡牌

    2024-07-20 21:56:03       27 阅读
  2. Django已经登录但是还是提示登录

    2024-07-20 21:56:03       28 阅读
  3. Go语言入门之函数

    2024-07-20 21:56:03       27 阅读
  4. swift小知识点

    2024-07-20 21:56:03       24 阅读
  5. 项目中MyBatis要引入的内容

    2024-07-20 21:56:03       28 阅读
  6. ccf-csp认证--仓库规划

    2024-07-20 21:56:03       28 阅读
  7. Kraken代码阅读(一)

    2024-07-20 21:56:03       23 阅读
  8. Oracle数据库 v$access

    2024-07-20 21:56:03       26 阅读
  9. ZooKeeper 部署

    2024-07-20 21:56:03       26 阅读