需求
从固定分区到动态分区,从分区方式到分页方式发展提高了主存空间利用率。
而分段存储管理的引入,则满足用户(程序员)编程和使用上的要求,这些要求其它各种存储管理技术难以满足。
需求解析:
- 在分页存储管理中,经连结编辑处理得到了一维地址结构的可装配模块,这是从0开始编址的一个单一连续的逻辑地址空间,虽然操作系统可把程序划分成页面,但页面与源程序无逻辑关系,也就难以实现对源程序以模块为单位进行分配、共享和保护。
- 而程序还存在一种分段结构:
- 一个程序由若干程序段(模块)组成,例如由一个主程序段、若干子程序段、数组段和工作区段所组成
- 每个段都从“0”开始编址,每个段都有模块名,且具有完整的逻辑意义。
- 段与段之间的地址不连续,而段内地址是连续的。用户程序中可用符号形式(指出段名和入口)调用某段的功能,程序在编译或汇编时给每个段再定义一个段号。
- 可见这是一个二维地址结构,分段方式的程序被装入物理地址空间后,仍应保持二维,这样才能满足用户模块化程序设计的需要。
具体分段图如下所示:
基本原理
- 段式存储管理是以段为单位进行存储分配,为此提供如下形式的两维逻辑地址:
段号:段内