王道操作系统笔记,视频链接:3.1.1.4 (选修)覆盖与交换

知识总览

  1. 内存管理的概念:
    • 内存空间的分配与回收
    • 内存空间的扩充
      • 覆盖技术(该小节内容)
      • 交换技术(该小节内容)
      • 虚拟存储技术
    • 地址转换
    • 存储保护

覆盖技术

  1. 早期的计算机内存很小,因此经常会出现内存大小不够的情况。

    • 比如 IBM 推出的第一台PC机最大只支持 1MB 大小的内存。
  2. 后来人们引入了覆盖技术,用来解决“程序大小超过物理内存总和”的问题

    • 覆盖技术的思想:将程序分为多个段(多个模块)。常用的段常驻内存,不常用的段在需要时调入内存。
    • 内存中分为一个“固定区”若干个“覆盖区”
    • 需要常驻内存的段放在“固定区”中,调入后就不再调出(除非运行结束)
    • 不常用的段放在“覆盖区”,需要用到时调入内存用不到时调出内存
    • 例子:
      • 调用的结构如图所示,假设同一层的内容无法同时调用。
      • 按照自身逻辑结构,让那些不可能同时被访问的程序段共享同一个覆盖区
      • 图:
        覆盖技术例子
  3. 缺点:

    • 必须由程序员声明覆盖结构,操作系统完成自动覆盖。缺点:对用户不透明,增加了用户编程负担。
    • 覆盖技术只用于早期的操作系统中,现在已成为历史。

交换技术

  1. 交换技术(也称对换技术)的设计思想:内存空间紧张时,系统将内存中某些进程暂时换出外存,把外存中某些已具备运行条件的进程换入内存(进程在内存与磁盘间动态调度)

    • 复习第二章处理机调度:分为高级调度,中级调度,低级调度。
      • 高级调度负责作业从外存到内存的准入,
      • 中级调度负责进程在内存与外存间的动态交换以平衡负载,
      • 低级调度则负责从内存就绪队列中选取进程分配CPU执行。
    • 其中,中级调度就是为了实现交换技术而使用的一种调度策略。
      • 当内存空间紧张,可以把某些进程从内存换出到外存,并将其插入到挂起队列,
        • 实际上是将指向该进程PCB的指针(或索引)插入队列,
        • PCB常驻在内存中
          • 因为进程被换出外存后,需要记录下来放在外存的位置,
          • 这个信息将会被记录在相关的PCB中,所以PCB常驻内存
      • 内存空间不紧张后,再把这些进程相关数据换入内存
      • 中级调度(内存调度),就是要决定将哪个处于挂起状态的进程重新调入内存。
  2. 复习:进程的七状态模型:

    • 暂时换出外存等待的进程状态为挂起状态(挂起态,suspend)
    • 挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态
    • 交换技术也在逻辑上扩充了内存空间
    • 图:
      进程七状态模型
  3. 问题:

    • 应该在外存(磁盘)的什么位置保存被换出的进程?
    • 什么时候应该交换?
    • 应该换出哪些进程?
  4. 第一个问题解答:

    • 具有对换功能的操作系统中,通常把磁盘空间分为文件区对换区两部分。
    • 文件区主要用于存放文件,主要追求存储空间的利用率
    • 因此对文件区空间的管理采用离散分配方式
    • 对换区空间只占磁盘空间的小部分,被换出的进程数据就存放在对换区
    • 由于对换的速度直接影响到系统的整体速度,
    • 因此对换区空间的管理主要追求换入换出速度
    • 因此通常对换区采用连续分配方式
      • 后续学过文件管理章节后即可理解
    • 总之,对换区的I/O速度比文件区的更快
    • 图:
      对换区与文件区
  5. 第二个问题解答:

    • 交换通常在许多进程运行且内存吃紧时进行,而系统负荷降低就暂停。
    • 例如:
      • 在发现许多进程运行时经常发生缺页,就说明内存紧张,此时可以换出一些进程;
      • 如果缺页率明显下降,就可以暂停换出。
        • 后续章节会对缺页、缺页率进行更详细的讲解,此处不展开
  6. 第三个问题解答:(提供思路,答案不唯一)

    • 可优先换出阻塞进程;
    • 可换出优先级低的进程;
    • 为了防止优先级低的进程在被调入内存后很快又被换出,
      • 有的系统还会考虑进程在内存的驻留时间。
  7. 注意:PCB会常驻内存,不会被换出外存

知识回顾与重要考点

知识回顾与重要考点

  1. 覆盖技术与交换技术一般只会在选择题当中进行考察,理解即可
  2. 需要详细记忆的部分是固定区与覆盖区的内容,即图中红框部分
  3. 覆盖技术的缺点可能作为选择题选项考察
  4. 了解:换出的进程一般放在对换区中
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐