内部和外部碎片[关闭]
Posted
技术标签:
【中文标题】内部和外部碎片[关闭]【英文标题】:Internal and external fragmentation [closed] 【发布时间】:2010-11-15 02:25:47 【问题描述】:谁能告诉我在为文件分配磁盘空间时内部和外部碎片的区别?
【问题讨论】:
【参考方案1】:外部碎片 总内存空间足以满足请求或在其中驻留进程,但它不连续,因此无法使用。
内部碎片化 分配给进程的内存块更大。部分内存未被使用,因为它不能被其他进程使用。
【讨论】:
【参考方案2】:首先,fragmentation这个词暗示有一个实体被分成多个部分——片段。
内部碎片化:典型的纸质书是页面的集合(文本分为页面)。当一章的结尾不在页面的末尾,而新的章节从新的页面开始时,这些章节之间会有一个间隙,这是浪费空间——一个块(一本书的页面)内部有未使用的空间 /em>(内部)——“空白”
外部碎片化:假设您有一本纸质日记,并且您没有逐页顺序地写下您的想法,而是随机地写下您的想法。你可能会遇到这样的情况,你想连续写 3 页,但你不能,因为没有 3 个一页一页的干净页面,你可能在日记中总共有 15 个干净的页面,但是它们不连续
【讨论】:
这是一个令人惊叹的类比。 难以置信的类比!多亏了这一点,可能永远不会忘记这个概念。 哇。对于这个类比...【参考方案3】:我是一个只为你分配 10mb 分区内存的操作系统。
内部碎片化
您要求 17mb 的内存 我给你 20mb 的内存满足此请求刚刚导致 3mb 的内部碎片。
外部碎片化
您要求 20mb 的内存 我给你 20mb 的内存 我给您的 20mb 内存不与另一块现有的已分配内存立即相邻。在把这段记忆交给你的时候,我已经将一个未分配的空间“分割”成两个空间。完成这个请求导致了外部碎片
【讨论】:
【参考方案4】:大概来自this site:
Internal Fragmentation 内部碎片发生在内存 分配器在一块内存中留出额外的空间 已分配给客户。这通常是因为 处理器的设计规定,内存必须被切割成块 某些尺寸——例如,块可能需要均匀分布 除以 4、8 或 16 个字节。发生这种情况时,客户 需要 57 字节的内存,例如,可以分配一个块 包含 60 个字节,甚至 64 个。客户端没有的额外字节 需要浪费,随着时间的推移,这些小块未使用的内存可以 建立并创建大量无法放入的内存 分配器使用。因为所有这些无用的字节都在里面 更大的内存块,碎片被认为是内部的。
外部碎片 外部碎片发生在 内存分配器将未使用的内存块部分保留在 分配的内存的一部分。例如,如果有几个内存块 被分配在一条连续的线上,但在 行被释放(可能是因为使用该块的进程 内存停止运行),空闲块被碎片化。该块是 如果需要,分配器以后仍然可以使用 适合该块的内存,但该块现在无法用于 更大的内存需求。它不能与总免费混为一谈 系统可用的内存,因为总内存必须是连续的 它可用于更大的任务。这样,整个部分 空闲内存最终可能会与通常过于频繁的整体隔离开来 小而重要的使用,这会产生免费的整体减少 内存随着时间的推移会导致 key 的可用内存不足 任务。
【讨论】:
Maddy,您似乎从另一个站点复制了此文本,可能是this one。如果您这样做,至少需要将链接添加回该站点,指明您从何处复制它。我已经在这里为你做了。不过,这仍然是一个临界答案 - 将来,请使用此类信息作为您自己编写的答案的基础,而不是完整的答案。以上是关于内部和外部碎片[关闭]的主要内容,如果未能解决你的问题,请参考以下文章