簡介
為了方便用戶的使用,對於一些當前需要使用的系統檔案和用戶
檔案,都必須放在可隨機存取的磁碟上。在多用戶環境下,若由用戶自己對檔案的存儲進行管理,不僅非常困難,而且也必然是十分低效的。因而,需要由檔案系統對諸多檔案及檔案的存儲空間實施統一的管理。其主要任務是為每個檔案分配必要的外存空間,提高外存的利用率,並能有助於提高檔案系統的存、取速度。
檔案目錄管理程式是作業系統中用於檢索、管理和存取目錄的程式。主要目的有:為了使用戶能方便地在外存上找到自己所需的檔案;為每個檔案建立其目錄項,並對眾多的目錄項加以有效的組織,以實現方便的按名存取,即用戶只須提供檔案名稱便可對該檔案進行存取。目錄管理還應能實現檔案共享,這樣,只須在外存上保留一份該已分享檔案的副本。此外,還應能提供快速的目錄查詢手段,以提高對檔案的檢索速度。
目錄管理
為了能有效地管理大量檔案,必須對它們加以妥善的組織。這主要依賴於檔案目錄來實現。或者說,檔案目錄具有將檔案名稱轉換為該檔案在外存的物理位置的功能,這也正是檔案目錄提供的最基本的功能。對檔案目錄的管理有以下要求:
(1) 實現“按名存取” ,即用戶只須向系統提供所需訪問檔案的名字,便能快速準確地找到指定檔案在外存上的存儲位置。這是目錄管理中最基本的功能,也是檔案系統向用戶提供的最基本的服務。
(2) 提高對目錄的檢索速度。通過合理地組織目錄結構的方法,可加快對目錄的檢索速度,從而提高對檔案的
存取速度。這是在設計一個大、中型檔案系統時所追求的主要目標。
(3)
檔案共享。在多用戶系統中,應允許多個用戶共享一個檔案。這樣就須在外存中只保留一份該檔案的副本,供不同用戶使用,以節省大量的存儲空間,並方便用戶和提高檔案利用率。
(4) 允許檔案重名。系統應允許不同用戶對不同檔案採用相同的名字,以便於用戶按照自己的習慣給檔案命名和使用檔案。
目錄結構
目錄結構的組織,關係到檔案系統的
存取速度,也關係到檔案的共享性和安全性。因此,組織好檔案的目錄,是設計好檔案系統的重要環節。目前常用的目錄結構形式有單級目錄、兩級目錄和多級目錄。
單級目錄結構
這是最簡單的目錄結構。在整個檔案系統中只建立一張目錄表,每個檔案占一個目錄項,目錄項中含檔案名稱、
檔案擴展名、檔案長度、檔案類型、檔案物理地址以及其它檔案屬性。此外,為表明每個目錄項是否空閒,又設定了一個狀態位。
單級目錄的優點是簡單且能實現目錄管理的基本功能——按名存取,但卻存在下述一些缺點:
(1) 查找速度慢。對於稍具規模的檔案系統,會擁有數目可觀的目錄項,致使為找到一個指定的目錄項要花費較多的時間。對於一個具有 N 個目錄項的單級目錄,為檢索出一個目錄項,平均需查找 N/2 個目錄項。
(2) 不允許重名。在一個目錄表中的所有檔案,都不能與另一個檔案有相同的名字。然而,重名問題在多道程式環境下卻又是難以避免的;即使在單用戶環境下,當檔案數超過數百個時,也難於記憶。
(3) 不便於實現檔案共享。通常,每個用戶都有自己的名字空間或命名習慣。因此,應當允許不同用戶使用不同的檔案名稱來訪問同一個檔案。然而,單級目錄卻要求所有用戶都用同一個名字來訪問同一檔案。簡言之,單級目錄只能滿足對目錄管理的四點要求中的第一點, 因而,它只能適用於單用戶環境。
兩級目錄結構
為了克服單級目錄結構的缺點,可為每用戶建立一個單獨的用戶檔案目錄UFD(User FileDirectory),它由用戶所有檔案的檔案控制塊組成。再在系統中建立一個主檔案目錄MFD(Master File Directory);在主檔案目錄中,每個用戶檔案目錄都占有一個目錄項;其目錄項中包括用戶名和指向 該用戶目錄檔案的指針。
兩級目錄結構基本上克服了單級目錄的缺點,並具有以下優點:提高了檢索目錄的速度;在不同的用戶目錄中,可使用相同的檔案名稱,只 要在用戶自己的UFD中其檔案名稱都是唯一的;不同用戶可使用不同檔案名稱來訪問系統中的同一個已分享檔案。
多級目錄結構
對於大型檔案系統,通常採用三級或三級以上的目錄結構,以提高對目錄的檢索速度和檔案系統的性能。多級目錄結構又稱為樹型目錄結構,主目錄在這裡被稱為根目錄,把數據檔案稱為樹葉,其它的目錄均作為樹的結點。樹型目錄具有檢索效率高、允許重名、便於實現檔案共享等一系列優點。主目錄在樹型目錄結構中,作為樹的根結點,稱為根結點。數據檔案作為樹葉,其它所有目錄均作為樹的結點。