基本分段存储管理方式

/ 0评 / 0

什么是分段(类似分页管理中的“分页”)

就如汇编中的段

进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言(如汇编)中,程序员使用段来编程),每段从0开始编址

内存分配规则:以段为单位进行分配,每个段在内存中占连续的存储空间,但各段之间可以不相邻


什么是段表(类似分页管理中的“页表”)

程序分多个段,各段离散地装入内存,为了保证程序能正常运行,就必须能从物理内存中找到各个逻辑段的存放位置。为此,需为每个进程建立一张段映射表,简称为“段表”。


如何实现地址变换

分段和分页最大的差别:分段的段长是可变的,而分页的页长是固定的,因此,分段需要对逻辑地址中的段内地址进行检查,看是否超过了该段所在段表项中的段长;而分页就不需要检查。

  1. 由逻辑地址得到段号、段内地址
  2. 段号与段表寄存器中的段长度比较,检查是否越界
  3. 由段表始址、段号找到对应段表项
  4. 根据段表中记录的段长,检查段内地址是否越界
  5. 由段表中的”基址+段内地址“得到最终的物理地址
  6. 访问内存中的目标单元

分段、分页管理的对比

发表评论

电子邮件地址不会被公开。 必填项已用*标注