段存储
将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配,这种是 段存储管理方式。如下图所示:
分段系统的逻辑地址结构由段号和段内地址(段内偏移量)组成
段号的位数决定了每个进程最多可以分几个段
段内地址位数决定了每个段的最大长度
段表
每个段对应一个段表项,记录了该段在内存中的起始位置(基址)和段长度
各个段表项的长度是相同的。
段号是隐含的,不占用内存
地址转换时要注意:与页存储不同的是,由于页存储中每个页面大小固定,因此不必对页面大小做越界检查,而在段式存储中,段长是不固定的,因此需要对段长进行越界检查。
分段也可以引入快表
分页与分段
- 页是信息的物理单位,主要目的是为了实现离散分配,对用户不可见
- 段是信息的逻辑单位,主要目的是更好的满足用户需求,对用户可见
- 用户进程地址空间:分页为一维,分段为二维,因为既要给出段名,也要给出段内地址
- 分段比分页更容易实现信息的共享和保护