内部和外部碎片

问题描述:

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

+1

@binary worrier:我很抱歉..我是新来stackoveerflow ..但我得到我的问题的答案,无论他们是否编程相关或不。 – wantobegeek 2009-07-30 08:46:15

+17

完全相关的编程 - 操作系统上的任何课程都将覆盖文件系统。 – 2010-09-14 15:24:31

大概从this site

内部碎片内部碎片时,内存 分配器离开该 已经分配给客户端的内存块的额外空间空内发生。这通常是因为 处理器的设计规定存储器必须被切割成 特定大小的块 - 例如,块可能需要均匀地被 除以4,8或16个字节。当发生这种情况时,客户端需要57个字节的内存,例如,可能会分配一个包含60个字节或甚至64个字节的块。客户端不需要的额外字节 需要浪费,并且随着时间的推移这些很小的未使用的内存块可能会建立并创建大量的内存,而这些内存不能被分配器使用,因此请使用 。因为所有这些无用的字节都在 更大的内存块中,所以碎片被认为是内部的。

外部碎片当 内存分配程序在分配的内存的 部分之间留下部分未使用的内存块时,会发生外部碎片。例如,如果多个内存块 分配在一条连续的行中,但是 行中的一个中间块被释放(可能是因为正在使用内存块 的进程停止运行),则空闲块被分段。如果需要 内存适合该块,但该块现在仍然可供分配器使用,但该块现在不可用于 更大的内存需求。它不能被系统整体免费使用,因为总内存必须是连续的,因为它可用于较大的任务。以这种方式,整个部分的空闲内存最终可能会从整体上隔离开来,而这些内存通常太小而不能用于重要用途,这会造成内存的整体减少,随着时间的推移可能导致缺少可用内存的密钥 任务。

外部碎片
总存储器空间是足以满足的请求或在它驻留在进程,但它是不连续的,因此它不能被使用。

External fragmentation

内部碎片分配给过程
存储器块较大。内存的某些部分未被使用,因为它不能被其他进程使用。

Internal fragmentation

所有术语碎片线索有分成部分实体的第一 - 片段。

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

  • 外部碎片:说你有一纸日记,你页面后没写你的想法顺序页面,但是,相当随意。你可能最终会遇到一种情况,当你想要在行中写3页时,但你不能一页一页地打印3页,你可能在日记里有15页完整的页面,但是他们不是连续的