操作系統學習筆記高度濃縮版之文件管理

目錄

文件基本概念

文件邏輯結構

文件目錄結構

文件物理結構

文件存儲空間管理

文件的基本操作

文件共享和文件保護


文件基本概念

1.文件的定義:一組有意義的信息的集合。

2.文件的屬性:文件名、標識符、類型、位置大小、創建時間、修改時間、保護信息.....

 

文件邏輯結構

3.文件的邏輯結構:無結構文件(二進制流或字符流組成,流式文件)和有結構文件(已佔據相似的記錄組成,記錄式文件)

補充:每條記錄由關鍵字和若干數據項組成,根據長度可分爲定長記錄和不定長記錄兩種。

有結構文件:順序文件、索引文件、索引順序文件

順序文件:鏈式存儲 或 順序存儲(串結構 或 順序結構)

串結構:記錄順序與關鍵字無關;  順序結構:記錄按關鍵字順序排列。

索引文件:建立一張索引表,每個記錄對應一個表項,支持隨機存取

補充:索引表本省計算定長記錄的順序文件,一個索引表項就是一條定長記錄。

 

文件目錄結構

4.文件目錄結構:單級目錄結構(不允許文件重名)--->兩級目錄結構(不能對文件分類)---->多級(樹形)目錄結構(不方便文件共享)---->有向無環圖目錄結構(設置一個共享計數器)

補充:文件控制塊(FCB)是目錄文件中的一條記錄,一個文件對應一個FCB,一個FCB就是一個目錄項,多個FCB組成文件目錄。FCB包含文件的基本信息(文件名、物理地址、邏輯地址,物理結構等),存取控制信息(是否可讀/可寫、禁止訪問的用戶名單等),使用信息(如文件的建立時間、修改時間等)。

由於多級目錄結構的出現導致絕對路徑(從根目錄出發)和相對路徑(從當前目錄出發),減少磁盤I/0次數。

索引結點:除了文件名之外的所有信息都放到索引結點中,每個文件對應一個索引結點,由於目錄項中只包含文件名和索引結點指針,故而每個目錄項的長度減少,每個磁盤塊可以存放更多目錄項,減少檢索文件時磁盤I/0次數。

 

文件物理結構

5.文件的物理結構文件分配方式(非空閒磁盤塊的管理):連續分配,鏈接分配,索引分配

連續分配(FCB記錄起始塊號和文件長度)

優點:支持順序訪問和直接訪問(即隨機訪問),連續分配的文件在順序訪問時速度最快

缺點:不方便文件拓展,存儲空間利用率低,會產生磁盤碎片

鏈接分配--隱式鏈接(FCB記錄起始塊號和結束塊號)

除文件的最後一個盤塊之外,每個盤塊中都存有指向下一個盤塊的指針。文件目錄包括文件第一塊的指針和最後一塊的指針。

優點:很方便文件拓展,不會有碎片問題,外存利用率高

缺點:只支持順序訪問,不支持隨機訪問,查找效率低,指向下一個盤塊的指針也需要耗費少量的存儲空間

鏈接分配--顯式鏈接(FCB記錄起始塊號)

補充:文件分配表(FAT),用於顯式存放鏈接文件各物理塊的指針。一個磁盤只會建立一張FAT,開機時FAT常駐內存

優點:很方便文件拓展,不會有碎片問題,外存利用率高,並且支持隨機訪問,地址轉換時不需要訪問磁盤

缺點:FAT會佔用一定的存儲空間

索引分配(鏈接方案記錄的是第一個索引塊的塊號,多層/混合索引記錄的是頂級索引塊的塊號)

允許文件離散地分配在各個磁盤塊中,系統會爲每個文件建立一張索引表,索引表中記錄了文件的各個邏輯塊對應的物理塊。

補充:索引表存放的磁盤塊稱爲索引塊, 文件數據存放的磁盤稱爲數據塊。

優點:支持隨機訪問,便於文件拓展

缺點:索引表需要佔用一定的存儲空間

當索引表太大,一個索引塊裝不下,解決策略:鏈接方案多層索引混合索引

鏈接方案:將多個索引塊鏈接起來,若索引表很長,需鏈接多個索引塊,想要找到第i號索引塊必須先依次讀入前面的索引塊

多層索引:k層索引結構,在頂級索引表未調入內存時訪問一個數據塊只需要k+1次磁盤操作,但小文件也需要這麼多次

混合索引:頂級索引表中包含直接地址索引(指向數據塊),一級間接索引(指向單層索引表)、兩級間接索引(指向兩層索引表)

 

文件存儲空間管理

6.文件存儲空間管理(空閒磁盤塊)

存儲空間的劃分:將物理磁盤塊劃分爲一個個文件卷(邏輯卷、邏輯盤)

存儲空間的初始化:將各個文件卷劃分爲目錄區(主要存放FCB和管理信息)和文件區(存放文件數據)

存儲空間管理-----空閒表法

分配連續的存儲空間,採用首次適應、最佳適應、最壞適應算法來決定爲文件分配哪個區間,並且回收時還需注意表項的合併問題。

存儲空間管理-----空閒鏈表法(空閒盤塊鏈和空閒盤區鏈)

補充:連續的幾個空閒盤塊組成一個空閒盤區

回收時直接鏈接在表尾。

存儲空間管理-----位示圖法

位示圖:每個二進制位代表一個盤塊。(行號,列號)----> (字號,位號)對應一個盤塊號。

存儲空間管理-----成組鏈接法

補充:超級塊:文件卷的目錄區中專門用一個磁盤塊作爲“超級塊”,當系統啓動時需要將其讀入內存,包括:下一組空閒盤數+若干個下一組空閒塊號。

分配:超級塊充當鏈頭作用;

回收:將超級塊中的數據複製到新回收的塊中,並修改超級塊的內容,讓新回收的塊成爲第一個分組。

 

文件的基本操作

7.文件的基本操作:創建、寫、讀、刪除、打開與關閉

創建文件:分配外存空間(存儲空間管理不同策略做不同處理的分配),創建目錄項

刪除文件:回收外存空間(存儲空間管理不同策略做不同處理的回收),刪除目錄項

文件的打開與關閉:操作open根據文件名搜索目錄,並將目錄條目複製到打開文件表,成功後返回一個指向打開文件表中的一個條目的指針,通過該文件指針(而非文件名)進行所有I/O操作,同時使用文件打開計數器以記錄多少進程打開了該文件,每個close操作使得計數器減1,當爲0時進行資源回收釋放。

 

文件共享和文件保護

8.文件共享

基於索引結點的共享方式---硬鏈接(只有一個文件)

各個用戶的目錄項指向同一個結點,索引結點中需要有鏈接計數count,某用戶刪除文件時,只是刪除該用戶的目錄項並且count--,當count==0時才能真正刪除文件數據和索引結點。

基於符號鏈的共享方式---軟鏈接(創建link文件,另外改成一個文件名)

在一個link型文件中記錄文件存放路徑(windows快捷方式),操作系統根據路徑一層層查找目錄,最終找到共享文件,軟鏈接方式需要查詢多級目錄,因此訪問速度會比硬鏈接慢。

9.文件保護

口令保護

爲文件設置“口令”,開銷小,“口令”一般存放在FCB或索引結點中(系統中)

加密保護

用“密碼”對文件加密,安全性高但加密/解密需要耗費一定時間

訪問控制

利用訪問控制表(ACL)記錄各個用戶(或各組用戶)對文件的訪問權限,實現靈活,包括讀寫各種方式類型的控制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章