在为文件分配磁盘空间时,有人可以告诉我内部碎片和外部碎片之间的区别吗?
答案 0 :(得分:147)
外部碎片
总内存空间足以满足请求或驻留进程,但它不是连续的,因此无法使用。
内部碎片
分配给进程的内存块更大。部分内存未被使用,因为它不能被其他进程使用。
答案 1 :(得分:22)
首先,术语碎片化暗示了一个实体被分成了几个部分 - 片段。
内部碎片:典型的纸质书籍是一组页面(文本分为页面)。如果一个章节的末尾没有位于页面末尾,而新章节从新页面开始,则这些章节之间存在差距,而且浪费空间 - 一个块(页面)对于一本书)有未使用的空间在(内部) - "空格"
外部碎片:说你有纸质日记而且你没有按页顺序写下你的想法,而是相当随意。当你想要连续写3页时,你可能会遇到这样的情况,但是你不可能因为没有3个干净的页面一个接一个,你可能有15个干净的页面完全在日记中,但他们并不连续
答案 2 :(得分:1)
我是一个仅在10mb分区中分配内存的操作系统。
内部碎片
满足此请求只会导致3mb的内部碎片。
外部碎片
满足此请求只会导致外部碎片化
答案 3 :(得分:-15)
大概来自this site:
内部碎片当内存碎片发生时 allocator在一块内存中留出额外的空间 已分配给客户。这通常是因为 处理器的设计规定必须将内存切割成块 某些尺寸 - 例如,可能要求块均匀 除以四个,八个或16个字节。当发生这种情况时,一个客户端 需要57个字节的内存,例如,可以分配一个块 包含60个字节,甚至64个。客户端没有的额外字节 需要浪费,随着时间的推移,这些微小的未使用内存可以 积累并创建大量无法存储的内存 由分配器使用。因为所有这些无用的字节都在里面 更大的内存块,碎片被认为是内部的。
外部碎片当外部碎片发生时 内存分配器在两者之间留下未使用的内存块 分配内存的部分。例如,如果有几个内存块 被分配在连续的行中,但是在中间的一个中间块 line被释放(可能是因为使用该块的进程 内存停止运行),空闲块被分段。块是 如果需要,以后仍可供分配器使用 适合该块的内存,但该块现在无法使用 更大的内存需求。它不能与总免费重新融为一体 系统可用的内存,因为总内存必须是连续的 它可用于更大的任务。通过这种方式,整个部分 自由记忆最终可能与整体隔离开来 小的重要用途,这可以减少免费 随着时间的推移会导致密钥缺少可用内存的内存 任务。