《操作系统的存储结构》一文讲过,内存是现代计算机系统执行的中心。内存是一个大的字节数组,大小从数十万到数十亿。每个字节都有地址。内存是个快速访问的数据仓库,并为 CPU 和 I/O 设备所共享。中央处理器在获取指令周期时从内存中读取指令,而在获取数据周期时对内存数据进行读写(在冯•诺依曼架构上)。
内存一般是 CPU 所能直接寻址和访问的、唯一的、大容量的存储器。例如,如果 CPU 需要处理磁盘数据,那么这些数据必须首先通过 CPU 产生的 I/O 调用传到内存。同样,如果 CPU 需要执行指令,那么这些指令必须在内存中。
如果一个程序需要执行,那么它必须映射到绝对地址,并且加载到内存。随着程序执行,进程可以通过产生绝对地址来访问内存的程序指令和数据。最后,程序终止,它的内存空间得以释放,这样下一个程序可以加载并得以执行。
为改进 CPU 的利用率和用户的计算机响应速度,通用计算机应在内存中保留多个程序,这就需要内存管理。内存管理的方案有许多。这些方案会有各种具体方法,所有特定算法的效率取决于特定情景。在选择某个特定系统的内存管理方案时,必须考虑许多因素,尤其是系统的硬件设计。每个算法都要求特定的硬件支持。
操作系统负责内存管理的以下活动: