1.2.2 存储管理
存储器是计算机系统中除了处理器以外的另一种重要资源,主存储器(也称为内存)是处理器和外部设备共享和快速访问程序和数据的部件,程序只有加载到主存储器后,才有可能获得执行。存储管理的主要任务是为多道程序提供良好的环境,方便用户使用存储器,并提高存储器的利用率以及从逻辑上扩充内存。现代操作系统中,存储器管理应具有内存分配和回收、内存保护、地址映射、主存共享和内存扩充等功能。
1. 内存分配和回收
内存分配和回收的主要任务是为每道程序分配内存空间,回收程序运行结束后释放的空间,提高存储器的利用率。内存分配的策略有静态和动态两种:静态分配方式中,每个作业的内存空间是在作业装入时确定的,在整个运行过程中不再接受新的请求,也不允许作业在内存中重新定位;动态分配方式中,每个作业所要求的基本内存空间也是在装入时确定的,但允许作业在运行过程中继续申请新的空间,也允许作业在内存中重新定位。系统对于用户不再需要的内存,通过用户的释放请求去完成系统的回收功能。
2. 内存保护
内存保护的主要任务是确保每道程序都只在自己的内存空间中运行,彼此互不干扰,既不允许用户程序访问系统程序和数据,也不允许用户程序转移到非共享的其他程序中运行。操作系统通过设置界限寄存器和越界检查机制保证执行程序的上界和下界。
3. 地址映射
在多道程序环境下,每道程序不可能都从“0”地址开始装入内存,这就导致地址空间内的逻辑地址和内存空间中的物理地址不一致。地址映射的任务是把用逻辑地址编程的应用程序装入主存,并将逻辑地址转换成主存物理地址,此功能应在硬件的支持下完成。
4. 内存共享
内存共享让主存中的多个应用程序实现存储共享,提高存储资源的利用率。多个应用程序共同访问同一段代码或者数据,可以通过内存共享技术将相关内存地址空间加载到应用程序的地址空间,而不必重复加载。
5. 内存扩充
内存扩充的任务不是扩大物理内存的容量,而是借助虚拟存储技术从逻辑上去扩充内存容量,使用户感觉到内存容量比实际物理内存大得多。虚拟存储技术的基本思想来自程序运行的局部性特点,在辅助存储器的配合下,采取部分装入,用时调入,不用时置换到辅助存储器的机制。