【发布时间】:2010-11-15 02:25:47
【问题描述】:
谁能告诉我在为文件分配磁盘空间时内部和外部碎片的区别?
【问题讨论】:
标签: filesystems disk fragmentation
谁能告诉我在为文件分配磁盘空间时内部和外部碎片的区别?
【问题讨论】:
标签: filesystems disk fragmentation
外部碎片
总内存空间足以满足请求或在其中驻留进程,但它不连续,因此无法使用。
内部碎片化
分配给进程的内存块更大。部分内存未被使用,因为它不能被其他进程使用。
【讨论】:
首先,fragmentation这个词暗示有一个实体被分成多个部分——片段。
内部碎片化:典型的纸质书是页面的集合(文本分为页面)。当一章的结尾不在页面的末尾,而新的章节从新的页面开始时,这些章节之间会有一个间隙,这是浪费空间——一个块(一本书的页面)内部有未使用的空间 /em>(内部)——“空白”
外部碎片化:假设您有一本纸质日记,并且您没有逐页顺序地写下您的想法,而是随机地写下您的想法。你可能会遇到这样的情况,你想连续写 3 页,但你不能,因为没有 3 个一页一页的干净页面,你可能在日记中总共有 15 个干净的页面,但是它们不连续
【讨论】:
我是一个只为你分配 10mb 分区内存的操作系统。
内部碎片化
满足此请求刚刚导致 3mb 的内部碎片。
外部碎片化
完成这个请求导致了外部碎片
【讨论】:
大概来自this site:
Internal Fragmentation 内部碎片发生在内存 分配器在一块内存中留出额外的空间 已分配给客户。这通常是因为 处理器的设计规定,内存必须被切割成块 某些尺寸——例如,块可能需要均匀分布 除以 4、8 或 16 个字节。发生这种情况时,客户 需要 57 字节的内存,例如,可以分配一个块 包含 60 个字节,甚至 64 个。客户端没有的额外字节 需要浪费,随着时间的推移,这些小块未使用的内存可以 建立并创建大量无法放入的内存 分配器使用。因为所有这些无用的字节都在里面 更大的内存块,碎片被认为是内部的。
外部碎片 外部碎片发生在 内存分配器将未使用的内存块部分保留在 分配的内存的一部分。例如,如果有几个内存块 被分配在一条连续的线上,但在 行被释放(可能是因为使用该块的进程 内存停止运行),空闲块被碎片化。该块是 如果需要,分配器以后仍然可以使用 适合该块的内存,但该块现在无法用于 更大的内存需求。它不能与总免费混为一谈 系统可用的内存,因为总内存必须是连续的 它可用于更大的任务。这样,整个部分 空闲内存最终可能会与通常过于频繁的整体隔离开来 小而重要的使用,这会产生免费的整体减少 内存随着时间的推移会导致 key 的可用内存不足 任务。
【讨论】: