存储器管理的对象是主存,也称内存。其主要功能包括分配和回收主存空间、提高主存的利用率、扩充主存、对主存信息实现有效保护。
1、存储器的结构:
存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积。其结构如下:
(1)虚拟地址。从0号单元开始编织,并顺序分配所有的符号名所对应的地址单元,所以它不是主存中的真实地址,故称为相对地址、程序地址、逻辑地址或称虚拟地址。
(2)地址空间。把程序中由符号名组成的空间称为名空间。源程序经过汇编或编译后再经过链接编辑程序加工形成程序的装配模块,即转换为相对地址编织的模块,它是以0为基址顺序进行编址的。相对地址也称为逻辑地址或虚地址,把程序中由相对地址组成的空间也叫逻辑地址空间。相对地址空间通过地址再定位机构转换到绝对地址空间,绝对地址空间也叫物理地址空间。
(3)存储空间。逻辑地址空间是逻辑地址的结合,物理地址空间是物理地址的集合。
2、地址重定位
地址重定位是指将逻辑地址变换成主存物理地址的过程。分为静态地址重定位和动态地址重定位。
(1)静态重定位。静态重定位是指在程序装入主存时已经完成了逻辑地址到物理地址的变换,在程序的执行期间将不会再发生变化。静态地址重定位的优点是无需硬件地址变换机构的支持,它只要求程序本身是可重定位的,只对那些要修改的地址部分具有某种标识,由专门设计的程序来完成。缺点是必须给作业分配一个连续的存储区域,在作业的执行期间不能扩充存储空间,也不能在主存中移动,多个作业也难以共享主存中的同一程序副本和数据。
(2)动态重定位。动态重定位是指在程序运行期间完成逻辑地址到物理地址的变换。优点是程序在执行期间可以换入或换出主存,以解决主存紧张;可以在主存中移动,把主存中的碎片几种起来,以充分利用空间;不必给程序分配连续的主存空间,可以较好的利用较小的主存块;可以实现共享。
3、存储管理方案
(1)分区存储管理
①单一连续分配
②固定分区分配
③可变分区的分配
可变分区的请求和释放分区主要有如下4种算法。
- 最佳适应算法:选择等于或接近作业需求的内存*区进行分配。这种方法可以减少碎片,但同时也可能带来更多小得无法再用的碎片。
- 首次适应算法:从主存低地址开始,寻找第一个可用(即大于等于作业需求的内存)的*区。这种方法可实现快速分配,缩短查找时间。
- 最差适应法:选择整个主存中最大的内存*区。
- 循环首次适应算法:是首次适应法的一个变种,也就是不再是每次都从头开始匹配,而是连续向下匹配。
(2)分页存储管理
分成两部分:其一部分为页号P;后一部分为偏移量W,即页内地址。途中的地址长度为32位,其中0~11位为页内地址(每页的代销为4KB),12~31位为页号,所以允许地址空间的大小最多为1MB个页
页式存储管理的地址映射。
(3)分段存储管理:作业的地址空间被划分成为若干个段,每个段是一组完整的逻辑信息。分段系统的地址结构如图所示,逻辑地址由段号和段内地址两部分组成。在该地址结构中,允许一个作业最多有64KB个段,每个段的最大长度为64KB。