文档介绍:第4章存储管理
存储管理的功能
常用操作系统内存管理实例
分区管理
页式管理
段式与段页式管理
虚拟存储器
Linux 的内存管理
综合应用
存储管理的功能
存储管理的目的是既要方便用户,又要提高主存的利用率。存储管理具有四个方面的功能:存储空间的分配与管理,存储容量,地址变换及存储保护。
存储空间的分配与管理
存储管理的首要功能是实现主存空间的分配与回收。当用户提出主存空间的要求时,应能快速响应,并为其分配响应的主存空间;用户使用完毕后,应立即回收其存储空间,以供其他用户使用。为此,存储空间的分配与管理应具有以下功能:
(1) 建立内存分配记录表,随时记录主存空间的状态信息,即哪些区域已分配,哪些区域未分配。
(2) 实施主存的分配。当有作业提出主存空间的要求时,应按照一定的原则,按需给予分配,同时修改内存分配记录表。
(3) 内存的回收。当用户使用完主存空间后,释放其所占的内存空间,由操作系统的主存管理程序负责回收资源,并修改相应的内存分配记录表。
存储容量
当用户申请的主存容量超过实际主存的容量时,系统可采用虚拟存储技术或自动覆盖和交换技术,来达到在逻辑上对主存量容的扩充,即为用户提供比物理内存空间大得多的地址空间,实现在有限的内存容量下,执行比内存容量大的程序。
地址变换
用户程序在装入主存空间前使用的是逻辑地址(即作业从0开始编址),装入主存空间后使用的是物理地址。要保证其正确执行,应有相应的硬件机构配合进行逻辑地址到物理地址的转换,即地址重定位(完成用户程序装入主存空间而引起的逻辑地址到物理地址的转换过程,也称地址映射)。地址重定位的方式有两种:静态重定位和动态重定位。
1. 静态重定位
静态重定位是在用户程序装入过程中,由重定位装入程序一次完成作业的地址转换过程。这种方式简单、易实现,无需硬件支持,仅要求程序本身是可重定位的,早期的多道程序系统常采用这种方案。其缺点是:每个用户程序必须分配连续的存储空间;程序一经定位就不能再在内存空间移动;主存资源的利用率不高,且难以实现主存资源的共享。。
用户程序装入主存空间(静态重定位)
2. 动态重定位
动态重定位是在程序执行过程中进行地址重定位。准确地讲,是在CPU每次访问内存前,由地址映射机构完成逻辑地址到物理地址的转换过程。为此,硬件的地址映射机构提供了重定位寄存器,它用来存放用户作业装入主存空间时的起始地址。用户作业执行时,访问主存空间的地址是由指令或数据的有效地址加上重定位寄存器的内容来决定的。
动态重定位是在程序执行过程中,每次访问内存前进行的。采用动态重定位的优点在于:
(1) 用户作业装入主存空间时无需任何修改,装入后再移动也不影响其正确执行。
(2) 同一进程的不同程序段可装入到互不连续的内存空间,只要各程序段有自己对应的重定位寄存器。该优点有利于实现内存资源的充分利用和共享。
动态重定位的主要缺点是:需要附加的硬件支持,系统开销大;实现存储管理的软件较复杂。。