📜  操作系统动态分区

📅  最后修改于: 2020-12-14 09:30:50             🧑  作者: Mango

动态分区

动态分区试图克服由固定分区引起的问题。在这种技术中,最初不声明分区大小。在进程加载时声明。

第一个分区是为操作系统保留的。剩余空间分为多个部分。每个分区的大小将等于进程的大小。分区的大小根据处理的需要而变化,从而可以避免内部碎片。

动态分区优于固定分区的优势

1.无内部碎片

鉴于动态分区中的分区是根据该过程的需要创建的,因此很显然不会有任何内部碎片,因为分区中不会有任何未使用的剩余空间。

2.对过程大小没有限制

在固定分区中,由于缺少足够的连续内存,因此无法执行大小大于最大分区大小的进程。在此,在动态分区中,由于分区大小是根据进程大小确定的,因此无法限制进程大小。

3.多重编程的程度是动态的

由于没有内部碎片,因此分区中不会有任何未使用的空间,因此可以同时在内存中加载更多进程。

动态分区的缺点

外部碎片

没有内部碎片并不意味着不会有外部碎片。

让我们考虑将三个进程P1(1 MB)和P2(3 MB)和P3(1 MB)加载到主存储器的各个分区中。

一段时间后,P1和P3完成,并释放了它们分配的空间。现在,主内存中有两个未使用的分区(1 MB和1 MB)可用,但是由于它们不是连续放置的,因此无法用于在内存中加载2 MB进程。

该规则说该进程必须连续存在于主内存中才能执行。我们需要更改此规则以避免外部碎片。

复杂内存分配

在固定分区中,分区列表仅创建一次,并且永远不会更改,但在动态分区中,分配和取消分配非常复杂,因为每次将分区大小分配给新进程时,分区大小都会变化。操作系统必须跟踪所有分区。

由于在动态内存分配中非常频繁地进行分配和重新分配,并且分区大小每次都会更改,因此OS很难管理所有内容。