【操作系统】第三章:连续式内存分配

**一、计算机体系结构及内存分层体系
1.计算机硬件体系结构
def:大致分为CPU,主存,I/O设备
【操作系统】第三章:连续式内存分配
2.内存分层体系(金字塔结构)
【操作系统】第三章:连续式内存分配
3.OS管理内存时需要完成的目标
① 抽象:逻辑地址空间(一段段程序 按顺序来执行)
② 独立:独立地址空间(每段程序执行时,不受其他程序的影响)
③ 共享:访问相同的内存
④ 虚拟化:更多的地址空间(利用磁盘的空间)
【操作系统】第三章:连续式内存分配

4.完成这些目标采用的方法
●操作系统层面
程序重定位
﹣分段
﹣分页
﹣虚拟内存
﹣按需分页虚拟内存
●硬件层面
﹣必须知道内存架构
﹣MMU(内存管理单元):处理CPU的内存访问请求

二、地址空间&地址生成
1.内存地址的定义
① 物理内存地址:硬件支持的地址空间
② 逻辑内存地址:一个程序运行时所需要的内存范围

2.逻辑地址生成(把代码转化为计算机能理解语言)
一段代码运行→编译→汇编语言→机器语言→产生链接文件→载入到内存当中
【操作系统】第三章:连续式内存分配

3.物理地址生成(逻辑地址需要对应的物理地址作支撑)
● CPU方面
① 运算器在内存地址中操作
② 内存管理单元寻找映射关系(逻辑地址和物理地址的之间)
③ 控制器提出内存需求
● 内存方面
④ 内存发送物理内存地址的内容给CPU
● OS方面
建立逻辑地址和物理地址之间的映射关系(一张映射表)
【操作系统】第三章:连续式内存分配

4.内存安全监测:检查运行的内存是否在对应内存空间范围内
【操作系统】第三章:连续式内存分配

三、连续式内存分配:内存碎片与分区的动态分配
1.内存碎片问题(分区的内存不能被利用)
●外部碎片:在分配单元间未使用的内存(没分配给程序的那块)
●内部碎片:在分配单元中未使用的内存(分配给程序之后,程序不用)

2.分区的动态分配
三种分配方法:第一匹配分配、最优匹配分配、最差匹配分配
● 第一匹配分配(按顺序分配,从一开始就选择合适的空闲块)
【操作系统】第三章:连续式内存分配
● 最优匹配分配(通过比较过后,选择差距最小的空闲块)

【操作系统】第三章:连续式内存分配
● 最差匹配分配(选择最大的空闲块)

【操作系统】第三章:连续式内存分配
四、连续式内存分配:压缩式与交换式碎片化整理****
1.压缩式碎片化整理
def:把连续单元内不连续的空间块压缩在一起
【操作系统】第三章:连续式内存分配
2.交换式碎片化整理
def:当连续单元内占满了空间后,借用磁盘内存继续程序运行

【操作系统】第三章:连续式内存分配