操作系统学习笔记 | 3. 物理内存管理 I 连续内存分配
主要内容
计算机体系结构与内存分层体系
地址空间与地址生成
连续内存分配
计算机体系结构与内存分层体系
硬件结构
计算机的基本硬件结构如下图所示:
主要包括三部分:CPU、内存、外设。 操作系统需要有效地管理 CPU 可访问的物理内存。
内存分层结构
计算机的分层内存结构如下图所示:
特点:
寄存器和Cache:位于CPU内部,速度最快,容量小,不直接受操作系统管理。
主存(物理内存):容量大于寄存器和Cache,但速度较慢,数据在断电时丢失。
硬盘:用于数据持久化,速度最慢但容量最大。
内存的速度和容量形成金字塔式的分层,需要根据应用需求权衡使用。操作系统的主要内存管理目标包括:
抽象:提供逻辑地址空间。
保护:隔离各程序的内存空间。
共享:实现内存共享。
虚拟化:扩展地址空间。
操作系统内存管理方法
程序重定位
分段
分页
虚拟内存
按需分页虚拟内存
操作系统的实现高度依赖硬件条件,例如内存架构和MMU(内存管理单元)。
地址空间与地址生成
地址空间定义
物理地址空间:硬件支持的内存地址范围。
逻辑地址空间:程序运行时可用的内存范围。
二者通过操作系统建立的映射表关联,如下图所示:
操作系统负责管理逻辑地址到物理地址的映射关系,并进行安全检查以避免非法访问。
地址生成与安全
地址生成涉及逻辑地址到物理地址的映射过程。
地址空间安全通过检查防止非法地址访问。
连续内存分配
程序运行需要连续内存空间,涉及的主要问题和解决方法包括:
内存碎片问题
外部碎片:分配单元之间的未使用空间。
内部碎片:分配单元内部的未使用空间。
动态分区分配算法
第一适配
思路:找到第一个大小大于或等于需求的空闲块。
优点:简单、易于形成大块空闲空间。
缺点:可能产生外部碎片,不确定性较高。
最佳适配
思路:找到与需求最接近的空闲块。
优点:适合小尺寸分配。
缺点:易产生小碎片,重分配效率低。
最差适配
思路:选择最大的空闲块进行分配。
优点:适合中等大小分配。
缺点:易碎片化大块空间,重分配效率低。
内存碎片整理
压缩式碎片整理
方法:重置程序位置以合并空闲空间。
要求:程序必须支持动态重置。
问题:重置时间和开销较大。
交换式碎片整理
方法:将闲置程序数据从主存移至硬盘。
问题:需要确定替换对象及时机,存在性能开销。
总结
本节内容主要介绍了计算机内存分层结构、地址空间的定义与生成,以及连续内存分配中的常见问题和解决方法。
操作系统在内存管理中通过抽象、保护、共享和虚拟化的方式实现高效和安全的资源利用,不同的内存分配算法和碎片整理技术应根据具体应用场景选择,以优化性能和资源使用效率。