《Linux操作系統原理分析之文件管理(1)》(22)
- 7 文件管理
- 7.1 文件與文件系統
- 7.1.1 文件
- 7.1.3 文件系統及其功能
- 7.2 文件的組織結構
- 7.2.1 文件的邏輯結構
- 7.2.2 文件的物理結構
- 一、順序結構(順序文件或連續文件)
- 二、鏈接結構(鏈接文件或串聯文件)
- 三、索引結構(索引文件)
7 文件管理
7.1 文件與文件系統
7.1.1 文件
文件:具有文件名的一組信息組合,包括兩部分:
文件體:文件本身的信息;
文件說明:文件存儲和管理信息;如:文件名、文件內部標識、文件存儲地址、訪問權限、訪問時間等;
7.1.2 文件的種類
文件系統在管理文件時還要識別和區分文件的類型,如果是文件系統所確認的文件類型,則可根據類型對文件進行合理的操作。
(1)按用途分類
系統文件、庫文件和用戶文件。
(2)按保護級別分類
根據限定的使用文件的權限:執行文件、只讀文件和讀寫文件等。
(3)按信息流向分類
物理設備的特性決定了文件信息的流向:輸入文件、輸出文件和輸入輸出文件。
(4)按文件的性質分類
根據文件的性質分:普通文件、目錄文件、設備文件等。
(5)按文件的組織結構分類
由用戶組織的文件稱邏輯文件:流式文件和記錄式文件。
文件在存儲介質上的組織方式稱文件的物理結構(物理文件):順序文件、鏈接文件和索引文件等。
7.1.3 文件系統及其功能
- 文件系統:操作系統中管理文件的機構,提供文件存儲、提供文件在外存中的組織方式,以及文件訪
問控制等功能。文件系統的三個部分:管理軟件、被管理軟件、相關的數據結構 - 文件系統的功能 :
(1)目錄管理
文件目錄是實現按名存取的一種手段。 建立一個新文件,應把與該文件有關的一些屬性登記在文件目錄中;
讀一個文件,應從文件目錄中查找指定文件是否存在并核對是否有權使用。
一個好的目錄結構應既能方便檢索,又能保證文件的安全。
(2)文件的組織
用戶按信息的使用和處理方式組織文件,稱為文件的邏輯結構或稱為邏輯文件。把邏輯文件保存到存儲介質上的工作由文件系統來做,這樣可減輕用戶的負擔。根據用戶對文件的存取方式和存儲介質的特性,文件在存儲介質上可以有多種組織形式。把文件在存儲介質上的組織方式稱為文件的物理結構或稱為物理文件。因此,當用戶要求保存文件時,文件系統必須把邏輯文件轉換成物理文件,而當用戶要求讀文件時,文件系統又要把物理文件轉換成邏輯文件。
(3)文件存儲空間的管理
要把文件保存到存儲介質上時,必須記住哪些存儲空間已被占用,哪些存儲空間是空閑的。文件只能保存到空閑的存儲空間中,否則會破壞已保存的信息。當文件沒有必要再保留而被刪除時,該文件所占的存儲空間應成為空閑空間。
(4)文件操作
為了保證文件系統正確地存儲和檢索文件,規定了在一個文件上可執行的操作,這些可執行的操作統稱為“文件操作”。文件系統提供的基本文件操作有建立文件、打開文件、讀文件、寫文件、關閉文件和刪除文件等。“文件操作”是文件系統提供給用戶使用文件的一組接口,用戶調用“文件操作”提出對文件的操作要求。
(5)文件的共享、保護和保密
在多道程序設計的系統中,有些文件是可以共享的,例如,編譯程序、庫文件等。實現文件共享既節省文件的存放空間,又可減少傳送文件的時間,但必須對文件采取安全保護措施。既要防止有意或無意地破壞文件,又要避免隨意地剽竊文件。
7.2 文件的組織結構
7.2.1 文件的邏輯結構
邏輯結構:它是用戶所觀察到的文件組織形式,是用戶可以直接處理的數據及結構,它獨立于物理特性,又稱為文件組織(file organization)。
分類:
a. 有結構記錄式文件(數據庫):包含若干順序排列的記錄
👉 變長記錄:數據項/字段不同;數據項本身不同。
👉 定長記錄:文件長度=記錄總個數×記錄長。
b. 無結構字符流式文件:文件的信息不組成記錄,文件的長度即為字符總個數。(源程序、文本文件)
7.2.2 文件的物理結構
- 物理結構:文件在外存上的實際的組織形式。
1) 物理塊:以物理塊為基本單位分配和傳輸信息,物理塊大小由存儲設備和 OS 確定。
2) 物理塊大小與邏輯記錄大小之間不一定一致。 - 文件物理結構的幾種形式:1)順序結構件 2)鏈接結構 3)索引結構
一、順序結構(順序文件或連續文件)
一個文件在邏輯上連續的信息被存放到磁盤上依次相鄰的塊上。邏輯記錄順序與磁盤塊的順序相一致。
例:
優點:存取速度快、結構簡單、支持順序存取和隨機存取。
存在的問題:
(1)磁盤存儲空間的利用率不高,容易產生碎片。
(2)對輸出文件很難估計需多少磁盤塊。
(3)影響文件的擴展。
二、鏈接結構(鏈接文件或串聯文件)
基本思想:將文件存放在外存中若干個物理塊中,這些物理塊不必連續。每個物理塊的最后一個單元用作指針,指向下一個物理塊的地址。最后一塊中的指針可用特殊字符(例如“-1”)表示文件到此結束, 從而將同一個文件的物理塊鏈接起來。
優點:解決了順序結構中的所有問題。
磁盤上所有空閑塊都可以被利用;
建立文件時也不必事先考慮文件的長度,文件可繼續擴展;
便于在文件的任何位置插入一個記錄或刪除一個記錄。
缺點:采用隨機存取方式是低效的。文件只能按指針鏈接順序訪問,故存取速度慢;
可靠性問題,如指針出錯。
鏈接指針占用一定的空間。
讀出一塊信息時,應將其中的指針分離出來,保證用戶使用信息的正確性。
三、索引結構(索引文件)
基本思想:為每一個文件建立一張索引表,每一表項記錄文件所在的一個物理塊。
優點:能方便地實現文件的擴展、記錄的插入和刪除。
缺點:必須增加索引表占用的空間和讀寫索引表的時間。索引表的查找策略對文件系統效率影響很大.
索引表的管理:當索引表非常大時,需要多個磁盤塊存放,各磁盤塊之間可用指針鏈起來。當隨機存取某個記錄時,可能要沿鏈搜索才能找到該記錄的存放地址,很費時間。
解決方案:多級索引、混合索引(下例適用 Unix System V)