内存管理学习卡片
🧩
覆盖技术
内存管理技术
产生背景
早期计算机内存极小(如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