作業系統的檔案管理

2021-10-24 07:20:33 字數 3166 閱讀 8743

輔存(磁碟)的儲存空間分配

目錄管理

1. 有結構檔案

檔案內容由定長記錄和可變長記錄組成。定長記錄儲存檔案的格式,檔案編碼,檔案描述等結構化資料項可變長記錄用來儲存檔案的具體內容

上圖就是png的檔案結構,分成了檔案標記,檔案結束標記和檔案的資料塊三個部分,在這個圖中,定長記錄就是png檔案標記和檔案結束標記,可變長記錄就是png資料塊。除了png,大多數檔案都遵循如上圖的檔案結構格式分為定長記錄和可變長記錄。

2. 無結構檔案

也被稱為流式檔案。檔案內容以位元組為單位,常見的如exe,dll,so檔案都屬於流式檔案。

順序檔案指的是按照順序存放在儲存介質中的檔案,比如磁帶就是只能儲存順序檔案的儲存介質。由於順序檔案是按照順序儲存,在讀和寫的時候只需要按照順序去讀寫就可以,因此順序檔案是所有邏輯檔案中儲存效率最高的

但是順序檔案在進行增刪改的時候效率極低,由於可變長檔案不適合使用順序檔案格式儲存,就有了索引檔案,它是解決可變長檔案儲存的檔案格式。相對順序檔案,它需要配合索引表進行儲存。

1.連續分配

如果乙個檔案儲存的時候需要一系列扇區,會直接把連續的一片扇區分配給它。

順序讀取檔案內容非常容易,且速度非常快

但是對儲存的要求很高,需要滿足檔案容量大小的連續儲存空間

2.鏈結分配

為了解決連續分配的缺點,它會把檔案儲存在離散的盤塊裡,需要額外的儲存空間來儲存檔案盤塊的鏈結順序。

按照額外儲存空間的不同,分為隱式鏈結和顯式鏈結。

隱式分配的下乙個鏈結的指向儲存在當前盤塊中。如果有乙個檔案需要使用4個盤塊,分別是第2,9,7,16個。如果使用隱式鏈結,會在第2個盤塊裡面儲存它的下乙個盤塊在**,同樣第9個盤塊也會儲存指向第7個盤塊。

隱式分配非常適合順序訪問,因為在資料訪問的時候只需要知道第1個盤塊就會查詢到剩餘的盤塊。

但它的隨機訪問效率很低,假如需要訪問檔案的第16個盤塊,由於它只能從頭部開始,先要找到第2,在找到第9,第7,最後才能找到目標盤塊。不管訪問哪乙個盤塊都需要從檔案的第乙個盤塊開始遍歷。

同時隱式分配的可靠性很差,任何乙個鏈結出了問題都會影響整個檔案。

還是上面的檔案例子,顯式鏈結分配使用fat表(file allocation table),這張表儲存物理盤塊以及下一盤塊位址,這些儲存的相關資料顯示在一張表上。這裡的fat就是平時所說的fat檔案系統,顯示鏈結分配是fat檔案系統的工作原理

fat不支援高效的直接儲存,因為它的記錄項非常多,磁碟越大,fat記錄越大。如果需要在fat檔案系統裡面儲存乙個比較大的資料,就需要檢索fat表去找多很多空閒的盤塊號。

檢索時fat表占用較大的儲存空間,對某乙個檔案進行讀取時,需要將整個fat都載入到記憶體裡面。

3.索引分配

索引分配會把乙個檔案所有的盤塊集中儲存,儲存所有盤塊的位置成為索引。當需要讀取某乙個檔案的時候,只需要把檔案的索引讀取到記憶體就可以了。

還是使用鏈結分配中的例子,索引分配會使用乙個額外的盤塊儲存它所需要的盤塊,假如這個盤塊是10。那麼10就會儲存2,9,7,16。在磁碟裡10 是檔案的索引,10指向第2,7,9,16。

每乙個檔案都擁有乙個索引塊,記錄所有盤塊資訊

索引分配方式支援直接訪問盤塊,在索引裡可以直接找到檔案對應的盤塊。

檔案較大時,索引分配具有明顯優勢。主流檔案系統都是使用索引分配來進行磁碟分配的。

主要有三種方法:

1.空閒表

如圖所示,空閒表儲存兩個重要內容,第乙個空閒盤塊號和空閒盤塊數,結合兩個資訊,可以得知在磁碟的第2個盤塊號開始有一段連續的空閒盤塊,空閒盤塊一共有四個。

使用空閒表,空閒盤區的分配與記憶體分配類似,也使用首次適應演算法,迴圈適應演算法、快速適應演算法來分配空閒盤塊。

**過程也與記憶體**類似。

2.空閒鍊錶

把所有的空閒盤區組成乙個空閒鍊錶

鍊錶的每乙個節點儲存空閒盤塊以及空閒的數目,儲存的資料和空閒表是一樣的。

3.位示圖位示圖的優點

維護成本非常低,只需要維護乙個表即可

可以非常容易的找到空閒盤塊

使用0/1位元位,所占用的空間非常小

實際輔存的分配方式主要使用位示圖進行管理

使用目錄樹如上圖,方框表示目錄,圓圈表示檔案。上圖是乙個目錄樹。

根目錄有三個目錄a、b、c;a有三個子目錄d、e、f;d有乙個子檔案m;e有兩個子目錄;f有乙個子檔案,其他目錄同理。

目錄樹使得每乙個檔案或目錄都有乙個唯一的路徑比如m的路徑為a/d/m,比如l目錄的路徑為c/i/l。

作業系統 檔案管理

使用者作業中要用到各種各樣的資訊,如源程式 目標程式 資料 各種語言的編譯程式等。有的資訊需要長期儲存,而有的只是臨時使用。計算機系統經常把資訊儲存在磁碟等儲存介質上,也要利用輸入級 印表機等裝置進行資訊的輸入或輸出。啟動外圍裝置訪問資訊時一項相當複雜 繁瑣的工作。為減輕使用者的負擔和保證系統的安全...

作業系統 檔案管理

檔案系統是用來管理計算機內部儲存的程式和資料。陣列組成可分為 資料項 記錄和檔案。資料項可以組成記錄,記錄可以組成檔案。屬性 檔案具有以下屬性 檔案型別 檔案長度 檔案物理位置 檔案的建立時間。型別 檔案型別可分為普通檔案 目錄檔案 特殊檔案。為了方便統一管理,系統將所有的輸入輸出裝置都視為檔案。檔...

作業系統 檔案管理

9 檔案系統的層次結構 10 磁碟 外存 10.4 磁碟的管理 1 順序檔案 2 索引檔案 3 索引順序檔案 1 實現 乙個檔案對應乙個fcb 檔案控制塊 乙個fcb就是乙個目錄項,多個fcb組成檔案目錄 2 操作 搜尋 建立檔案 刪除檔案 顯示檔案 修改檔案 3 目錄結構 4 索引結點 存放除了檔...