一个过程分为多个部分。程序所划分的不一定全部相同大小的块称为段。通过分段, 用户可以查看分页不提供的流程。此处, 用户视图已映射到物理内存。
分段类型有:
- 虚拟内存分段–
每个过程都分为多个部分, 并非所有部分都驻留在任何一个时间点上。 - 简单分段–
每个进程分为多个段, 所有段都在运行时加载到内存中, 尽管不一定是连续的。
分段中的逻辑地址和物理地址之间没有简单的关系。一个表存储有关所有此类段的信息, 称为段表。
区隔表–它将二维逻辑地址映射为一维物理地址。每个表格条目都有:
- 基址:It 包含段驻留在内存中的起始物理地址。
- 限制:它指定段的长度。
将二维逻辑地址转换为一维物理地址。
CPU生成的地址分为:
- 段号:表示段所需的位数。
- 段偏移(d):表示段大小所需的位数。
分段的优势–
- 无内部碎片。
- 与分页中的页面表相比, 段表消耗的空间更少。
分段的缺点–
- 在从内存中加载和删除进程时, 可用内存空间会分成小块, 从而导致外部碎片。
本文的贡献者:维卡什·库马尔(Vikash Kumar)。如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。