📜  操作系统中的分段

📅  最后修改于: 2021-09-28 10:19:58             🧑  作者: Mango

一个过程被划分为Segment。程序被划分成的块不一定都是相同大小的块称为段。分段为用户提供了分页不提供的过程视图。这里用户的视图被映射到物理内存。
细分的类型有:

  1. 虚拟内存分段——
    每个进程被分成许多段,并不是所有的段都驻留在任何一个时间点。
  2. 简单细分——
    每个进程被分成许多段,所有段都在运行时加载到内存中,但不一定是连续的。

分段中的逻辑地址和物理地址之间没有简单的关系。一个表存储有关所有这些段的信息,称为段表。

段表——将二维逻辑地址映射为一维物理地址。它的每个表条目都有:

  • 基址: 包含段驻留在内存中的起始物理地址。
  • 限制:它指定段的长度。

二维逻辑地址到一维物理地址的转换。

CPU产生的地址分为:

  • 段数(s):表示段所需的位数。
  • 段偏移量 (d):表示段大小所需的位数。

细分的优势——

  • 没有内部碎片。
  • 与分页中的页表相比,段表消耗的空间更少。

分段的缺点——

  • 随着进程从内存中加载和移除,空闲内存空间被分解成小块,从而导致外部碎片。