分段
类似分页的操作,不过是程序员根据程序自身的逻辑关系,类似函数块来划分,每个段都有一个段名,每段都是从0开始编址
操作系统会根据段名翻译成段号
每个段在内存中占用连续的空间
段号保证了最多可以有多少段
段内地址保证了一个段的最大长度是多少
段表
-
对应页表,相比于页表多了一个段长
因为页长是固定的,段长不固定,但各个段表项是固定的
-
段号是隐含的,不占存储空间
逻辑地址转换
段表寄存器:段表始址+段表长度
- 将逻辑地址划分成段号和段内地址
- 将段号和段表长度进行对比是否越界(==也是越界)
- 根据段表始址和段号,查到段表项,然后比对段长和段内偏移量,如果超过就属于异常
- 最后根据段表项的始址和段内偏移量的拼接得到最终的物理地址
分段、分页管理的对比
分页对用户是不可见,透明的,是信息的物理单位
分段是用户自己可见的,用户自己编程的
对于逻辑地址来说,分页是给出一维的地址
分段是二维的地址
分段比分页更容易实现信息的共享和保护
访存次数
2次