对于固定和动态内存分配方案,操作系统必须保留每个内存位置的列表,注意哪些是空闲的,哪些是忙的。然后,当新作业进入系统时,必须分配空闲分区。
这些分区可以通过 4 种方式分配:
1. First-Fit Memory Allocation
2. Best-Fit Memory Allocation
3. Worst-Fit Memory Allocation
4. Next-Fit Memory Allocation
这些是连续内存分配技术。
最差内存分配:
在这种分配技术中,进程遍历整个内存并始终搜索最大的孔/分区,然后将进程放置在该孔/分区中。这是一个缓慢的过程,因为它必须遍历整个内存来搜索最大的洞。
这是一个理解最坏拟合分配的例子——
这里进程P1=30K是用Worst Fit-Allocation技术分配的,所以它遍历整个内存并选择最大的内存大小400K,因此有370K的内部碎片,非常大,因此许多其他进程可以也利用这个剩余的空间。
最差分配的优点:
由于这个过程选择了最大的孔/分区,因此会有很大的内部碎片。现在,这个内部碎片会很大,以便其他小进程也可以放在那个剩余的分区中。
最差分配的缺点:
这是一个缓慢的过程,因为它遍历内存中的所有分区,然后在所有分区中选择最大的分区,这是一个耗时的过程。