操作系统 分段分页
纯分段并不是很受欢迎,也没有在许多操作系统中使用。然而,分段可以与分页结合使用,以充分发挥两种技术的最佳特性。
在分段分页中,主存被划分为可变大小的段,而这些段又被划分为固定大小的页。
- 页比段小。
- 每个段都有一个页表,这意味着每个程序都有多个页表。
- 逻辑地址由段号(基地址)、页号和页偏移表示。
段号 → 指向适当的段号。
页号 → 指向段内的确切页。
页偏移 → 用作页框内的偏移。
每个页表包含关于段的每个页面的各种信息。段表包含关于每个段的信息。每个段表项指向一个页表项,并且每个页表项被映射到段内的一个页面。
逻辑地址到物理地址的转换
CPU生成一个逻辑地址,该地址分为两部分:段号和段内偏移。段内偏移必须小于段限制。偏移进一步分为页号和页内偏移。为了映射页表中的确切页号,页号被添加到页表基址中。
实际的帧号与页内偏移一起映射到主存中,以获取特定进程段内所需的字。
分段分页的优势
- 它减少了内存使用。
- 页表大小受段大小限制。
- 段表只有一个与实际段对应的条目。
- 不存在外部碎片。
- 简化了内存分配。
分段分页的劣势
- 存在内部碎片。
- 复杂性水平比分页高很多。
- 页表需要在内存中连续存储。