内部和外部碎片

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

外部碎片
总内存空间足以满足请求或驻留进程,但不是连续的,所以不能使用。

外部碎片

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

内部碎片

首先,术语分裂线索有一个实体被分成若干部分 – 碎片。

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

  • 外部碎片:假设你有一份纸质日记,而且你没有一页一页的顺序写下自己的想法,而是随机的。 你可能最终会遇到这样的情况:当你想在行中写3页时,但是你不能一页一页地打印3页,你可能在日记里面有15页空白页,但是他们不是连续的

据推测从这个网站 :

内部碎片内存碎片发生在内存分配程序在为客户端分配的内存块的内部留下空余空间时。 这通常是因为处理器的devise规定存储器必须被切割成特定大小的块,例如,可能需要将块均匀地分成四个,八个或十六个字节。 发生这种情况时,例如,需要57个字节的内存的客户端可能会被分配一个包含60个字节或甚至64个块。客户端不需要额外的字节浪费,随着时间的推移,这些小块未使用的内存可能会build立并创build大量的分配器无法使用的内存。 因为所有这些无用的字节在更大的内存块中,所以碎片被认为是内部的。

外部碎片当内存分配程序在分配的内存部分之间留下部分未使用的内存块时,会发生外部碎片。 例如,如果几个内存块被分配在一个连续的行中,但是该行中的一个中间块被释放(可能是因为正在使用该内存块的进程停止运行),则空闲块被分段。 如果需要适合该块的内存,该块仍然可供分配器使用,但块现在无法用于较大的内存需求。 它不能被整合到系统可用的全部空闲内存中,因为总内存必须是连续的才能用于较大的任务。 通过这种方式,空闲内存的整个部分可能会从整体上隔离开来,这对于大量使用来说通常太小,这会导致空闲内存的总体减less,随着时间的推移可能导致缺less关键任务的可用内存。