外部碎片和內部碎片的區別

2021-07-23 10:25:36 字數 1194 閱讀 1907

外部碎片和內部碎片的區別

這幾天一直看作業系統,看到記憶體的連續分配時,對於外部碎片和內部碎片時甚是不解,剛好在某論壇上發現了這樣乙個生動的講解,

便迫不及待的相遇大家分享一下。

外部碎片,是由於大量資訊由於先後寫入、置換、刪除而形成的空間碎片。為了便於理解,我們將資訊比作貨物,將儲存空間比作倉庫來舉例子。假設,我們有編號為1、2、3、4、5、6的6間倉庫庫房,前天送來了一大宗貨,依次裝入了1、2、3、4、5號倉庫,昨天又因故將4號庫房的貨物運走了,那麼數值上說我們還有兩間空倉庫的空間,但是如果這時候送來兩間倉庫容量的貨物但要求必須連續存放的話,我們實際上是裝不下的。這時的4、6號倉庫,就成為一種空間的碎片。由於這樣的原因形成的空間碎片,我們稱之為外部碎片。從上面的例子我們可以理解,外部碎片是可以通過一些措施來改善或者解決的。對於在硬碟上的外部碎片,我們通常用磁碟碎片整理來解決,對應上面的例子,就是將5號倉庫的貨物及時移動到新騰出的4號倉庫,這樣,1-4號倉庫都是滿的,而5、6號倉庫則形成了有效的、連續的空間,能夠適應新的應用要求了;對於記憶體中的外部碎片,我們記憶體管理中常用的頁面管理形式,就是為了解決這個問題的。這裡就不詳述了。

內部碎片,是由於存量資訊容量與最小儲存空間單位不完全相符而造成的空間碎片。還是沿用上面的例子,這次我們的6間倉庫目前都是空置的,但是假設我們管理倉庫的最小空間單位是間,今天運來了容量為2.5間倉庫的貨物,那也要占用我們1-3號3間倉庫,儘管3號倉庫還閒置著一半的空間,但是這半間倉庫已經不能再利用了(因為是以間為最小單位麼);這時,我們的倉庫中就形成了半間倉庫的空間碎片,倉庫的有效容量只剩下3間倉庫了。

總之就是這麼個道理~~~~

【外部碎片】

外部碎片指的是還沒有被分配出去(不屬於任何程序),但由於太小了無法分配給申請記憶體空間的新程序的記憶體空閒區域。

外部碎片是出於任何已分配區域或頁面外部的空閒儲存塊。這些儲存塊的總和可以滿足當前申請的長度要求,但是由於它們的位址不連續或其他原因,使得系統無法滿足當前申請。

多道可變連續分配只有外部碎片。

【內部碎片】

內部碎片就是已經被分配出去(能明確指出屬於哪個程序)卻不能被利用的記憶體空間;

內部碎片是處於區域內部或頁面內部的儲存塊。占有這些區域或頁面的程序並不使用這個儲存塊。而在程序占有這塊儲存塊時,系統無法利用它。直到程序釋放它,或程序結束時,系統才有可能利用這個儲存塊。

單道連續分配只有內部碎片。多道固定連續分配既有內部碎片,又有外部碎片。

外部碎片和內部碎片的區別

一 在記憶體上 使用連續分配演算法來管理分配記憶體時會產生 的外部碎片和內部碎片兩個概念 這幾天一直看作業系統,看到記憶體的連續分配時,對於外部碎片和內部碎片時甚是不解 記憶體碎片分為 內部碎片和外部碎片 內部碎片 內部碎片就是已經被分配出去 能明確指出屬於哪個程序 卻不能被利用的記憶體空間 內部碎...

內部碎片和外部碎片

記憶體碎片分為內部碎片和外部碎片。內部碎片 內部碎片就是已經被分配出去 能明確指出屬於哪個程序 卻不能被利用的記憶體空間 內部碎片是處於區域內部或頁面內部的儲存塊。占有這些區域或頁面的程序並不使用這個儲存塊。而在程序占有這塊儲存塊時,系統無法利用它。直到程序釋放它,或程序結束時,系統才有可能利用這個...

記憶體管理 內部碎片和外部碎片

概念 乙個分割槽內部出現的碎片 即被浪費的空間 不能被利用。能明確指出屬於哪個程序 例子 固定分割槽法中,當6kb的程序被分配了10kb的記憶體空間,就有4kb的內部碎片 乙個程序申請43kb的記憶體空間,某些處理器因為限制 比如其體系結構規定只能整除4 8 16 該程序被分配了44kb,就有1kb...