一个过程分为多个部分。程序所划分的不一定全部相同大小的块称为段。通过分段, 用户可以查看分页不提供的流程。此处, 用户视图已映射到物理内存。
分段类型有:
- 虚拟内存分段–
每个过程都分为多个部分, 并非所有部分都驻留在任何一个时间点上。 - 简单分段–
每个进程分为多个段, 所有段都在运行时加载到内存中, 尽管不一定是连续的。
区隔表–它将二维逻辑地址映射为一维物理地址。每个表格条目都有:
- 基址:It 包含段驻留在内存中的起始物理地址。
- 限制:它指定段的长度。
文章图片
将二维逻辑地址转换为一维物理地址。
文章图片
CPU生成的地址分为:
- 段号:表示段所需的位数。
- 段偏移(d):表示段大小所需的位数。
- 无内部碎片。
- 与分页中的页面表相比, 段表消耗的空间更少。
- 在从内存中加载和删除进程时, 可用内存空间会分成小块, 从而导致外部碎片。
推荐阅读
- PHP如何使用date_modify()函数(代码示例)
- Scala如何使用ListBuffer(详细代码解释)
- HTML如何使用id属性((唯一标识符))
- 算法设计(二叉搜索树如何实现删除操作())
- Scala如何使用正则表达式(代码实例)
- PHP如何使用array_diff_key()函数(代码示例)
- SASS如何使用布尔值和布尔运算符(详细示例)
- 如何实现用Python打开文件(详细代码)
- PHP 如何使用Ds Sequence get()函数(代码实例)