今天就來談談分配方法吧!
Contiguous allocation:
==>每個檔案都是占用硬碟的一組連續blocks。要讀取資料時,從某一個block開始並讀取被要求的長度資料。
==>這是種隨機存取的方法,但因依序放置所以會造成空間上的浪費,也因如此現在網路上並不常用此方法。
==>依圖片來看,LA就是logical address,也是以此來處理block,而這個block有512個數,進行處理後會有餘數(R)
產生,所以R是多少便從第幾個位置開始。
==>以下為此方法在Disk Space中的示意圖:
Extent-Based Systems:
==>因為一個一個的block很小,所以成立一個新單位--extent。其定義就是一堆連續的disk blocks的組合便是extent。
==>extent類似於一個可變尺寸的單位,內含一個以上的block,接者再分配給需要的檔案;一個檔案可以由一個或多個的extent組成。
Linked Allocation:
==>每個檔案是個硬碟block的link list;blocks可能會散落再硬碟的任何地方。
==>是個簡單的方法,只需要開始的位置訊息,而且也不會有浪費空間的事情發生,並不是一個可隨機存取的方法。
==>以下為示意圖:是種非連續的方式
==>File-Allocation Table:
Indexed Allocation:
==>每個檔案都有自己的index block,裡面有各配置的data block編號,提供尋找。配置方式則採非連續的。
==>需要index table,以及支援隨機存取。在動態存取中不會產生外部碎片,但有index block的沉重負擔。
==>Q:代表index table裡的位置。R:從index table中的位置要到哪個block。
==>在檔案中從logical對映到physical是沒有限制長度的;同樣的Linked scheme是index table的link block,一的沒有尺寸限制。
==>以下為示意圖:
==>Q1:index table的block。R1的用法如下:
==>Q2:index table進入block的位置。R2:檔案進入block的位置。
==>以下為Index Allocation的Mapping示意圖:
明天我們將繼續介紹最後的部分!!