视频字幕
内存管理是操作系统的核心功能之一,负责管理计算机的主存储器。它的主要目标包括提高内存利用率、支持多程序并发执行、为程序提供地址空间抽象,以及保证系统的安全性。在物理内存中,不同的内存区域被分配给不同的程序和系统组件,操作系统需要有效地管理这些内存资源。
内存管理系统必须满足四个基本要求。首先是重定位,程序必须能够在内存的不同位置运行,这需要地址转换机制。其次是保护,不同进程之间必须相互隔离,防止非法访问。第三是共享,多个进程可以共享某些内存区域,如共享库。最后是逻辑组织,为程序提供统一的逻辑地址空间,隐藏物理内存的复杂性。
地址空间是内存管理的核心概念。逻辑地址空间是程序运行时使用的地址,通常从零开始,与程序在内存中的实际位置无关。物理地址空间则是内存中的真实地址,硬件可以直接访问。内存管理单元MMU负责将逻辑地址转换为物理地址。地址绑定可以在三个不同时机进行:编译时绑定适用于单道程序,加载时绑定在程序加载时确定地址,运行时绑定则提供最大的灵活性。
内存分配策略主要分为连续分配和非连续分配两大类。连续分配包括固定分区分配和动态分区分配。固定分区将内存划分为固定大小的分区,简单但不够灵活。动态分区按程序需求分配内存,但会产生外部碎片问题。非连续分配包括分页和分段管理。分页将内存划分为固定大小的页面,有效解决了外部碎片问题。分段则按程序的逻辑结构划分内存,更符合程序的组织方式。
虚拟内存是现代操作系统的重要特性,它允许程序使用超过物理内存大小的地址空间。虚拟内存的基本原理是程序只需要部分加载到物理内存中,其余部分存储在磁盘上。当程序访问不在内存中的页面时,会产生缺页中断,操作系统会将所需页面从磁盘调入内存。页表负责维护虚拟地址到物理地址的映射关系。通过页面置换算法,系统可以在有限的物理内存中运行多个大程序,大大提高了内存的利用效率。