内部和外部的碎片

wan*_*eek 72 filesystems disk fragmentation

任何人都可以告诉我内部和外部碎片之间的区别,同时分配文件的磁盘空间?

小智 159

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

外部碎片化

内部碎片
分配给进程的内存块更大.内存的某些部分未使用,因为其他进程无法使用.

内部碎片化


poi*_*ige 27

首先,术语碎片提示有一个实体被分成几个部分 - 碎片.

  • 内部碎片:典型的纸质书籍是页面的集合(文本分为页面).如果一个章节的末尾不在页面末尾,新章节从新页面开始,那么这些章节之间就会有一个空白,这是浪费空间 - 一个块(书页)在内部(内部)有未使用的空间- "白色空间"

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

  • 这是一个令人惊奇的类比。 (2认同)

小智 -19

大概来自这个网站

\n\n
\n

内部碎片 当内存分配器将已分配给客户端的内存块内的多余空间留为空时,就会发生内部碎片。这种情况通常会发生,因为\n 处理器\xe2\x80\x99s 的设计规定,内存必须被分割成\n 特定大小的块,例如\n 可能需要将块除以四、八或十六字节。例如,当发生这种情况时,需要 57 字节内存的客户端可能会被分配一个包含 60 字节甚至 64 字节的块。客户端不需要的额外字节\xe2\x80\x99t\n浪费了,随着时间的推移,这些微小的未使用内存块可能会积累并创建大量内存,而分配器无法使用这些内存。由于所有这些无用字节都位于较大的内存块内,因此碎片被视为内部碎片。

\n\n

外部碎片 当内存分配器在分配的内存部分之间留下未使用的内存块部分时,就会发生外部碎片。例如,如果在连续的行中分配了多个内存块,但该行中的一个中间块被释放(可能是因为使用该内存块的进程停止运行),则空闲块为支离破碎。如果需要适合该块的内存,则分配器稍后仍可使用该块,但该块现在无法用于更大的内存需求。它不能与系统可用的总空闲内存集中在一起,因为总内存必须是连续的才能用于较大的任务。通过这种方式,可用内存的整个部分最终会与整体隔离,而这些部分通常太小而无法大量使用,从而导致可用内存总体减少,随着时间的推移,可能会导致可用内存不足用于关键任务。

\n
\n

  • Maddy,您似乎从另一个网站复制了这段文字,可能是[这个](http://everydaylife.globalpost.com/internal-external-memory-fragmentation-28851.html)。如果您这样做,至少需要添加一个返回该网站的链接,表明您从哪里复制它。我已经在这里为你做到了。不过,这仍然是一个边缘答案 - 将来,**请使用这样的信息作为您自己编写的答案的基础,而不是作为整个答案**。 (20认同)