存储管理 - 页面置换算法详解

文章目录

  • 1 概述
  • 2 存储管理
    • 2.1 页式存储
    • 2.2 页面置换算法
      • 2.2.1 先进先出 FIFO
      • 2.2.2 最佳置换法 OPT
      • 2.2.3 最近最少使用 LRU

1 概述

2 存储管理

2.1 页式存储

  • 页式存储:将 程序内存 划分为 同样大小的块,以 为单位将程序调入内存。
  • 地址区分:程序中为高级程序语言,使用逻辑地址;内存中使用物理地址。
    • 逻辑地址 = 页号 + 页内地址
    • 物理地址 = 页帧号(物理块号) + 页内地址
  • 优缺点
    • 优点:利用率高,碎片小,分配及管理简单
    • 缺点:增加了系统开销(多了 页表),可能产生抖动现象
  • 图示:其中 页表 为逻辑地址 与 物理地址 之间的对照关系
    存储管理 - 页面置换算法详解_第1张图片
  • 例如:页式存储系统中,每个页大小为 4KB,逻辑地址为 10 1100 1101 1110,则对应的物理地址为 110 1100 1101 1110
    • 每个页的大小为 4KB,默认按字节编址(B)那么页内地址长度 = 4 * 1024 B = 2 2 ∗ 2 10 2^2 * 2^{10} 22210 B = 2 12 2^{12} 212 B,也就是 12 个 2进制位
    • 已知逻辑地址:10 1100 1101 1110 (页内地址长度为12,可知后12位为页内地址, ( 10 ) 2 (10)_2 (10)2 为页号,即页号为 2)
    • 可知物理地址为:根据页号去找块号,如上图,页号2 对应 块号6,6的二进制为110,则物理地址:110 1100 1101 1110

2.2 页面置换算法

2.2.1 先进先出 FIFO

  • FIFO:First In First Out(先进先出)

  • 原理:最先进入内存的页面,最先退出内存(向前看)

  • 效率:FIFO 算法只是在按线性顺序访问地址空间时,才是最理想的,否则效率不高。因为那些常被访问的页,往往在内存中也停留得最久,结果它们因变 “老” 而不得不被置换出去。

  • 举例:考虑下述页面走向:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。当内存块数量为 3 时,问先进先出置换算法(FIFO)的缺页次数是多少?(所有内存块最初都是空的,凡是第一次用到的页面都产生一次缺页)

    存储管理 - 页面置换算法详解_第2张图片

    • 缺页:在块中找不到对应的页面(写入块中,缺页为 ×);反之,可以找到(块内容保持不变,缺页为 √)
    • 红色字体:置换的部分(下同);蓝色背景:该页面可以在块中的位置

2.2.2 最佳置换法 OPT

  • OPT:optimum(最佳的)
  • 原理:置换最长时间不需要访问的页面(向后看)
  • 理论:这是一种理想情况下的页面置换算法,但实际上不可能实现。因为无法预测之后出现的是哪个页面。
    存储管理 - 页面置换算法详解_第3张图片

2.2.3 最近最少使用 LRU

  • LRU:Least Recently Used(最近最少使用)
  • 原理:置换最近最少使用的页面(向前看)

存储管理 - 页面置换算法详解_第4张图片

你可能感兴趣的:(网络工程,页式存储,页面置换算法)