外部碎片的解决方案——非连续分配

Solution to external fragmentation- Non-contigous allocation

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

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

我知道我错过了什么。有人可以详细说明吗?谢谢。

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

Physical memory :Physical memory是指计算机中的RAM或主内存。物理内存是易失性内存。因此,它需要持续不断的电力来保留数据。

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

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