2009-07-29 88 views
50

任何人都可以告訴我內部和外部碎片之間的區別,同時分配文件的磁盤空間?內部和外部碎片

+1

@binary worrier:我很抱歉..我是新來stackoveerflow ..但我得到我的問題的答案,無論他們是否編程相關或不。 – wantobegeek 2009-07-30 08:46:15

+17

完全相關的編程 - 操作系統上的任何課程都將覆蓋文件系統。 – 2010-09-14 15:24:31

回答

-13

大概從this site

內部碎片內部碎片時,內存 分配器離開該 已經分配給客戶端的內存塊的額外空間空內發生。這通常是因爲 處理器的設計規定存儲器必須被切割成 特定大小的塊 - 例如,塊可能需要均勻地被 除以4,8或16個字節。當發生這種情況時,客戶端需要57個字節的內存,例如,可能會分配一個包含60個字節或甚至64個字節的塊。客戶端不需要的額外字節 需要浪費,並且隨着時間的推移這些很小的未使用的內存塊可能會建立並創建大量的內存,而這些內存不能被分配器使用,因此請使用 。因爲所有這些無用的字節都在 更大的內存塊中,所以碎片被認爲是內部的。

外部碎片當 內存分配程序在分配的內存的 部分之間留下部分未使用的內存塊時,會發生外部碎片。例如,如果多個內存塊 分配在一條連續的行中,但是 行中的一箇中間塊被釋放(可能是因爲正在使用內存塊 的進程停止運行),則空閒塊被分段。如果需要 內存適合該塊,但該塊現在仍然可供分配器使用,但該塊現在不可用於 更大的內存需求。它不能被系統整體免費使用,因爲總內存必須是連續的,因爲它可用於較大的任務。以這種方式,整個部分的空閒內存最終可能會從整體上隔離開來,而這些內存通常太小而不能用於重要用途,這會造成內存的整體減少,隨着時間的推移可能導致缺少可用內存的密鑰 任務。

116

外部碎片
總存儲器空間是足以滿足的請求或在它駐留在進程,但它是不連續的,因此它不能被使用。

External fragmentation

內部碎片分配給過程
存儲器塊較大。內存的某些部分未被使用,因爲它不能被其他進程使用。

Internal fragmentation

9

所有術語碎片線索有分成部分實體的第一 - 片段。

  • 內部碎片:典型的紙書是網頁的集合(文本分爲頁)。當一個章節的結尾不在頁面末尾,新章節從新頁面開始時,這些章節之間存在差距,這是浪費空間 - 塊(頁的書)有未使用的空間內部) - 「白色空間」

  • 外部碎片:說你有一紙日記,你頁面後沒寫你的想法順序頁面,但是,相當隨意。你可能最終會遇到一種情況,當你想要在行中寫3頁時,但你不能一頁一頁地打印3頁,你可能在日記裏有15頁完整的頁面,但是他們不是連續的