【问题标题】:Comparing segmentation, paging, and partitioning - memory management and swapping processes比较分段、分页和分区 - 内存管理和交换进程
【发布时间】:2017-02-20 15:58:44
【问题描述】:

据我了解,当进程从主内存换出然后再换入时,它们可以占用物理内存的不同区域。这种能力是否由所有三个分段、分页和分区内存管理系统共享?如果不是,有什么区别,为什么?

谢谢。

【问题讨论】:

    标签: linux macos unix memory-management operating-system


    【解决方案1】:

    你混合了很多不同的概念。分段是管理内存的过时系统。在过去,当大型系统有 1-2 MB 内存和 16 位寻址时,进程只能访问系统内存的一小部分(64Kb)。段寄存器用于访问更大的地址范围(在不同的时间)。分段可用于支持多个进程,也可用于增加单个进程中的可用内存。虽然进程在任何时候都被限制为 64KB,但使用段寄存器将允许进程拥有超过 64KB 的可用内存(总)。这是 PDP-11 上的常见做法。

    分区和分段在本质上是相同的,并且同样过时。我将 PDP 描述为使用段。其他人将其描述为使用分区。有多个版本的分区。

    英特尔在其处理器中本应消亡很久之后,仍然保持(并保持在 32 位模式)分段。

    交换是实现多处理的过时系统。整个过程被移动到磁盘。在 64KB 进程的时代,这没有将 32 位地址空间移动到磁盘所产生的开销。

    现代系统使用分页来管理内存。在虚拟内存系统中,单个页面被移动到辅助存储;不是整个进程(尽管整个进程可能会被调出内存)。

    【讨论】:

    • 感谢您的回复。我的原始帖子不清楚,但我并不一定意味着我们必须交换整个流程。正如您所说,它优于交换特定页面或段本身。所以你是说分区和分段内存管理系统实际上是一回事?
    • 另外,我的问题特别与这 3 个(2 个?)内存管理系统中发生交换后物理内存存储的顺序有关。例如,如果我们使用分页或分段(已过时)交换部分过程映像,它们以什么顺序交换回来?两个内存管理系统能否将部分进程映像交换回主内存的不同位置(与其原始位置不同)?
    • 在交换整个过程中被写入或读取。您通常不会交换部分流程。分页将部分进程移至辅助存储。
    • 它们的相同之处在于它们将内存保存到磁盘。他们在如何进行储蓄方面是不同的。在 64K 内存的时代,分页没有任何意义,因为只需几个 I/O 操作就可以读取整个进程。
    • 在虚拟(page_内存系统)中,所有进程内存(除了系统空间,其中部分可能是非分页的)都有辅助存储的支持。在大多数系统中,磁盘空间是在分配内存之前分配的. 在分页系统中,它们可以在内存中占据不同的位置。在段/分区系统中,交换后可以回到相同的内存,但物理内存越大,返回相同的可能性就越小地点。
    猜你喜欢
    • 2016-10-20
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    相关资源
    最近更新 更多