1. 程式人生 > >第八章 磁碟儲存器的管理

第八章 磁碟儲存器的管理

8-1外存的組織方式
常用的外存組織方式有:
連續儲存方式:順序式的檔案物理結構
連結儲存方式:連結式檔案結構
索引儲存方式:索引式檔案結構
連續組織方式優點:
(1)順序訪問容易。
(2)順序訪問速度快。
缺點:
(1)要求為一個檔案分配連續的儲存空間。
(2)必須事先知道檔案長度。
(3)不能靈活地插入和刪除記錄。
(4)對於動態增長的檔案,很難為其分配空間,即使事先知道檔案大小,也會使大量的儲存空間長期空閒。
連結儲存優點:
(1)消除了磁碟的外部碎片,提高外存利用率
(2)對插入,修改和刪除記錄都很容易
(3)適應檔案動態增長,無需事先知道檔案大小
索引組織方式有:
(1)單級索引組織方式
(2)多級索引組織方式
(3)增量式索引組織方式
8-2檔案儲存空間的管理
空閒表法:屬於連續分配方式
(1)空閒表
(2)儲存空間的分配與回收
空閒連結串列法:根據構成鏈所用基本元素的不同,分為:空閒盤塊鏈和空閒盤區鏈。
空閒盤塊鏈:
將磁碟上的所有空閒空間,以盤塊為單位拉成一條鏈。
因建立檔案而請求分配空間時,系統從鏈首依次摘下適當數目的空閒盤塊分配給使用者。
因刪除檔案而釋放儲存空間時,系統將回收的盤塊依次插入空閒盤塊鏈的末尾。
優點:分配和回收一個盤塊的過程非常簡單,但為一個檔案分配盤塊時,可能要重複操作多次。
空閒盤區鏈:
將所有空閒盤區拉成一條鏈。每個盤區上含有:
指示下一空閒盤區的指標、本盤區大小等資訊
分配通常採用首次適應演算法。回收盤區時,將回收區與相鄰的空閒盤區相合並。
為提高檢索速度,可以採用顯式方法,為空閒盤區建立一張連結串列放在記憶體中。
分配、回收操作涉及的鏈式資料結構的處理方便。
空閒盤塊鏈
分配回收簡單。連結串列長,大量分配時需要操作的指標多
空閒盤區鏈
連結串列長度不定,分配時操作的指標數量相對較少,但分配回收操作相對複雜。

位示圖法:利用二進位制的一位來表示一個盤塊的使用情況。
值為0表示對應的盤塊空閒,為1表示已分配。有的系統則相反。
磁碟上的所有盤塊都有一個二進位制位與之對應,這樣由所有盤塊所對應的位構成一個集合,稱為位示圖。
總塊數=mn。可用mn個位數來構成位示圖,可看成是二維陣列(資料結構)。

(1)位示圖
(2)盤塊的分配。
(3)盤塊的回收。
空閒盤塊的分配與回收
分配盤塊時,須呼叫分配過程來完成。
先檢查空閒盤塊號棧是否上鎖,如沒有,便從棧頂取出一空閒盤塊號,將與之對應的盤塊分配給使用者,然後將棧頂指標下移一格。
若該盤塊號已是棧底,即S.free(0),到達當前棧中最後一個可供分配的盤塊號。
讀取該盤塊號所對應的盤塊中的資訊:即下一組可用的盤塊號入棧。
原棧底盤塊分配出去。修改棧中的空閒盤塊數。
回收
回收盤塊號記入棧頂,空閒數N加1
N達到100時,若再回收一塊,則將該100條資訊填寫入新回收塊。
成組連結法:UNIX系統使用。
(1)空閒盤塊的組織
(2)空閒盤塊的分配與回收。