面向面经学习之操作系统 第二章 内存管理 (第二节 分段式管理、段页式管理)

一、分段式管理:

面向面经学习之操作系统 第二章 内存管理 (第二节 分段式管理、段页式管理)

        思想举例:把代码和数据分开管理。

 

面向面经学习之操作系统 第二章 内存管理 (第二节 分段式管理、段页式管理)

面向面经学习之操作系统 第二章 内存管理 (第二节 分段式管理、段页式管理)

1、概念

        按照这段内存所使用的内在逻辑来分成若干个大小不等的区间,我们称为段。(代码段、静态数据和全局数据段、堆段、栈段)

面向面经学习之操作系统 第二章 内存管理 (第二节 分段式管理、段页式管理)

        段就相当于分页式管理里的页一样,我们只需要装入必要的段。

        段的好处:逻辑上是一个完整的单元。好处:

  1. 相关的数据一定是整体进,整体出,不会出现分页式管理的“抖动”现象。
  2. 保护:比如代码数据分开,读写权限什么的也就分开了。

        段号和段内的偏移。

做保护的时候:一个段一个策略。

做地址转换的时候:用段号来查一张段表,段表记录了每个段在内存中的起点,得到了起点再得出段的长度,我们判断偏移量没有段的长度,则没有越界,从而允许访问。

也就是说,分段式管理引入了段表的概念。

2、和分页式管理的对比:

面向面经学习之操作系统 第二章 内存管理 (第二节 分段式管理、段页式管理)

  1. 段太大了可能会出现外碎片。
  2. 交换单元上来讲:分页式可能会出现“抖动”,分段式不会。
  3. 分段式便于共享。

二、段页式管理:

        先查段表再查页表。