目錄
准備: 文件控制塊——PCB:
為了能對一個文件進行正確的存取,必須為文件設置用於描述和控制文件的數據結構,稱之為“文件控制塊”(FCB)
文件與文件控制塊一一對應
記錄文件名及其存放地址、文件的說明和控制信息。
文件管理程序借助於文件控制塊中的信息對文件施以各種操作。
把文件控制塊的有序集合稱為文件目錄,即一個文件控制塊就是一個目錄項。通常一個文件目錄也被看作是一個文件,稱為目錄文件
一: 目錄管理
主要有兩大操作:
1.方便信息記錄(PCB,目錄項)
2.方便檢索,管理(目錄操作)
管理要求:
(1) 實現按名存取
(2) 提高對目錄的檢索速度
(3) 文件共享
(4)允許文件重名
(一) PCB內容
1:基本信息類: 文件名,文件物理位置,文件邏輯結構,文件物理結構
2. 存取控制信息 : 文件主的存取權限,其他用戶的存取權限。
3. 使用信息類: 建立日期,文件修改日期
當前使用信息:打開文件的進程數,是否被進程上鎖,是否已經修改。
(二)索引節點
將文件名,文件具體信息分開,使文件描述信息單獨形成一個索引結點。
不同形式:
1:磁盤索引結點:
文件主標識符、文件類型、文件存取權限、文件物理地址、文件長度、文件連接計數、文件存取時間。
2: 內存索引結點:
將磁盤結點拷貝到內存結點使用。新增一些內容,如:狀態,訪問計數等。
(三) 目錄結構、
目錄結構的組織
1: 單機目錄:
最簡單的目錄結構。
整個文件系統中只建立一張目錄表 ,每個文件一個目錄項,含有文件相關信息。
建立一個新文件:
(1)先檢索所有的目錄項,保證文件名唯一。
(2)獲得一張空白目錄項,填入相關信息,修改狀態位
刪除一個文件:
(1) 找到對應的目錄項,回收文件所占用空間。
(2) 清楚目錄項。
優點:
簡單,能夠實現目錄管理的基本功能————按名存取
缺點:
( 1: 文件檢索的時候需要搜索所有目錄文件
( 2: 不允許重名,對多用戶不友好
(3: 不便實現文件共享,一般只適用於單機環境。
2: 兩級目錄結構:
為每一個用戶建立一個單獨的用戶文件目錄UFD,UFD由所有文件控制塊組成。
系統建立一個主文件目錄MFD,MFD中每個用戶目錄文件都占有一個目錄項,其中包括用戶名和指向UFD的指針
特點:
(1): 提高了檢索目錄的速度。
(2): 在不同的,目錄中可以重名
(3): 不同的用戶可以使用相同或不同的文件名來訪問系統中的同一個
共享文件,
(4):不提供子目錄操作,各個用戶之間不方便合作。
3.多級目錄結構
使用與較大的文件管理系統,又稱樹狀目錄
目錄結構:
主目錄又稱根目錄:數據文件成為樹葉,其他目錄稱為結點
路徑名;
從根目錄到任何數據都有一條唯一的通路
當前目錄:
為每個進程設置一個當前目錄,又稱’工作目錄‘;
從當前目錄開始,逐級經過中間目錄文件,最后到達要訪問的數據文件。這一路徑上的目錄和數據文件連接成的路徑名,成為相對路徑 。
從根開始的路徑名稱為絕對路徑名。
(四) 目錄查詢技術
用戶法訪問一個已存在的文件:
(1):目錄調入數據庫
(2):按名檢索
(3):找到該文件控制塊。
(4):讀FCB或對應的索引結點
(5):從文件物理地址換算成在磁盤上的物理位置。
1:目錄查詢方式:線性檢索發和哈希法
線性檢索法:
單機目錄中: 用戶提供文件名,順序查找文件
樹形目錄:用戶提供路徑名;對多級目錄進行逐級逐層查找。
HASH法:
建立一張hash索引文件目錄
系統將用戶提供的文件名變換為文件目錄的索引值,在利用索引值到目錄中查找。
如果文件名使用了通配符,無法利用哈希法。
(五) 文件共享與保護
1:文件共享
多個用戶共享一份文件,只保留一份文件副本。
(1)索引結點法:
基本FCB法:
名+詳細信息
直接在文件目錄中包含文件的物理地址,該方法實現的共享不適用文件動態變化。一個用戶對文件的修改(如物理塊號增加),對其他用戶不可見,共享文件的FCB信息記錄同步更新困難。
文件名+索引結點指針。
一個用戶修改指針指向地址里的內容,指針不變,其他用戶通過指針總能感知索引結點中的最新內容
索引結點中增加count計數
主人刪除操作問題:
刪,共享用戶訪問錯誤;不刪,計費問題。
符號鏈法:
創建一個link類型的文件:“文件名+共享文件路徑”(類似快捷方式)
文件主人刪除文件,共享者只會出現找不到文件錯誤。不會發生共享文件刪除后出現懸空指針的情況。
該方法適用於網絡文件共享,但根據路徑檢索共享文件的目標位置增加了訪問開銷,link文件獨占索引結點也耗費一定的空間。
無論哪種共享,鏈接就對應一個文件,如果遍歷復制整個目錄內的文件,可能會從多條路徑對共享文件進行多次訪問
2:磁盤容錯:
SFT:
(1) 磁盤表面故障
(2)磁盤驅動器、控制器故障