天天看點

作業系統複習(十六)——檔案管理

檔案和檔案系統

檔案屬性包括:檔案類型,檔案長度,檔案的實體位置與建立時間。

資料項有基本資料項與組合資料項。

記錄是一組相關資料項的集合,用于描述一個對象在某方面的屬性。

檔案名與擴充名,檔案名是檔案的名稱,擴充名又稱字尾名,用于訓示檔案的類型。

檔案類型按不同方式分類:

  1. 按用途:系統檔案,使用者檔案,庫檔案。
  2. 按檔案中資料形式:源檔案,目标檔案,可執行檔案。
  3. 按存取控制屬性:隻執行檔案,隻讀檔案,讀寫檔案。
  4. 按組織形式和處理方式:普通檔案,目錄檔案,特殊檔案。

檔案系統分層(一般把與檔案相關的軟體分為四個層次):

  1. I/O控制層
  2. 基本檔案系統層
  3. 基本I/O管理程式
  4. 邏輯檔案系統

檔案系統接口包含指令接口與程式接口。

檔案操作有:建立、删除、讀、寫、設定檔案的讀寫位置、打開、關閉等操作。

檔案的邏輯結構

按檔案組織方式:順序檔案,索引檔案,索引順序檔案,還有直接檔案與哈希檔案。

順序結構:

  • 優點:對檔案中的記錄進行批量存取使,所有的邏輯檔案中順序檔案的存取效率是最高的。
  • 缺點:互動應用場合,使用者要求查找或修改單個記錄時,系統需要在檔案的記錄中逐個查找,效率很差。如果想增加或删除一個記錄也比較困難。

索引檔案: 按照關鍵字建立索引,可進行折半查找。

  • 優點:将需要順序查找的檔案改造成一個可随機查找的檔案,極大提高了對檔案的查找速度。

索引順序檔案: 引入了文建索引表,通過該表可以實作對索引順序檔案的随機通路。又引入了溢出檔案,用它記錄新增加的、删除的和修改的記錄。

直接檔案: 直接檔案,則根據給定的記錄鍵值,直接獲得指定記錄的實體位址,換言之,記錄鍵值本身就決定了記錄的實體位址,這種由記錄鍵值到記錄實體位址的轉換被稱為鍵值轉換。

哈希檔案: 利用Hash函數可将記錄鍵值轉換為相應記錄的位址,為了能實作檔案存儲空間的動态配置設定,通常由Hash函數所求得的并非是相應記錄的位址,而是指向一目錄表相應表目的指針,該表目的内容指向相應記錄所在的實體塊。

檔案目錄

為了能夠對檔案實施有效的管理,必須對它們加以妥善組織,這主要是通過檔案目錄實作的,檔案目錄也是一種資料結構,用于辨別系統中的檔案及其實體位址,供檢索時使用,對目錄的管理要求如下:

  ① 實作按名存取,即使用者隻須向系統提供所需通路的檔案的名字,便能夠快速準确地找到指定檔案在外存上的存儲位置,這是目錄管理中最基本的功能。

  ② 提高對目錄檢索速度,通過合理地組織目錄結構的方法,可加快對目錄的檢索速度,進而提高對檔案的存取速度。

  ③ 檔案共享,在多使用者系統中,應該允許使用者共享一個檔案。

  ④ 允許檔案重名,系統應允許不同使用者對不同檔案采用相同的名字,以便使用者按照自己的習慣給檔案命名和使用檔案。

1.檔案控制塊

為了能對檔案進行正确的存取,必須為檔案設定用于描述和控制檔案的資料結構,稱之為檔案控制塊FCB,檔案管理程式可借助于檔案控制塊中的資訊,對檔案施加各種操作,檔案與檔案控制塊一一對應,而人們把檔案控制塊的有序集合稱為檔案目錄,一個檔案控制塊就是一個檔案目錄項。通常,一個檔案目錄也可被看成是一個檔案,稱為目錄檔案。

檔案控制塊包含基本資訊、存取控制資訊、使用資訊。

  ① 基本資訊,包括檔案名(辨別一個檔案的符号名,在每個系統中,每個檔案都有唯一的名字,使用者利用該名字進行存取);檔案實體位置(指檔案在外存上的存儲位置,包括存放檔案的裝置名、檔案在外村上的起始盤塊号、訓示檔案所占用的盤塊數或位元組數的檔案長度);檔案邏輯結構(訓示檔案是流式檔案還是記錄式檔案、記錄數,檔案是定長還是變長記錄);檔案實體結構(訓示檔案是順序檔案、鍊式檔案還是索引檔案)

  ② 存取控制資訊,包括檔案主的存取權限、核準使用者的存取權限及一般使用者的存取權限。

  ③ 使用資訊,包括檔案的建立日期和時間、檔案上一次修改的日期和時間及目前使用資訊(這項資訊包括目前已打開該檔案的程序數、是否被其他程序鎖住、檔案在記憶體中是否已被修改但尚未拷貝到盤上)

2.檔案目錄的組織:

一級檔案目錄,隻能實作最基本的按名存取功能、

二級檔案目錄,基本上能滿足對檔案目錄的四方面要求。提高了檢索目錄的速度(如果在主目錄中有n個子目錄,每個使用者目錄最多為m個目錄項,則為查找一指定的目錄項,最多隻需要檢索n+m個目錄項)。在不同的使用者目錄中,可以使用相同的檔案名(隻要在使用者自己的UFD中,每個檔案名都是唯一的,不同使用者可以有檔案名相同的檔案)。不同使用者還可使用不同的檔案名來通路系統中同一個共享檔案。但在多個使用者需要合作完成一個大任務時,不便于使用者之間共享檔案。

樹形結構目錄,最通用且實用的檔案目錄結構,主目錄被稱為根目錄,把資料檔案稱為樹葉,其他的目錄均作為樹的結點。

3.目錄查詢技術:

  當使用者要通路一個已存在的檔案時,系統首先利用使用者提供的檔案名對目錄進行查詢,找出該檔案的檔案控制塊或對應索引結點,然後,根據FCB或索引結點中所記錄的檔案實體位址(盤塊号),換算出檔案在磁盤上的實體位置,最後,再通過磁盤驅動程式,将所需檔案讀入記憶體。目前常用的方式有線性檢索法和Hash方法。

① 線性檢索法,其又稱為順序檢索法,在樹形目錄中,使用者提供的檔案名是由多個檔案分量名組成的路徑名,此時須對多級目錄進行查找,假定使用者給定的檔案路徑名為/usr/ast/mbox,則查找過程如下。

  1. 讀入第一個檔案分量名usr,用它與根目錄檔案(或目前目錄檔案)中各目錄項中的檔案名順序地進行比較
  2. 得到比對項的索引結點号是6
  3. 從6号索引結點中得到usr目錄檔案放在132号盤塊中,将該盤塊内容讀入記憶體
  4. 再将路徑名中的第二個分量名ast讀入,用它與放在132号盤塊中的第二級目錄檔案中各目錄項的檔案名順序進行比較
  5. 依次類推

② Hash方法,系統利用使用者提供的檔案名并将它轉換為檔案目錄的索引值,再利用該索引值到目錄中去查找,這将提高檢索速度。

繼續閱讀