谁能告诉我在为文件分配磁盘空间时内部和外部碎片之间的区别?
4 回答
外部碎片
总内存空间足以满足请求或在其中驻留进程,但它不是连续的,因此无法使用。
内部碎片
分配给进程的内存块更大。内存的某些部分未被使用,因为它不能被另一个进程使用。
首先,碎片化这个词暗示了一个实体被分成几部分——碎片。
内部碎片化:典型的纸质书是页面的集合(文本分为页面)。当一章的结尾不在页面的末尾,而新的章节从新的页面开始时,这些章节之间会有间隙,这是浪费空间——一个块(一本书的页面)内部(内部)有未使用的空间—— “空白”
外部碎片化:假设您有一本纸质日记,并且您没有逐页顺序地写下您的想法,而是随机地写下您的想法。你可能会遇到这样的情况,你想连续写 3 页,但你不能,因为没有 3 个一页一页的干净页面,你可能在日记中总共有 15 个干净的页面,但是它们不连续
我是一个只在 10mb 分区中分配内存的操作系统。
内部碎片
- 你要求 17mb 的内存
- 我给你20mb的内存
满足这个请求刚刚导致 3mb 的内部碎片。
外部碎片
- 你要求 20mb 的内存
- 我给你20mb的内存
- 我给你的 20mb 内存并不是紧挨着另一块现有的已分配内存。在把这段记忆交给你的时候,我已经将一个未分配的空间“分割”成两个空间。
满足这个请求只是导致了外部碎片
大概来自这个网站:
内部碎片 当内存分配器在已为客户端分配的内存块中留出额外空间时,就会发生内部碎片。这通常是因为处理器的设计规定内存必须被切割成一定大小的块——例如,块可能需要被平均划分为 4、8 或 16 个字节。发生这种情况时,例如,需要 57 字节内存的客户端可能会被分配一个包含 60 字节甚至 64 字节的块。客户端不需要的额外字节会浪费掉,随着时间的推移这些小块未使用的内存可以建立并创建大量内存,分配器无法使用。因为所有这些无用的字节都在较大的内存块内,所以碎片被认为是内部的。
外部碎片 当内存分配器在分配的内存部分之间留下未使用的内存块部分时,就会发生外部碎片。例如,如果在一条连续的行中分配了几个内存块,但该行中的中间块之一被释放(可能是因为使用该内存块的进程停止运行),则该空闲块被分段。如果需要适合该块的内存,则该块仍可供分配器稍后使用,但该块现在无法用于更大的内存需求。它不能与系统可用的总可用内存混为一谈,因为总内存必须是连续的,才能用于更大的任务。这样,