資源簡介 The Best R&D Courses文件管理 7.1 文件和文件系統(tǒng) 文件系統(tǒng)的管理功能是將其管理的程序和數(shù)據(jù)通過組織為一系列文件的方式實現(xiàn)的。而文件則是指具有文件名的若干相關元素的集合。元素通常是記錄,而記錄又是一組有意義的數(shù)據(jù)項的集合。可見,基于文件系統(tǒng)的概念,可以把數(shù)據(jù)組成分為數(shù)據(jù)項、記錄和文件三級。The Best R&D Courses文件管理7.1.1 數(shù)據(jù)項、記錄和文件 1. 數(shù)據(jù)項 在文件系統(tǒng)中,數(shù)據(jù)項是最低級的數(shù)據(jù)組織形式,可把它分成以下兩種類型: (1) 基本數(shù)據(jù)項。 (2) 組合數(shù)據(jù)項。The Best R&D Courses文件管理 2. 記錄 記錄是一組相關數(shù)據(jù)項的集合,用于描述一個對象在某方面的屬性。一個記錄應包含哪些數(shù)據(jù)項,取決于需要描述對象的哪個方面。由于對象所處的環(huán)境不同可把他作為不同的對象。The Best R&D Courses文件管理 3. 文件 文件是指由創(chuàng)建者所定義的、具有文件名的一組相關元素的集合,可分為有結構文件和無結構文件兩種。The Best R&D Courses文件管理圖7-1 文件、記錄和數(shù)據(jù)項之間的層次關系The Best R&D Courses文件管理7.1.2 文件名和類型 1. 文件名和擴展名 (1) 文件名。 (2) 擴展名。The Best R&D Courses文件管理 2. 文件類型 1) 按用途分類 根據(jù)文件的性質和用途的不同,可將文件分為三類: (1) 系統(tǒng)文件,這是指由系統(tǒng)軟件構成的文件。大多數(shù)的系統(tǒng)文件只允許用戶調用,但不允許用戶去讀,更不允許修改;有的系統(tǒng)文件不直接對用戶開放。 (2) 用戶文件,指由用戶的源代碼、目標文件、可執(zhí)行文件或數(shù)據(jù)等所構成的文件。用戶將這些文件委托給系統(tǒng)保管。 (3) 庫文件,這是由標準子例程及常用的例程等所構成的文件。這類文件允許用戶調用,但不允許修改。The Best R&D Courses文件管理 2) 按文件中數(shù)據(jù)的形式分類 按這種方式分類,也可把文件分為三類: (1) 源文件,這是指由源程序和數(shù)據(jù)構成的文件。通常,由終端或輸入設備輸入的源程序和數(shù)據(jù)所形成的文件都屬于源文件。它通常是由ASCII碼或漢字所組成的。 (2) 目標文件,這是指把源程序經過編譯程序編譯過,但尚未經過鏈接程序鏈接的目標代碼所構成的文件。目標文件所使用的后綴名是“.obj”。 (3) 可執(zhí)行文件,這是指把編譯后所產生的目標代碼經過鏈接程序鏈接后所形成的文件。其后綴名是 .exe。The Best R&D Courses文件管理 3) 按存取控制屬性分類 根據(jù)系統(tǒng)管理員或用戶所規(guī)定的存取控制屬性,可將文件分為三類: (1) 只執(zhí)行文件,該類文件只允許被核準的用戶調用執(zhí)行,不允許讀和寫。 (2) 只讀文件,該類文件只允許文件主及被核準的用戶去讀,不允許寫。 (3) 讀寫文件,這是指允許文件主和被核準的用戶去讀或寫的文件。The Best R&D Courses文件管理 4) 按組織形式和處理方式分類 根據(jù)文件的組織形式和系統(tǒng)對其處理方式的不同,可將文件分為三類: (1) 普通文件。 (2) 目錄文件。 (3) 特殊文件。The Best R&D Courses文件管理7.1.3 文件系統(tǒng)的層次結構 如圖7-2所示,文件系統(tǒng)的模型可分為三個層次:最底層是對象及其屬性,中間層是對對象進行操縱和管理的軟件集合,最高層是文件系統(tǒng)提供給用戶的接口。The Best R&D Courses文件管理圖7-2 文件系統(tǒng)模型The Best R&D Courses文件管理 1. 對象及其屬性 文件管理系統(tǒng)管理的對象如下: (1) 文件。 (2) 目錄。 (3) 磁盤(磁帶)存儲空間。The Best R&D Courses文件管理 2. 對對象操縱和管理的軟件集合 該層是文件管理系統(tǒng)的核心部分。文件系統(tǒng)的功能大多是在這一層實現(xiàn)的,其中包括有:① 對文件存儲空間的管理;② 對文件目錄的管理;③ 用于將文件的邏輯地址轉換為物理地址的機制;④ 對文件讀和寫的管理;⑤ 對文件的共享與保護等功能。在實現(xiàn)這些功能時,OS通常都采取了層次組織結構,即在每一層中都包含了一定的功能,處于某個層次的軟件,只能調用同層或更低層次中的功能模塊。The Best R&D Courses文件管理 3. 文件系統(tǒng)的接口 為方便用戶的使用,文件系統(tǒng)以接口的形式提供了一組對文件和記錄操作的方法和手段。通常是下面兩種類型的接口: (1) 命令接口,是指作為用戶與文件系統(tǒng)直接交互的接口,用戶可通過鍵盤終端鍵入命令取得文件系統(tǒng)的服務。 (2) 程序接口,是指作為用戶程序與文件系統(tǒng)的接口,用戶程序可通過系統(tǒng)調用取得文件系統(tǒng)的服務,例如,用于創(chuàng)建文件的系統(tǒng)調用Creat,用于打開一個文件的系統(tǒng)調用Open等。The Best R&D Courses文件管理7.1.4 文件操作 1. 最基本的文件操作 最基本的文件操作包含下述內容: (1) 創(chuàng)建文件。 (2) 刪除文件。 (3) 讀文件。 (4) 寫文件。 (5) 設置文件的讀/寫位置。The Best R&D Courses文件管理 2. 文件的“打開”和“關閉”操作 當用戶要求對一個文件實施多次讀/寫或其它操作時,每次都要從檢索目錄開始。為了避免多次重復地檢索目錄,在大多數(shù)OS中都引入了“打開”(open)這一文件系統(tǒng)調用,當用戶第一次請求對某文件進行操作時,須先利用open系統(tǒng)調用將該文件打開。 The Best R&D Courses文件管理 3. 其它文件操作 OS為用戶都提供了一系列文件操作的系統(tǒng)調用,其中最常用的一類是有關對文件屬性的操作,即允許用戶直接設置和獲得文件的屬性,如改變已存文件的文件名、改變文件的擁有者(文件主)、改變對文件的訪問權,以及查詢文件的狀態(tài)(包括文件類型、大小和擁有者以及對文件的訪問權等)。另一類是有關目錄的操作,如創(chuàng)建一個目錄,刪除一個目錄,改變當前目錄和工作目錄等。此外,還有用于實現(xiàn)文件共享的系統(tǒng)調用,以及用于對文件系統(tǒng)進行操作的系統(tǒng)調用等。The Best R&D Courses文件管理 7.2 文件的邏輯結構 (1) 文件的邏輯結構(File Logical Structure)。 (2) 文件的物理結構,又稱為文件的存儲結構。The Best R&D Courses文件管理7.2.1 文件邏輯結構的類型 對文件邏輯結構所提出的基本要求,首先是有助于提高對文件的檢索速度,即在將大批記錄組成文件時,應采用一種有利于提高檢索記錄速度和效率的邏輯結構形式。其次是該結構應方便對文件進行修改,即便于在文件中增加、刪除和修改一個或多個記錄。第三是降低文件存放在外存上的存儲費用,即盡量減少文件占用的存儲空間,不要求大片的連續(xù)存儲空間。The Best R&D Courses文件管理 1. 按文件是否有結構分類 1) 有結構文件 (1) 定長記錄。 (2) 變長記錄。The Best R&D Courses文件管理 2) 無結構文件 如果說在大量的信息管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)中,廣泛采用了有結構的文件形式的話(即文件是由定長或變長記錄構成的),那么在系統(tǒng)中運行的大量的源程序、可執(zhí)行文件、庫函數(shù)等,所采用的就是無結構的文件形式,即流式文件。其文件的長度是以字節(jié)為單位的。對流式文件的訪問,則是利用讀、寫指針來指出下一個要訪問的字符。可以把流式文件看做是記錄式文件的一個特例:一個記錄僅有一個字節(jié)。The Best R&D Courses文件管理 2. 按文件的組織方式分類 根據(jù)文件的組織方式,可把有結構文件分為三類: (1) 順序文件。 (2) 索引文件。 (3) 索引順序文件。The Best R&D Courses文件管理7.2.2 順序文件(Sequential File) 1. 順序文件的排列方式 在順序文件中的記錄,可以按照各種不同的順序進行排列。一般地,可分為兩種情況: (1) 串結構。 (2) 順序結構。The Best R&D Courses文件管理 2. 順序文件的優(yōu)缺點 順序文件的最佳應用場合是在對文件中的記錄進行批量存取時(即每次要讀或寫一大批記錄)。所有邏輯文件中順序文件的存取效率是最高的。此外,對于順序存儲設備(如磁帶),也只有順序文件才能被存儲并能有效地工作。The Best R&D Courses文件管理7.2.3 記錄尋址 1. 隱式尋址方式 對于定長記錄的順序文件,如果已知當前記錄的邏輯地址,便很容易確定下一個記錄的邏輯地址。The Best R&D Courses文件管理 2. 顯式尋址方式 該方式可用于對定長記錄的文件實現(xiàn)直接或隨機訪問。因為任何記錄的位置都很容易通過記錄長度計算出來。而對于可變長度記錄的文件則不能利用顯式尋址方式實現(xiàn)直接或隨機訪問,必須增加適當?shù)闹С謾C構方能實現(xiàn)。下面我們通過兩種方式對定長記錄實現(xiàn)隨機訪問: (1) 通過文件中記錄的位置。 (2) 利用關鍵字。The Best R&D Courses文件管理7.2.4 索引文件(Index File) 1. 按關鍵字建立索引 定長記錄的文件可以通過簡單的計算,很容易地實現(xiàn)隨機查找。但變長記錄文件查找一個記錄必須從第一個記錄查起,一直順序查找到目標記錄為止,耗時很長。The Best R&D Courses文件管理The Best R&D Courses文件管理 2. 具有多個索引表的索引文件 使用按關鍵字建立索引表的索引文件與順序文件一樣,都只能按該關鍵字進行檢索。而實際應用情況往往是:不同的用戶,為了不同的目的,希望能按不同的屬性(或不同的關鍵字)來檢索一條記錄。為實現(xiàn)此要求,需要為順序文件建立多個索引表,即為每一種可能成為檢索條件的域(屬性或關鍵字)都配置一張索引表。在每一個索引表中,都按相應的一種屬性或關鍵字進行排序。The Best R&D Courses文件管理7.2.5 索引順序文件 (Index Sequential File) 1. 索引順序文件的特征 索引順序文件是對順序文件的一種改進,它基本上克服了變長記錄的順序文件不能隨機訪問,以及不便于記錄的刪除和插入的缺點。但它仍保留了順序文件的關鍵特征,即記錄是按關鍵字的順序組織起來的。它又增加了兩個新特征:一個是引入了文件索引表,通過該表可以實現(xiàn)對索引順序文件的隨機訪問;另一個是增加了溢出(overflow)文件,用它來記錄新增加的、刪除的和修改的記錄。The Best R&D Courses文件管理 2. 一級索引順序文件 最簡單的索引順序文件只使用了一級索引。其具體的建立方法是,首先將變長記錄順序文件中的所有記錄分為若干個組,如50個記錄為一個組。然后為順序文件建立一張索引表,并為每組中的第一個記錄在索引表中建立一個索引項,其中含有該記錄的關鍵字和指向該記錄的指針。索引順序文件是最常見的一種邏輯文件形式,如圖7-5所示。The Best R&D Courses文件管理圖7-5 索引順序文件The Best R&D Courses文件管理 3. 兩級索引順序文件? 對于一個非常大的文件,為找到一個記錄而須查找的記錄數(shù)目仍然很多,例如,對于一個含有106個記錄的順序文件,當把它作為索引順序文件時,為找到一個記錄,平均須查找1000個記錄。為了進一步提高檢索效率,可以為順序文件建立多級索引,即為索引文件再建立一張索引表,從而形成兩級索引表。The Best R&D Courses文件管理7.2.6 直接文件和哈希文件 1. 直接文件 采用前述幾種文件結構對記錄進行存取時,都須利用給定的記錄鍵值,先對線性表或鏈表進行檢索,以找到指定記錄的物理地址。然而對于直接文件,則可根據(jù)給定的關鍵字直接獲得指定記錄的物理地址。換而言之,關鍵字本身就決定了記錄的物理地址。The Best R&D Courses文件管理 2. 哈希(Hash)文件 這是目前應用最為廣泛的一種直接文件。它利用Hash函數(shù)(或稱散列函數(shù))可將關鍵字轉換為相應記錄的地址。但為了能實現(xiàn)文件存儲空間的動態(tài)分配,通常由Hash函數(shù)所求得的并非是相應記錄的地址,而是指向某一目錄表相應表目的指針,該表目的內容指向相應記錄所在的物理塊,如圖7-6所示。The Best R&D Courses文件管理圖7-6 Hash文件的邏輯結構The Best R&D Courses文件管理 7.3 文 件 目 錄 (1) 實現(xiàn)“按名存取”。 (2) 提高對目錄的檢索速度。 (3) 文件共享。 (4) 允許文件重名。The Best R&D Courses文件管理7.3.1 文件控制塊和索引結點 1. 文件控制塊FCB(File Control Block) 為了能對系統(tǒng)中的大量文件施以有效的管理,在文件控制塊中,通常應含有三類信息,即基本信息、存取控制信息及使用信息。The Best R&D Courses文件管理 1) 基本信息類 基本信息類包括: (1) 文件名。 (2) 文件物理位置。 (3) 文件邏輯結構。 (4) 文件的物理結構。The Best R&D Courses文件管理 2) 存取控制信息類 存取控制信息類包括文件主的存取權限、核準用戶的存取權限以及一般用戶的存取權限。The Best R&D Courses文件管理 3) 使用信息類 使用信息類包括文件的建立日期和時間、文件上一次修改的日期和時間,以及當前使用信息。這些信息包括當前已打開該文件的進程數(shù),是否被其它進程鎖住,文件在內存中是否已被修改但尚未拷貝到盤上等。應該說明,對于不同OS的文件系統(tǒng),由于功能不同,可能只含有上述信息中的某些部分。The Best R&D Courses文件管理圖7-7 MS-DOS的文件控制塊The Best R&D Courses文件管理 2. 索引結點 1) 索引結點的引入 文件目錄通常是存放在磁盤上的,當文件很多時,文件目錄可能要占用大量的盤塊。在查找目錄的過程中,必須先將存放目錄文件的第一個盤塊中的目錄調入內存,然后將用戶所給定的文件名,與目錄項中的文件名逐一比較。若未找到指定文件,還需要將下一盤塊的目錄項調入內存。The Best R&D Courses文件管理圖7-8 UNIX的文件目錄The Best R&D Courses文件管理 2) 磁盤索引結點 這是存放在磁盤上的索引結點。每個文件有唯一的一個磁盤索引結點,它主要包括以下內容: (1) 文件主標識符,即擁有該文件的個人或小組的標識符; (2) 文件類型,包括正規(guī)文件、目錄文件或特別文件; (3) 文件存取權限,指各類用戶對該文件的存取權限; (4) 文件物理地址,每一個索引結點中含有13個地址項,即iaddr(0)~iaddr(12),它們以直接或間接方式給出數(shù)據(jù)文件所在盤塊的編號;The Best R&D Courses文件管理 (5) 文件長度,指以字節(jié)為單位的文件長度; (6) 文件連接計數(shù),表明在本文件系統(tǒng)中所有指向該(文件的)文件名的指針計數(shù); (7) 文件存取時間,指出本文件最近被進程存取的時間、最近被修改的時間及索引結點最近被修改的時間。The Best R&D Courses文件管理 3) 內存索引結點 這是存放在內存中的索引結點。當文件被打開時,要將磁盤索引結點拷貝到內存的索引結點中,便于以后使用。在內存索引結點中又增加了以下內容: (1) 索引結點編號,用于標識內存索引結點; (2) 狀態(tài),指示i結點是否上鎖或被修改; (3) 訪問計數(shù),每當有一進程要訪問此i結點時,將該訪問計數(shù)加1,訪問完再減1; (4) 文件所屬文件系統(tǒng)的邏輯設備號; (5) 鏈接指針,設置有分別指向空閑鏈表和散列隊列的指針。The Best R&D Courses文件管理7.3.2 簡單的文件目錄 1. 單級文件目錄 這是最簡單的文件目錄。在整個文件系統(tǒng)中只建立一張目錄表,每個文件占一個目錄項,目錄項中含文件名、文件擴展名、文件長度、文件類型、文件物理地址以及其它文件屬性。此外,為表明每個目錄項是否空閑,又設置了一個狀態(tài)位。單級文件目錄如圖7-9所示。The Best R&D Courses文件管理圖7-9 單級文件目錄The Best R&D Courses文件管理 2. 兩級文件目錄 為了克服單級文件目錄所存在的缺點,可以為每一個用戶再建立一個單獨的用戶文件目錄UFD(User File Directory)。這些文件目錄具有相似的結構,它由用戶所有文件的文件控制塊組成。此外,在系統(tǒng)中再建立一個主文件目錄MFD(Master File Directory);在主文件目錄中,每個用戶目錄文件都占有一個目錄項,其目錄項中包括用戶名和指向該用戶目錄文件的指針。The Best R&D Courses文件管理圖7-10 兩級文件目錄The Best R&D Courses文件管理7.3.3 樹形結構目錄(Tree-Structured Directory) 1. 樹形目錄 在現(xiàn)代OS中,最通用且實用的文件目錄無疑是樹形結構目錄。它可以明顯地提高對目錄的檢索速度和文件系統(tǒng)的性能。主目錄在這里被稱為根目錄,在每個文件目錄中,只能有一個根目錄,每個文件和每個目錄都只能有一個父目錄。把數(shù)據(jù)文件稱為樹葉,其它的目錄均作為樹的結點,或稱為子目錄。圖7-11示出了樹形結構目錄。The Best R&D Courses文件管理圖7-11 多級目錄結構The Best R&D Courses文件管理 7.4 文 件 共 享 在現(xiàn)代計算機系統(tǒng)中,必須提供文件共享手段,即指系統(tǒng)應允許多個用戶(進程)共享同一份文件。這樣,在系統(tǒng)中只需保留該共享文件的一份副本。如果系統(tǒng)不能提供文件共享功能,就意味著凡是需要該文件的用戶,都須各自備有此文件的副本,顯然這會造成對存儲空間的極大浪費。The Best R&D Courses文件管理7.4.1 基于有向無循環(huán)圖實現(xiàn)文件共享 1. 有向無循環(huán)圖DAG(Directed Acyclic Graph) 在嚴格的樹形結構目錄中,每個文件只允許有一個父目錄,父目錄可以有效地擁有該文件,其它用戶要想訪問它,必須經過其屬主目錄來訪問該文件。這就是說,對文件的共享是不對稱的,或者說,樹形結構目錄是不適合文件共享的。如果允許一個文件可以有多個父目錄,即有多個屬于不同用戶的多個目錄,同時指向同一個文件,這樣雖會破壞樹的特性,但這些用戶可用對稱的方式實現(xiàn)文件共享,而不必再通過其屬主目錄來訪問。The Best R&D Courses文件管理圖7-13 有向無循環(huán)圖目錄層次The Best R&D Courses文件管理 2. 利用索引結點 為了解決這個問題,可以引用索引結點,即諸如文件的物理地址及其它的文件屬性等信息,不再是放在目錄項中,而是放在索引結點中。在文件目錄中只設置文件名及指向相應索引結點的指針,如圖7-14所示。The Best R&D Courses文件管理圖7-14 基于索引結點的共享方式The Best R&D Courses文件管理7.4.2 利用符號鏈接實現(xiàn)文件共享 1. 利用符號鏈接(Symbolic Linking)的基本思想 利用符號鏈接實現(xiàn)文件共享的基本思想,是允許一個文件或子目錄有多個父目錄,但其中僅有一個作為主(屬主)父目錄,其它的幾個父目錄都是通過符號鏈接方式與之相鏈接的(簡稱鏈接父目錄)。The Best R&D Courses文件管理2. 利用符號鏈實現(xiàn)共享的優(yōu)點 在利用符號鏈方式實現(xiàn)文件共享時,只是文件主才擁有指向其索引結點的指針;而共享該文件的其他用戶則只有該文件的路徑名,并不擁有指向其索引結點的指針。這樣,也就不會發(fā)生在文件主刪除一共享文件后留下一懸空指針的情況。當文件的擁有者把一個共享文件刪除后,如果其他用戶又試圖通過符號鏈去訪問一個已被刪除的共享文件,則會因系統(tǒng)找不到該文件而使訪問失敗,于是再將符號鏈刪除,此時不會產生任何影響。The Best R&D Courses文件管理 3. 利用符號鏈的共享方式存在的問題 利用符號鏈的共享方式也存在著一些問題:當其他用戶去讀共享文件時,系統(tǒng)是根據(jù)給定的文件路徑名逐個分量(名)地去查找目錄,直至找到該文件的索引結點。因此,在每次訪問共享文件時,都可能要多次地讀盤。這使每次訪問文件的開銷甚大,且增加了啟動磁盤的頻率。此外,要為每個共享用戶建立一條符號鏈,而由于鏈本身實際上是一個文件,盡管該文件非常簡單,卻仍要為它配置一個索引結點,這也要耗費一定的磁盤空間。The Best R&D CoursesThe Best R&D Courses 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫