文章目录
- 一. 分段存储
- 1) 概念
- 2)段表
- 二. 分段 VS 分页
- 1)对比
- 2)优缺点分析
- 三. 段页式存储
- 1)定义
- 2)逻辑地址结构
一. 分段存储
1) 概念
- 离散,每段从0开始编址,每个段都有段名
- 段占内存中连续空间,段之间可以离散
- 按照逻辑功能模块划分,程序可读性更高
- 逻辑地址结构 = 段号(段名)+ 段内地址(地址偏移量)
- 段号决定程序最大分段数
- 段内地址决定各段最大长度
2)段表
- 类似页表,毕竟段是离散的,需要用段表记录
- 段表项长度相同
- 相对于页表,段表需要记录段长
二. 分段 VS 分页
1)对比
- 页:信息的物理单位,目的是实现离散分配,提高内存利用率。对用户不可见(用户觉得连续)
- 段:信息的逻辑单位,目的是更好地满足用户需求。对用户可见,用户需要给出段名
- 页大小固定,由系统决定。段不固定,由用户决定
- 页:地址空间一维
- 段:地址空间二维(因为段长不固定)
- 分段:更容易实现信息的共享和保护(原因见下图)
- 纯代码(可重入代码):不能被修改,不属于临界资源,可以共享。
- 分段也可引入快表
- 分段也是两次访存。
2)优缺点分析
- 分页:不会产生外部碎片;不方便实现信息的共享和保护
- 分段:方便实现信息的共享和保护;会产生外部碎片(刚好和分页相反)
三. 段页式存储
1)定义
- 先按逻辑分段,再对各段进行分页
2)逻辑地址结构
- 二维,相当于在段式的基础上,对段内地址再进行页号 - 页偏移的区分
- 需要三次访存
- 也可引入快表