【操作系統】第 七 、八 章 文件與磁盤空間管理(2)

5、目錄管理

對文件實施有效的管理,必須對它們加以妥善組織,主要是兩大操作:

1.基本信息記錄(FCB,目錄項)

2.方便檢索、管理(目錄操作)

目錄管理的要求如下:

實現“按名存取”;(最基本功能)

提高對目錄的檢索速度;

文件共享;

允許文件重名。


文件控制塊—FCB

爲了能對一個文件進行正確的存取,必須爲文件設置用於描述和控制文件的數據結構,稱之爲“文件控制塊”(FCB)

文件與文件控制塊一一對應

記錄文件名及其存放地址、文件的說明和控制信息。(是誰?在哪裏?什麼權?)

文件管理程序藉助於文件控制塊中的信息對文件施以各種操作。

 把文件控制塊的有序集合稱爲文件目錄,即一個文件控制塊就是一個目錄項。通常一個文件目錄也被看作是一個文件,稱爲目錄文件。


5.1 FCB內容

在文件控制塊中,通常含有以下三類信息。

1.基本信息類

包括文件名,文件物理位置,文件邏輯結構,文件的物理結構。

2.存取控制信息類

包括文件主的存取權限,覈准用戶的存取權限和一般用戶的存取權限。

3.使用信息類

建立日期和時間、文件上次修改的日期和時間

當前使用信息:打開該文件的進程數、是否被進程鎖住、是否已修改等。


5.2 索引結點

索引結點的引入

文件目錄佔越大量的盤塊,需進行的磁盤讀寫開銷越大。減少實際檢索的信息量就減少移動磁頭的開銷,提高速度;

目錄一般是按名檢索。而直到找到正確文件前,只關心文件名,不需要其它的文件描述信息,目錄中這部分內容的調入不是必須的。

所以:將文件名、文件具體信息分開,使文件描述信息單獨形成一個索引結點。


文件放在外存,文件信息形成FCB,FCB的集合構成目錄

訪問一個文件時需要把目錄調入內存,然後按名檢索目錄,目錄佔用內存空間問題產生

按名檢索時,名字不符的話其他信息並不需要讀取,所以FCB中許多信息不需要全調入內存。

減小FCB:將文件的詳細信息放入索引結點,FCB中記錄文件名和inode地址。目錄小了,調入內存佔空就少,檢索也快了。


5.3 目錄結構

目錄結構的組織,關係到文件系統的存取速度,也關係到文件的共享性和安全性。

組織好文件的目錄,是設計好文件系統的重要環節。

目前常用的目錄結構形式有

單級目錄

兩級目錄

多級目錄


①單級目錄結構(Single-Level Directory)

最簡單的目錄結構。

整個文件系統中只建立一張目錄表,每個文件一個目錄項,含有文件相關信息。

每建立一個新文件:

先檢索所有的目錄項,保證文件名唯一。

獲得一空白目錄項,填入相關信息,修改狀態位(表明每個目錄項是否空閒)。

刪除一個文件:

找到對應目錄項,回收文件所佔用空間

清除目錄項

優點:簡單、能實現目錄管理的基本功能——按名存取。

缺點:

1.文件檢索時需搜遍整個目錄文件,範圍大速度慢。

2.不允許重名。名字過多難於記憶,對於多用戶環境重名難以避免。

3.不便於實現文件共享(因爲不能重名,不同用戶使用的共享文件必須不同名字,標識哪些用戶共享文件也不方便),一般只適用單機環境。


②兩級目錄結構(Two-Level Directory )

爲每一個用戶建立一個單獨的用戶文件目錄UFD,UFD由用戶所有文件的文件控制塊組成。

系統建立一個主文件目錄MFD,MFD中每個用戶目錄文件都佔有一個目錄項,其中包括用戶名和指向UFD的指針。


基本克服了單級目錄的缺點,並具有以下優點:

1.提高了檢索目錄的速度。

2.在不同的目錄中可重名。

3.不同用戶還可以使用相同/不同的文件名來訪問系統中的同一個共享文件。

不提供子目錄操作,還不方便;各用戶之間被完全隔離的話用戶訪問其他用戶文件時,不方便合作。


③多級目錄結構

適用於較大的文件系統管理。又稱爲樹狀目錄(tree-like)

在文件數目較多時,便於系統和用戶將文件分散管理。

層次結構更清晰、提供更靈活的權限管理等

但目錄級別太多時也會增加路徑檢索層次,增加磁盤訪問時間。



5.4 目錄查詢技術

用戶要訪問一個已存文件

目錄數據調入內存;

按名檢索:系統利用提供的文件名對目錄(根據目錄層次,需要做的檢索次數也不同)進行查詢

找該文件控制塊;

讀FCB或對應索引結點;

從文件物理地址換算出文件在磁盤上的物理位置;

最後通過磁盤驅動程序,將所需文件讀入內存。

目錄查詢方式:線性檢索法和Hash方法。


線性檢索法,又稱爲順序檢索法。

單級目錄中

用戶提供文件名,順序查找文件目錄。

樹型目錄中

用戶提供路徑名,如/user/ast/mbox

對多級目錄進行逐層查找。


Hash方法

如果建立了一張Hash索引文件目錄,便可利用Hash方法進行查詢

系統將用戶提供的文件名變換爲文件目錄的索引值,再利用該索引值到目錄中去查找,將顯著的提高檢索速度。

對於使用通配符的文件名系統無法利用Hash法檢索目錄,還是需用線性查找法。



6.文件共享與保護

6.1文件共享

多個用戶共享一份文件,只保留文件的一份副本,節約存儲空間

共享範圍:單機系統/多主機系統/網絡範圍

20世紀六七十年代,出現了若干文件早期共享方法,繞彎路法、連訪法等,逐漸發展爲現代一些共享方式:索引結點、符號鏈


①索引結點法

基本FCB法(有向無循環圖):

名+詳細信息。

直接在文件目錄中包含文件的物理地址,該方法實現的共享不適用文件動態變化。一個用戶對文件的修改(如物理塊號增加),對其他用戶不可見,共享文件的FCB信息記錄同步更新困難。



文件名+索引結點指針。

一個用戶修改指針指向地址裏的內容,指針不變,其他用戶通過指針總能感知索引結點中的最新內容

索引結點中增加count計數

主人刪除操作問題:刪,共享用戶訪問錯誤;不刪,計費問題。



②符號鏈法

創建一個link類型的文件:“文件名+共享文件路徑”(類似快捷方式)

文件主人刪除文件,共享者只會出現找不到文件錯誤。不會發生共享文件刪除後出現懸空指針的情況。

該方法適用於網絡文件共享,但根據路徑檢索共享文件的目標位置增加了訪問開銷,link文件獨佔索引結點也耗費一定的空間。


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