memory-management - Segmented paging 和 Paged segmentation 的异同?

标签 memory-management operating-system paging memory-segmentation

我正在研究组合分页/分段系统,在我的书中有两种方法:

1.paged segmentation
2.segmented paging

我无法弄清楚两者之间的区别。我认为在分页分段中,段被分成页面,在分段分页中,页面被分成段,虽然我不知道我是对还是错。同时在互联网上,仅使用一种方案来描述组合的寻呼/分段。我不明白为什么在我的课本中有两种方案。任何帮助将不胜感激。

最佳答案

寻呼的最佳特性

事实上,分页有以下好处:

  • 快速分配(至少比分段快)
  • 无外部碎片(此方法的最后一页存在 内部碎片 )

  • 分割的最佳特征

    但是从分割中也可以看出一个很好的行为:
  • 分享
  • 保护

  • 给定的术语可以组合并创建以下术语:
  • 分段寻呼 :虚拟地址空间被划分为段。物理地址空间被划分为页框。
  • 分页分割 : 主分割技术使用进程段表有时会越界!这意味着大小变得太大并且主内存没有足够的空间来保存段表。因此段表和段号被分成页。

  • 分段寻呼的要求

    需要采取多个步骤来实现分段寻呼:
  • 每个段表条目代表一个页表基地址。
  • STR(段表寄存器)和 PMT(页映射表)填充有所需的值。
  • 每个虚拟地址都包含一个 段号 , 页码 偏移量 在那个页面内。
  • 段号索引到段表中,这给了我们 基地址 页表 对于那个段。
  • 页码索引到页表中。
  • 每个页表条目是一个 页框 .
  • 最终结果是 物理地址 通过添加 找到页框号 偏移量 .

  • 分页分段的要求

    在此方案中执行以下步骤:
  • 每个段条目被分成多个段。
  • 对于代表页面集合的每个段表条目,创建一个页表。
  • 关于memory-management - Segmented paging 和 Paged segmentation 的异同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16643180/

    相关文章:

    java - java缓冲区在物理内存中的位置

    Mysql_Query 中的 PHP 分页

    c - 产生和处理软件中断

    linux - OS - OS 如何将准备好的设备数据映射到各个进程

    c - c中的垃圾收集器用于循环内的变量

    c++ - 如何调试奇怪的内存泄漏 (C++)

    java - Java 中操作系统的名称(不是 "os.name")

    memory-management - 计算页表大小

    c# - 匿名对象的内存范围 - C#.Net

    c - 如何在 Mex 网关功能中为 3 波段或单色图像分配内存?