Filesystems 内部和外部碎片化

Filesystems 内部和外部碎片化,filesystems,disk,fragmentation,Filesystems,Disk,Fragmentation,在为文件分配磁盘空间时,有人能告诉我内部碎片和外部碎片的区别吗?大概来自: 内部碎片内部碎片发生在内存 分配器在内存块中留下多余的空间 已为客户端分配。这通常是因为 处理器的设计规定内存必须被分割成块 某些尺寸——例如,可能要求块均匀分布 除以4、8或16字节。发生这种情况时,客户端 例如,需要57字节的内存,可以分配一个 包含60个字节,甚至64个字节。客户端不需要的额外字节 需要去浪费,随着时间的推移,这些小块未使用的内存可以 建立并创建大量无法存储的内存 由分配器使用。因为所有这些无用的字

在为文件分配磁盘空间时,有人能告诉我内部碎片和外部碎片的区别吗?

大概来自:

内部碎片内部碎片发生在内存 分配器在内存块中留下多余的空间 已为客户端分配。这通常是因为 处理器的设计规定内存必须被分割成块 某些尺寸——例如,可能要求块均匀分布 除以4、8或16字节。发生这种情况时,客户端 例如,需要57字节的内存,可以分配一个 包含60个字节,甚至64个字节。客户端不需要的额外字节 需要去浪费,随着时间的推移,这些小块未使用的内存可以 建立并创建大量无法存储的内存 由分配器使用。因为所有这些无用的字节都在里面 内存块越大,碎片被认为是内部的

外部碎片外部碎片发生在 内存分配器将未使用内存块的部分保留在 已分配内存的一部分。例如,如果有几个内存块 在连续行中分配,但在 行被释放(可能是因为使用该块的进程 在内存停止运行的情况下),空闲块被碎片化。这个街区是 如果以后需要,分配器仍然可以使用 适合该块的内存,但该块现在无法用于 需要更大的内存。它不能和总的自由度归并在一起 系统可用的内存,因为总内存必须是连续的 它可以用于更大的任务。这样,整个 空闲内存最终可能与通常过于复杂的整体隔离 小到可以显著使用,这会导致自由空间的整体减少 随着时间的推移,可能导致钥匙的可用内存不足 任务


外部碎片化
总内存空间足以满足请求或驻留其中的进程,但它不是连续的,因此无法使用

内部碎片化
分配给进程的内存块更大。内存的某些部分未被使用,因为它不能被另一个进程使用

首先,术语碎片提示有一个实体被划分为多个部分-碎片

  • 内部碎片:典型的纸质书是一个页面集合(文本分为多个页面)。当一个章节的结尾不在页面的末尾,而新的章节从新的页面开始时,这些章节之间会有一个间隙,这是对空间的浪费-一块(一本书的页面)内部(内部)有未使用的空间-“空白”


  • 外部碎片:假设你有一本纸质日记,你没有一页一页地按顺序写下你的想法,而是随机写下的。你可能会遇到这样一种情况:你想一行写3页,但你不能,因为没有3页干净的一页接一页,你可能在日记中总共有15页干净的,但它们不是连续的


我是一个只在10mb分区中分配内存的操作系统

内部碎片化

  • 你需要17mb的内存
  • 我给你20mb的内存
满足此请求刚刚导致3mb的内部碎片

外部碎片化

  • 你需要20mb的内存
  • 我给你20mb的内存
  • 我提供给您的20mb内存与另一个已分配内存块相邻,而不是紧靠在一起。在给你们这些记忆的过程中,我把一个未分配的空间“分割”成了两个空间

满足这一要求只会导致外部碎片化

@binary担忧者:对不起..我是Stackoverflow的新手..但我得到了我的问题的答案,无论它们是否与编程相关。完全与编程相关-任何操作系统课程都会在文件系统中涵盖这一点。Maddy,您可能是从另一个站点复制了此文本。如果您这样做,至少需要添加一个指向站点的链接,指明您从何处复制它。我在这里为你做的。这仍然是一个边缘答案,虽然-在未来,请使用像这样的信息作为你自己写的答案的基础,而不是作为整个答案。这是一个惊人的类比。难以置信的类比!也许永远不会忘记这个概念,多亏了这个。有史以来最好的例子