1. 程式人生 > >外部碎片和內部碎片

外部碎片和內部碎片

 外部碎片,是由於大量資訊由於先後寫入、置換、刪除而形成的空間碎片。

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

【外部碎片】

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

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

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

【內部碎片】

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

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

單道連續分配只有內部碎片。

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