在上篇文章基本分页存储管理方式中介绍了非连续分配管理方式的基本分页存储管理方式。
接下来,本文将介绍非连续分配管理的第二种方式——基本分段式存储管理方式
分页实现离散分配,提高内存利用率。分页是系统管理完成的,对用户是不可见的。分段存储管理方式考虑了用户,以满足方便编程、信息共享、信息保护、动态增长及动态链接等多方面的需求。
在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息,例如:主程序段MAIN,子程序段X,数据段D和栈段S等等。每个段都有自己段名,为了实现简单,通常可用段号来代替段名,每个段都从0开始,并采用一段连续的地址空间。
段的长度由相应的逻辑信息组的长度决定,各段的长度不相等。
分段地址中的地址结构: 分段系统的逻辑地址结构由段号(段名)和段内地址组成。
段号的位数决定了每个作业最多可以分几个段
就上述地址结构允许作业最多有216=64K个段。
段内地址位数决定了每个段的最大长度是多少
每个段的最大长度216=64KB
为每个进程建立一张逻辑地址和内存空间映射的映射表,称为段表。
每个段对应一个段表项,其中记录了该段在内存中的起始位置(又称“基址”)和段的长度
各个段表项的长度是相同的。段号可以是隐含的,不占存储空间
1、根据逻辑地址得到段号、段内地址
2、判断段号是否越界。若S>M,则产生越界中断,否则继续执行
3、查询段表,找到对应的段表项,段表项的存放地址为F+S*段表项长度
4、检查段内地址是否超过段长。若W≥C,则产生越界中断,否则继续执行
5、计算得到物理地址
6、访问目标内存单元
1、页是信息的物理单位,对用户是不可见的;段是信息的逻辑单位,对用户是可见的。 2、分页的用户进程地址空间是一维的;分段的用户进程地址空间是二维的。 3、页的大小固定不变,由系统决定。段的大小是不固定的,它由其完成的功能决定。 4、分段比分页更容易实现信息的共享和保护。