【问题标题】:Solution to external fragmentation- Non-contigous allocation外部碎片的解决方案-非连续分配
【发布时间】:2023-03-06 17:33:01
【问题描述】:

据我了解,程序在虚拟内存中分配了连续的地址空间。地址空间包含堆、堆栈、数据和文本部分以及一些空闲空间。

但实际上,这些部分在物理内存 (RAM) 中并不连续。如果是这样,那它不能解决外部碎片吗?我的意思是,外部碎片的全部意义在于我们没有足够的连续空间。那么,为什么不拆分段并使用不连续的空间呢?

我知道我错过了一些东西。有人可以详细说明一下吗?谢谢。

【问题讨论】:

    标签: memory-management operating-system contiguous


    【解决方案1】:

    逻辑到物理页面的映射解决了一个碎片问题,但不是全部。操作系统通常具有可能变得碎片化的内存池。此外,操作系统还需要操作物理内存。一个例子是页表本身。页表的某些部分(如果不是全部,取决于底层硬件)必须在物理内存中。

    【讨论】:

    • 您能解释一下映射是如何解决碎片问题的吗?
    • 映射解决了建立线性、逻辑地址空间的问题,因为物理页框可以以任意顺序映射到地址空间。不需要连续的页框来设置逻辑地址空间。
    【解决方案2】:

    物理内存:物理内存是指计算机中的 RAM 或主内存。物理内存是易失性内存。因此,它需要持续的能量流来保留数据。

    虚拟内存:虚拟内存是逻辑内存。换句话说,它是一种由操作系统执行的内存管理技术。虚拟内存允许程序员为程序使用比可用物理内存更多的内存。如果物理内存为 4GB,虚拟内存为 16GB,则程序员可以使用 16GB 的虚拟内存来执行程序。使用虚拟内存,他可以执行比物理内存需要更多内存的复杂程序。

    物理内存和虚拟内存的主要区别在于,物理内存是指连接到主板的系统的实际RAM,但虚拟内存是一种内存管理技术,允许用户执行比实际物理更大的程序记忆。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 2012-04-03
      • 2017-12-09
      • 2011-12-15
      • 2023-04-09
      • 2022-07-22
      • 1970-01-01
      相关资源
      最近更新 更多