? ? ? ???
一、文件的相關概念
1、為什么要有文件管理?
文件系統主要是為了方面用戶訪問外部存儲器信息,而不去關注內部存儲的機制,只需要根據文件名就可以高效的存取信息。
2、文件的定義
文件是這一組具有符號名、在邏輯上具有完整意義的一組相關信息項的集合。比如一個文本文件、一個電影等。
信息項是構成文件內容的基本單位,可以是一個字符、一個記錄。
文件的組成:文件名、文件內部標識、文件類型、文件存儲地址、文件長度、訪問限制、創建時間、訪問時間等。
文件是一種抽象機制,它隱藏了硬件和實現細節,提供了將信息保存在磁盤上方便以后讀取的手段。
3、什么是文件系統?
定義:操作系統中實現文件統一管理的一組軟件和相關數據的集合,專門負責管理和存取文件信息的軟件機構。
文件系統功能:按文件名存取、針對不同設備提供文件的統一訪問接口、實現并發訪問和控制、優化文件性能(提高文件存儲效率、提高讀寫性能、差錯恢復等)。
4、文件類型
按照文件性質和用途分類:系統文件、庫文件、用戶文件。
按照信息保存期限:臨時文件、永久文件、檔案文件。
文件保護方式:只讀文件、讀寫文件、可執行文件、普通(不受保護)文件。
Unix系統:普通文件、目錄文件、設備文件。
文件系統類型:FAT、FAT32、NTFS、E系統、HPFS等。
二、文件的結構和組織
文件的結構是指文件的組織形式。主要有邏輯結構、物理結構。
1、文件的邏輯結構
文件的邏輯結構分為兩大類:
結構式記錄式文件:由一個以上的記錄構成的文件。
無結構式流式文件:由一串順序字符流構成的文件。
1.1 有結構的記錄式文件
記錄式文件,所有的記錄通常都是描述一個實體集的,有著相同或者不同數組的數據項,記錄的長度分為定長和不定長。
定長記錄:指文件中所以記錄的長度相同。特點:處理方便、開銷小。是一種常見的記錄格式,廣泛用于數據處理中,
變長記錄:指文件中各記錄的長度不相同。因為很多情況下一個記錄所包含的數據項數組可能不同,比如文字的標題、內容等。
1.2 無結構的流式文件
流式文件的文件體是字節流,不劃分記錄。無結構的流式文件通常采用順序訪問的方式,并且每次讀寫訪問可以指定任意長度,以字節為單位。
2、文件的物理結構
文件的物理結構:指文件內部的組織形式,也就是文件在物理設備上的存放方法。文件的物理結構決定了文件在存儲設備上的存放位置,文件的邏輯塊號到物理塊號的轉換也是由文件的物理結構決定的。
1、連續結構
也稱為順序結構,它將邏輯上連續的文件信息依次存放在連續編號的物理塊上。針對文件記錄的批量存取時,連續結構存取效率最高。如果針對交互應用場合連續結構的性能就會很差。如果文件很大的情況效率會更低。
連續結構的另外一個缺點是不便于記錄的增加和刪除操作。
2、鏈式結構
也稱為串聯結構,它是將邏輯上連續的文件信息存放在不連續的物理塊上,每個物理塊設有下一個指針指向下一個物理塊。如果知道第一個物理塊號就可以查找整個文件。
3、索引結構
將邏輯上連續的文件存放在不連續的物理塊上,系統為每一個文件建立一張索引表。索引表會記錄文件信息所在邏輯塊號對應的物理塊號。
4、多個物理塊的索引表
索引表右文件創建時系統自動創建,并且和文件一起存放在同一個文件卷上。多塊索引表組織形式:鏈式文件、多重索引文件。
UNIX文件系統采用三級索引結構,inode是文件系統的基本構成單位,表示文件系統樹形結構的節點。
UNIX文件索引表項尋址方式:直接尋址、一級間接尋址、二級間接尋址、三級間接尋址。
三、文件目錄
文件控制塊(FCB):包含文件名和存放文件物理地址的數據結構。
文件目錄:文件控制塊的有序集合。
1、文件控制塊
文件控制塊包含基本信息、存儲控制信息、使用信息類。
基本信息類:文件名、文件物理地址、文件長度、文件塊數。
存儲控制信息類:文件存取權限,常見的RWX權限。
使用信息類:文件創建日期、最后一次修改日期、最后一次訪問日期、當前使用的信息(打開文件的進程數、在文件上的等待隊列等)。
2、目錄結構
常見的目錄結構有一級目錄結構、二級目錄結構、多級目錄結構
1、一級目錄結構
整個目錄組織是一個線性結構,整個系統中只需建立一張目錄表,系統給每個文件分配一個目錄項。
特點:結構簡單、查找速度慢,不能重名、不方便實現文件共享,適合當用戶環境中。
2、二級目錄結構、多級目錄結構
二級目錄結構由主文件目錄(MFD)、用戶目錄(UFD)組成。在主文件目錄中,每個用戶文件目錄都占有一個目錄項,器目錄項中包括用戶名和指向該用戶目錄文件的指針。用戶目錄是由用戶所有文件的目錄項組成的。
特點:提高了檢索目錄的速度、較好地解決了重名問題;用戶隔離不方便文件的共享。
3、多級目錄結構
目前多道程序設計系統常采用多級目錄結構,這種目錄結構像一棵倒置的有根樹,也稱為樹形目錄結構每一個節點是目錄,葉子節點是文件。