本文概述
- 动态分区优于固定分区的优势
- 动态分区的缺点
第一个分区是为操作系统保留的。剩余空间分为几部分。每个分区的大小将等于进程的大小。分区的大小根据处理的需要而变化, 从而可以避免内部碎片。
文章图片
动态分区优于固定分区的优势 1.无内部碎片
【系统动态分区】鉴于动态分区中的分区是根据线程的需要创建的, 因此很明显不会有任何内部碎片, 因为分区中不会有任何未使用的剩余空间。
2.对线程大小没有限制
在固定分区中, 由于缺少足够的连续内存, 因此无法执行大小大于最大分区大小的进程。在此, 在动态分区中, 由于分区大小是根据进程大小确定的, 因此无法限制进程大小。
3.多重编程的程度是动态的
由于没有内部碎片, 因此分区中不会有任何未使用的空间, 因此可以同时在内存中加载更多进程。
动态分区的缺点 外部碎片
没有内部碎片并不意味着不会有外部碎片。
让我们考虑将三个进程P1(1 MB)和P2(3 MB)和P3(1 MB)加载到主存储器的各个分区中。
一段时间后, P1和P3完成, 并释放了它们分配的空间。现在, 主内存中有两个未使用的分区(1 MB和1 MB)可用, 但是由于它们不连续地位于内存中, 因此无法用于将2 MB进程加载到内存中。
该规则指出, 该进程必须连续存在于主内存中才能执行。我们需要更改此规则以避免外部碎片。
文章图片
复杂内存分配
在固定分区中, 分区列表仅创建一次, 并且永远不会更改, 但在动态分区中, 分配和取消分配非常复杂, 因为分区大小每次分配给新进程时都会变化。操作系统必须跟踪所有分区。
由于在动态内存分配中非常频繁地进行分配和重新分配, 并且分区大小每次都会更改, 因此OS很难管理所有内容。