段式存储管理
1、地址结构划分
作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息,如有主程序段MAIN,子程序段X,数据段D及栈段S,每个段都有自己的名字,每个段从0开始编址,并采用一段连续的地址空间,段的长度由相应的逻辑信息组的长度决定,因而各段长度不等,整个作业的地址空间由于是分成多个段,因而是二维的,即其逻辑地址由段号和段内地址构成。
说明:一个作业允许最长有64K个段,每个段的最大长度为64KB。
2、段表
为每个段分配一个连续的分区,而各个段可以离散地移入内存不同分区。为每个进程建立一张段表,用于实现从逻辑段到物理内存区的映射。每个段在表中有一个表项,其中记录了该段在内存中的起始地址和段的长度。
3、地址变换
4、页式存储管理与段式存储管理的比较
相同:都采用离散分配方式,都需要通过地址映射机构实现地址变换
不同:
① 页是信息的物理单位,是由于系统管理的需要,段是信息的逻辑单位,为了能更好地满足用户的需要。
② 页的大小固定、由系统决定,由机器硬件实现。段的长度不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
③ 分页的作业的地址空间是一维的,即单一的线性的地址空间。而分段的作业地址空间是二维的,程序员在标识一个地址是,需要给出段名和段内地址。