内存管理学习卡片

🧩

覆盖技术

内存管理技术

产生背景
早期计算机内存极小(如IBM第一台PC仅1MB),现代程序需求大(如QQ/微信通常>100MB)
基本思想
  • 分段管理:将程序划分为多个模块(段)
  • 固定区:存放常用段(如main函数模块),调入后不再调出
  • 覆盖区:存放不常用段,按需调入调出,多个模块可共享同一覆盖区
📊

覆盖技术应用

内存节省实例

程序X调用结构
A→B/D 或 A→C→E/F(非同时调用)
内存分配方案
  • 固定区:A模块(8KB)
  • 覆盖区1:B/C模块共享(10KB,取最大值)
  • 覆盖区2:D/E/F模块共享(12KB,取最大值)
内存节省效果
  • 原始需求:52KB
  • 使用覆盖技术后:30KB
🔍

覆盖技术特性

重要特点

  • 逻辑扩展:通过覆盖区共享实现内存空间的逻辑扩充
  • 编程负担:必须由程序员显式声明覆盖结构
  • 现代地位:已退出历史舞台,仅用于早期操作系统
考试重点
固定区与覆盖区的区别:固定区程序段不调出,覆盖区动态调入调出
需程序员显式声明调用结构
🔄

交换技术

内存管理技术

核心思想
内存紧张时,将进程在内存与磁盘间动态调度
  • 换出:内存→外存(保留PCB)
  • 换入:外存→内存(具备运行条件)
挂起态
  • 就绪挂起:就绪态进程被换出
  • 阻塞挂起:阻塞态进程被换出
  • PCB特性:必须常驻内存,记录进程在外存的存储位置
⚙️

交换技术实现

关键问题

磁盘存储空间管理
  • 文件区:离散分配,追求存储利用率(存放普通文件)
  • 对换区:连续分配,追求I/O速度(存放换出进程)
  • 性能比较:对换区I/O速度显著快于文件区
交换时机
  • 触发条件:内存吃紧(如频繁缺页)、多进程高负荷运行
  • 暂停条件:系统负荷降低(如缺页率下降)
换出进程选择策略
  • 优先阻塞进程(无法立即运行)
  • 低优先级进程
  • 考虑驻留时间(防止低优先级进程饥饿)
  • 特殊保护:PCB永远驻留内存
🆚

覆盖 vs 交换

核心区别

调度单位
覆盖:同一进程内的模块
交换:不同进程整体
实现方式
覆盖:程序员显式声明
交换:操作系统自动完成
管理方式
覆盖:固定区+覆盖区
交换:进程换入换出
现代应用
覆盖:已淘汰
交换:仍在改进使用

易混淆点:覆盖技术需程序员参与,交换由操作系统自动完成

1/6