1. 程式人生 > >[筆記]《作業系統精髓與設計原理》---(7)檔案管理

[筆記]《作業系統精髓與設計原理》---(7)檔案管理

概述

檔案系統架構
這裡寫圖片描述

  • 最底層,裝置驅動程式程式直接與外圍裝置通訊。
  • 基本檔案系統(物理I/O層),處理在磁碟間或磁帶系統間交換的資料塊,關注的是這些塊在輔助儲存和記憶體緩衝區中的位置,不關注資料內容或所涉及的檔案結構。
  • 基本I/O管理,程式負責所有檔案I/O的初始和終止。
  • 邏輯I/O,使使用者和應用程式能夠訪問到記錄。

檔案管理功能
這裡寫圖片描述
檔案管理系統作為1個單獨的系統實用程式,和作業系統關注的是不同方面的內容。關注記錄的處理。

檔案組織和訪問

檔案組織重要原則
• 訪問快速
• 易於修改
• 節約儲存空間
• 維護簡單
• 可靠性

基本組織
• 堆
• 順序檔案
• 索引順序檔案
• 索引檔案
• 直接或者雜湊檔案

堆:按到達順序收集。

順序檔案:每條記錄都使用同一種固定格式。記錄有相同的長度,由相同數目、長度固定的域按特定的順序組成。
關鍵域,通常是每條記錄的第一個域。記錄按關鍵域儲存:文字關鍵域按字母順序,數字按數字順序。

索引順序
保留順序檔案的特徵:記錄按照關鍵域的順序組織起來。
增加特徵:用於支援隨機訪問的檔案索引和溢位檔案。
最簡單的一級索引:

  1. 索引檔案由兩個域組成:關鍵域和指向主檔案的指標,關鍵域和主檔案中的關鍵域相同
  2. 為找一個特定的域,先找索引,關鍵域值等於目標關鍵域(或者位於目標關鍵域之前且最大的索引)
  3. 在該索引的指標所指的主檔案中的位置開始找。

索引檔案
索引順序保留了順序檔案的一個限制:基於檔案的一個域進行處理。當需要基於其他屬性而非關鍵域查詢一條記錄時,這兩種形式的順序檔案都不能勝任。

採用多索引結構,每種可能成為查詢條件的域都有一個索引。放棄順序、關鍵字概念,只能通過索引來訪問記錄。結果是對記錄的放置位置不再有限制,只要至少1個索引指標指向這條記錄就可以。

直接檔案或雜湊檔案
這裡寫圖片描述

B樹

linux虛擬檔案系統

利用虛擬檔案系統(Virtual File System, VFS)來支援大量的檔案管理系統和檔案結構。
這裡寫圖片描述

這裡寫圖片描述

VFS作用:

  1. 程序發起一個面向檔案的系統呼叫時,核心呼叫VFS的函式。
  2. 該函式處理完與具體檔案系統無關的操作後,呼叫目標檔案系統中的相應函式。(通過1個轉換VFS呼叫到目標檔案系統呼叫的對映函式實現)
  3. 目標檔案系統轉換檔案系統請求到面向裝置的指令。

VFS主要4個物件:

  • 超級塊物件(superblock object):代表一個特定的已掛載的檔案系統
  • 索引節點物件(inode object):代表一個特定的檔案
  • 目錄項物件(dentry object):代表一個特定的目錄項
  • 檔案物件(file object):代表一個與程序相關的開啟的檔案。