存储器管理
存储管理的基本任务
存储管理的对象
存储管理的对象是内存储器及其扩展的外存储器。
内存空间被划分成两个部分:操作系统区和用户程序区,
- 操作系统区用以存放操作系统以及系统所需要的各种信息,这个区间用户是不能访问的;
- 用户区间用于多道程序共享,每个用户程序占有一部分空间,所谓存储管理,则是指用户区间的管理,而不包括系统空间,
- 外存储器为虚拟存储器的实现提供物质基础,因此,也是存储管理的工作范围。
存储管理的任务
- 主存空间的分配和回收。在 “主存空间分配表” 中记录主存空间的分配状况,作为主存分配的依据,及时回收作业撤离或主动归还时的主存空间。
- 实现逻辑地址到绝对地址的转换。存储管理把用户程序中使用的逻辑地址转换成CPU执行时能用以访问主存的绝对地址,这种转换必须与硬件配合完成。
- 主存空间的共享和保护。管理多道程序欲访问的主存区,必须保证每道程序都在自己的空间中运行,互不干扰,信息不被破坏。
- 主存空间的扩充。操作系统采用二级存储、覆盖等技术,在逻辑上扩充主存的容量,使用户感到计算机系统提供了容量极大的主存空间,即为用户提供了一个虚拟存储器。
重定位
重定位中的地址名词
- 逻辑地址空间
在多道程序设计中,往往会有多个作业同时存放在内存中,而每个用户预先无法知道他的作业被装在主存的什么位置,为了方便编程,每个用户可以认为自己的程序和数据放在从 0 地址开始的一组连续地址空间中,该地址空间就是逻辑地址空间。 - 逻辑地址
逻辑地址空间中,地址单元的编号称为逻辑地址。 - 绝对地址空间
绝对地址空间就是主存中一系列连续存储信息的物理单元的集合,也称存储地址空间或物理地址空间。 - 绝对地址
对地址空间中物理单元的编号称为绝对地址。
重定位
由于程序中的逻辑地址和实际分配后主存储器的绝对地址不一致,为使处理器能按实际地址正确地访问主存,必须进行地址转换。逻辑地址转换成绝对地址的过程称为重定位, 也称为地址转换。
---------------定位的方式有静态定位和动态定位两种--------------------
- 静态重定位。
所谓静态重定位是在装入一个作业的时候、把作业中的指令地址和 数据地址全部一次性地转换成绝对地址,由于地址转换是在作业执行一次完成的,装入主存中的作业信息已经是用绝对地址指示的,所以作业在执行过程中,无需再进行地址转换,且不能移动位置。 - 动态重定位。
所谓动态重定位是指在装入作业时,不进行地址转换 ,而是直接把作业装入到分配的主存区域中。在作业执行过程中、每当执行一条指令时由硬件的地址转换机构将指令中的逻辑地址转换成绝对地址。
动态重定位是由软件和硬件相配合来实现的。硬件有一个地址转换机构,该机构由一个基址寄存器和一个地址转换线路组成。基地址寄存器中存放作业所占主存的起始地址。所以地址转换公式为:
绝对地址=基地址寄存器的值+逻辑地址
动态重定位的优点
程序可在内存中移动,当程序移动后,只要将新的主存区域的首地址放进基址寄存器中就可以了;
易实现程序共享;
有可能提供虚拟存储空间。
采用动态重定位的系统支持程序浮动,而采用静态重定位的系统不支持程序浮动。
存储管理方式
分区存储管理
分区存储管理是一种简单实用的存储管理方法,其基本思想是把主存空间分成若干个大小不同的连续区域,每个用户作业分配一个区域,用户作业一次整体装入到这个区域中,并限制只能在这个区域中运行。要注意的是区域的连续和作业的整体装入 ,这是分区存储管理不同于其他管理方法的根本特征 。
单一分区的存储管理
单一分区的存储管理只能用于单用户、单任务的操作系统。内存分为系统区和用户区。 系统区仅提供给操作系统使用;用户区指除系统区以外的全部内存空间,提供给用户使用。