文章

操作系统学习笔记 | 3. 物理内存管理 I 连续内存分配

主要内容

  • 计算机体系结构与内存分层体系

  • 地址空间与地址生成

  • 连续内存分配

计算机体系结构与内存分层体系

硬件结构

计算机的基本硬件结构如下图所示:

主要包括三部分:CPU、内存、外设。 操作系统需要有效地管理 CPU 可访问的物理内存。

内存分层结构

计算机的分层内存结构如下图所示:

特点:

  • 寄存器和Cache:位于CPU内部,速度最快,容量小,不直接受操作系统管理。

  • 主存(物理内存):容量大于寄存器和Cache,但速度较慢,数据在断电时丢失。

  • 硬盘:用于数据持久化,速度最慢但容量最大。

内存的速度和容量形成金字塔式的分层,需要根据应用需求权衡使用。操作系统的主要内存管理目标包括:

  • 抽象:提供逻辑地址空间。

  • 保护:隔离各程序的内存空间。

  • 共享:实现内存共享。

  • 虚拟化:扩展地址空间。

操作系统内存管理方法

  • 程序重定位

  • 分段

  • 分页

  • 虚拟内存

  • 按需分页虚拟内存

操作系统的实现高度依赖硬件条件,例如内存架构和MMU(内存管理单元)。

地址空间与地址生成

地址空间定义

  • 物理地址空间:硬件支持的内存地址范围。

  • 逻辑地址空间:程序运行时可用的内存范围。

二者通过操作系统建立的映射表关联,如下图所示:

操作系统负责管理逻辑地址到物理地址的映射关系,并进行安全检查以避免非法访问。

地址生成与安全

  • 地址生成涉及逻辑地址到物理地址的映射过程。

  • 地址空间安全通过检查防止非法地址访问。

连续内存分配

程序运行需要连续内存空间,涉及的主要问题和解决方法包括:

内存碎片问题

  • 外部碎片:分配单元之间的未使用空间。

  • 内部碎片:分配单元内部的未使用空间。

动态分区分配算法

  1. 第一适配

    • 思路:找到第一个大小大于或等于需求的空闲块。

    • 优点:简单、易于形成大块空闲空间。

    • 缺点:可能产生外部碎片,不确定性较高。

  2. 最佳适配

    • 思路:找到与需求最接近的空闲块。

    • 优点:适合小尺寸分配。

    • 缺点:易产生小碎片,重分配效率低。

  3. 最差适配

    • 思路:选择最大的空闲块进行分配。

    • 优点:适合中等大小分配。

    • 缺点:易碎片化大块空间,重分配效率低。

内存碎片整理

  1. 压缩式碎片整理

    • 方法:重置程序位置以合并空闲空间。

    • 要求:程序必须支持动态重置。

    • 问题:重置时间和开销较大。

  2. 交换式碎片整理

    • 方法:将闲置程序数据从主存移至硬盘。

    • 问题:需要确定替换对象及时机,存在性能开销。

总结

本节内容主要介绍了计算机内存分层结构地址空间的定义与生成,以及连续内存分配中的常见问题和解决方法。

操作系统在内存管理中通过抽象、保护、共享和虚拟化的方式实现高效和安全的资源利用,不同的内存分配算法和碎片整理技术应根据具体应用场景选择,以优化性能和资源使用效率。

License:  CC BY 4.0