操作系统笔记-3.1.1.4 (选修)覆盖与交换

王道操作系统笔记,视频链接: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. 了解:换出的进程一般放在对换区中
相关推荐
Because_of_Her12 小时前
dfs-洪水填充技巧
笔记·算法·深度优先·洪水填充
xzal122 小时前
GESP Python笔记
笔记·python·算法
周玉奎先生3 小时前
CGM系列水泥基灌浆料型号参数解析及安庆重点工程应用匹配
经验分享·笔记·零售
海海不掉头发3 小时前
软件项目管理学习笔记-从软件危机到敏捷与DevOps
笔记·学习·devops
M78佐菲6 小时前
ARM学习笔记(12)
linux·arm开发·笔记·嵌入式硬件·学习
奇思妙想聪明勤奋的小羊6 小时前
ai-agent-book第五章:Coding Agent 与通用 Agent 学习笔记
人工智能·笔记·学习
优化Henry6 小时前
BBU与RRU光链路详解:从双纤一收一发到单纤双向
网络·笔记·学习·5g·tdd
yi0116 小时前
DAY17: LeetCode 139|单词拆分:从“把单词删掉”到用 DP 记录合法切口
人工智能·笔记·python·算法·leetcode·动态规划
sunoo-2297 小时前
【嵌入式 ARM 学习第十二天】SPI 裸机驱动 + I2C 触摸屏驱动 + 三大串行协议深度对比
arm开发·笔记·vscode·学习·imx6ull
AOI小白新手上路8 小时前
4-1_地址空间_RISC与CISC_学习笔记
笔记·学习