操作系统的内存管理功能。分区管理与分页技术摘要。
基本存储管理
内存是唯一可与CPU进行用户信息/代码直接访问的存储设备
虚拟地址与物理地址:
地址定位:
- 固定定位:直接指定程序执行时访问的实际存储地址
- 静态重定位:目标代码为以0为起始地址的相对地址,执行时每个逻辑地址加上基地址得到物理地址
- 动态重定位:执行期间访问内存前,实时将逻辑地址变换为物理地址,依赖硬件实现
存储管理方法:
- 单一连续区存储管理:一个作业在运行时独占整个用户区
- 固定分区存储管理:内存划分为多个固定分区
- 可变分区存储管理:
- 各个空闲分区按起始地址由低到高顺次登记在空闲分区表
- 首次适应法:第一次找到大于等于申请大小的空闲区时就按大小分配给作业
- 循环首次适应法:空闲表设计为顺序结构或链接结构的循环队列
- 最佳适应:空闲区从小到大非递减次序排列,在所有大于等于要求分配长度的空闲分区中挑选一个最小分区
- 最差适应:与最佳适应相反
内存扩充:
- 覆盖:大程序按照逻辑结构划分为多个程序段,不同时装入内存的程序段分在一组,可分配到同一个称为覆盖区的存储区域
- 交换:
- 覆盖用于一个作业内部,交换用于多个作业之间
- 将作业的一部分保存到辅存中,以后适当的时间里作业移出的部分可装入原来的存储区继续运行
- 虚拟内存:主存可只装入最近要访问的某些区域的指令和数据,剩余部分暂时不装入,以后访问时再调入内存。来用较小的实际内存满足程序虚拟地址空间的需求
分页与分段管理
均为虚拟内存技术
分页:将作业的虚拟地址空间划分为若干等长度的页,程序装入时,每个页装入主存的一个页架,页架可以不连续
- 静态页式:运行前将所有的页装入页架
- 请求分页:不必将所有虚页都装入主存的页架,只要装入当前运行时需要访问的若干页
- 先入先出淘汰
- 最近最少使用淘汰
- 最近未使用淘汰
- 结合联想存储器和快表的地址变换
分段:按照逻辑结构将程序分为若干段,各段长短不同,每个段分配一个连续的主存分区,设置段表
段页式:作业分段,段分页