第二十六講 檔案管理之檔案的外存分配方式
1 引言
使用者對不同的檔案採用不同的儲存方式,以便於對檔案進行各種操作。因此,如何有效利用外存空間和如何提高對檔案的訪問速度?是這講的主要內容
2 檔案物理結構
物理塊:乙個檔案儲存介質,格式化後就分成許多大小相等的單位--儲存塊(物理盤塊),在現代計算機系統中,一般來說,每個物理塊是乙個磁碟的扇區,512位元組。並給每個儲存塊有個編號,稱為物理塊號。
邏輯塊:一般把檔案資訊也劃分成與物理塊大小相等的邏輯塊。
檔案的物理結構:是指檔案在儲存裝置上的存放方式。
因檔案的物理結構和外存分配方式直接有關,因此主要的三種分配形式分別形成不同的檔案物理結構:
連續分配形成連續檔案結構形成連續檔案
鏈結分配形成鏈結檔案結構形成鏈結檔案
索引分配分別對形成索引檔案結構形成索引檔案。
1 連續分配
連續分配方式:是把乙個在邏輯上連續的檔案資訊順序的存放在各鄰接的物理塊中。
優點:速度快,節省空間。
缺點:長度變化困難。不利於檔案動態擴充。存在外部碎片。
說明:該方式可把邏輯檔案中的記錄,順序的儲存到鄰接的各物理塊中,這樣所形成的檔案結構稱為順序檔案結構,此時的物理檔案稱為順序檔案。這種分配方式保證了邏輯檔案中的記錄順序與儲存器中檔案占用盤塊的順序的一致性。
隨著檔案的建立與刪除不斷進行,將產生很多外碎片,利用緊湊方法也可消除碎片。
適用於:變化不大的順序訪問的檔案
unix系統:仍保留了連續檔案結構。
2 鏈結分配
2.1 概述
鏈結分配是一種離散分配方式,可將檔案裝到多個離散的盤塊中,可通過在每個盤塊上的鏈結指標,將同屬於乙個檔案的多個離散盤塊鏈結成乙個鍊錶。這樣形成的物理檔案就是鏈結檔案。
2.2 隱式鏈結
說明:
l 乙個串聯檔案結構是按順序由串聯的塊組成的,即檔案的資訊按存於若干塊中。
l 這種檔案結構不要求連續存放。
l 對於記錄式檔案一塊中可包含乙個邏輯記錄或多個邏輯記錄,也可以若干物理塊包含乙個邏輯記錄。
優點:
1、無外部碎片,沒有磁碟空間浪費
2、無需事先知道檔案大小。檔案動態增長時,可動態分配空閒塊。對檔案的增、刪、改十分方便。
缺點:
1、不能支援高效隨機/直接訪問,僅對順序訪問特有效順序訪問效率高,隨機訪問效率太低,如果訪問檔案的最後的內容,實際上是要訪問整個檔案。
2、需為指標分配空間。解決方法將幾個盤塊組成乙個簇
3、可靠性較低(指標丟失/損害)因此引入顯示鏈結解決此問題
2.3 顯式鏈結
dos、windows系統就採用了顯式結構。
n 用於鏈結檔案各物理塊的鏈結指標,顯式地存放在記憶體的一張鏈結表中。
n 該錶在整個磁碟僅設定一張。
n 表序號為整個磁碟的物理塊號(0---(n-1)),n是盤塊總數。
n 檔案的首塊號存入相應檔案的fcb中。
n 查詢在記憶體的fat中,故提高了檢索速度,同時又減少磁碟的訪問次數。
n 被ms-dos、os/2、windows採用。
見課本圖6-9
3 索引分配
3.1 引言
事實上,在開啟某個檔案時,只需把該檔案占用的盤塊的編號調入記憶體即可,完全沒有必要調入整個fat。為此應將每個檔案所對應的盤塊號集中在一起。
索引分配方法:就是基於上述想法所形成的一種分配方法。它為每個檔案分配乙個索引塊(表),再把分配給該檔案的所有盤塊號,都記錄在該索引塊中,因而該索引塊就是乙個含有許多盤塊號的陣列。在建立乙個檔案時,便須在為之建立的檔案目錄項中填上指向該索引塊(表)的指標。
索引表:索引結構要求為每個檔案建立乙個索引表,表中每個表目包括:邏輯塊號,物理塊號與該邏輯塊號對應的物理塊號。
索引表位置:檔案目錄中,檔案的開頭等。
3.2 單級索引分配
只有一級索引的分配方式。
3.3 多極索引分配
當os為乙個大檔案分配磁碟空間時,如果所分配出去的盤塊的盤塊號已經裝滿乙個索引塊時,os便為該檔案分配另乙個索引塊,用於將以後繼續為之分配的盤塊號記錄於其中。以此類推,再通過鏈指標將各索引按序鏈結起來。顯然當檔案太大時索引塊太多,此方法低效。此時應為索引塊再建立一級索引,這樣便形成了兩級索引分配方式。如果檔案非常大時,還可用**四級索引方式。
如圖3.4 混合索引分配方式
混合索引分配方式:是指將多種索引分配方式結合而形成的一種分配方式。
unix(每個塊4k位元組)如下圖
當檔案<40k時,10個直接位址;
當檔案<4m+40k時,一次間接(假定每個盤塊號佔4個位元組);
當檔案<4g+4m+40k時,二次間接;
當檔案<4t+4g+4m+40k時,三次間接;
優點:
既適應於順序訪問,也適應於隨機訪問。
unix系統是使用索引結構成功的例子。
缺點:
需要用於索引表的空間開銷和檔案索引的時間開銷。
3.5 總結
3.5.1 檔案型別與檔案儲存器、訪問方法的關係
檔案管理 外存分配方式
1 外存分配方法 目前,常用的外存分配方法有連續分配 鏈結分配和索引分配三種。通常,在乙個系統中,僅採用其中的一種方法來為檔案分配外存空間。檔案的物理結構直接與外存分配方式有關。在採用不同的分配方式時,將形成不同的檔案物理結構。例如,在採用連續分配方式時的檔案物理結構 是順序式的檔案結構,鏈結分配方...
記憶體分配方式
記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的 整個執行期間都存在。例如全域性變數,static 變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函 數執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指...
記憶體分配方式
記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個 執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執 行結束時這些儲存單元自動被釋放。棧記憶體分配運算內置於處理器的指令...