连续存储管理
连续存储管理指的是将主存储器中的用户区作为一个连续区域或多个连续区域进行管理。其主要方式包括单一连续分配、固定分区分配和可变分区分配等。
单一连续存储管理
- 基本概念:单一连续存储管理是一种最简单的存储管理方式。操作系统占用一部分主存空间,剩余部分作为一个连续分区分配给一个作业使用,因此在任何时刻主存储器中最多只有一个作业。
- 优点:该方式不需要考虑作业在主存中的移动问题,通常使用静态重定位方式进行地址转换,确保存储保护。
- 缺点:
- CPU 利用率低:当作业等待时,CPU 处于空闲状态。
- 存储器利用率低:无论作业大小,主存空间都只能给一个作业分配。
- 外围设备利用率低。
固定分区存储管理
- 分配与回收:系统通过“主存分配表”来管理各分区的分配情况,采用顺序分配算法来分配主存空间。当作业完成后,归还所占用的分区。
- 地址转换与存储保护:采用静态重定位装入方式,将作业的逻辑地址与分区的下限地址相加,得到物理地址。物理地址需要在分区的上下限范围内,否则触发“地址越界”中断。
- 主存空间利用率:固定分区管理方式会导致一定的内存浪费(“碎片”),可以通过以下方法提高空间利用率:
- 按作业大小和频率划分分区。
- 分区按大小顺序排列。
- 按作业需求将作业分成多个队列。
可变分区存储管理
- 基本概念:系统通过空闲分区表管理主存空间,作业装入时从空闲分区中分配一个适合大小的空闲分区。
- 分配算法:
- 最先适应分配算法:顺序查找空闲分区表,选择第一个满足作业要求的空闲分区。
- 最优适应分配算法:选择最小的空闲分区进行分配,以保留较大的空闲空间。
- 最坏适应分配算法:选择最大的空闲分区进行分配,以避免留下过小的空闲空间。
- 回收与合并:作业完成后,其所占用的分区被回收,回收时会检查是否有相邻空闲分区,如果有,则合并成一个较大的空闲分区。
- 地址转换与存储保护:采用动态重定位装入方式,通过基址寄存器和限长寄存器来实现地址转换和存储保护。如果逻辑地址超出分区范围,系统会触发“地址越界”中断。
覆盖与交换技术
-
覆盖技术:程序被划分为多个功能模块,只有必要的模块常驻主存,不常用的模块存储在外存中,并根据需要加载到主存。此技术可解决小主存运行大作业的问题,但增加了编程复杂度。
-
交换技术:将暂时不能运行的进程或不使用的程序和数据从主存交换到外存,腾出空间来加载新的进程或程序。交换过程由操作系统管理,对程序员透明。交换常用在进程之间,而覆盖则在同一进程内进行。