《操作系統設計與實現》(第三版)第五章 文件系統 重要概念彙總

第五章 文件系統

1. 文件

  一組具有文件名的一組相關信息的集合

2. 文件系統

  對文件進行操縱和管理的軟件集合

3. 目錄

文件管理主要是通過文件目錄實現的。文件目錄也是一種數據結構,用於標識系統中的文件及其物理地址,供檢索時使用。目錄實現的基本方法有線性表和Hash表

功能:

①實現“按名存取”

②提高對目錄的檢索速度

③文件共享

④允許文件重名

4. 文件控制塊(FCB)

用於描述和控制文件的數據結構,便於對文件施以各種操作。文件與控制塊一一對應,文件控制塊的有序集合稱爲文件目錄,即一個文件控制塊就是一個文件目錄項。一個文件目錄也被看作一個文件,稱爲目錄文件。

在文件控制塊中,通常包含以下三類信息:

①基本信息:文件名、文件物理位置、文件邏輯結構、文件物理結構

②存取控制信息類:文件的存取權限、覈准用戶的存取權限以及一般用戶的存取權限

③使用信息類:文件的建立日期和時間、文件上一次修改的日期和時間以及當前使用信息等

5. 路徑

5.1絕對路徑(absolute path name)                                                          

  絕對路徑是指文件在硬盤上真正存在的路徑。它由從根目錄開始一直到該文件的路徑組成,並且是唯一的。Windows和Unix同一個路徑名的寫法不同,但只要路徑名的第一個字符是分隔符,那麼這個路徑名就是絕對路徑

5.2相對路徑(relative path name)                                    

常與工作目錄(working directory,也稱當前目錄,current directory)的概念一起使用。用戶可以制定一個目錄作爲當前的工作目錄。這時,所有的路徑名,如果不是從根目錄開始,那麼都是相對於這個工作目錄的

5.3工作路徑                                                         

系統中每個進程都有自己的工作目錄 

6. i節點

i節點不僅包含了文件數據存儲區的地址,還包含了很多信息,比如數據大小,等等文件信息。但是i節點是不保存文件名的。文件名是保存在一個目錄項中。每一個目錄項中都包含了文件名和i節點。

                     

 

inode  UNIX 操作系統中的一種數據結構,其本質是結構體,它包含了與文件系統中各個文件相關的一些重要信息。在 UNIX 中創建文件系統時,同時將會創建大量的 inode 。通常,文件系統磁盤空間中大約百分之一空間分配給了 inode 表。

有時,人們使用了一些不同的術語,如 inode 索引編號 (inumber)。這兩個術語非常相似,並且相互關聯,但它們所指的並不是同樣的概念。inode 指的是數據結構;而索引編號實際上是 inode 的標識編號,因此也稱其爲inode 編號 或者索引編號。索引編號只是文件相關信息中一項重要的內容。下一個部分將介紹 inode 中的其他一些屬性。

inode 表包含一份清單,其中列出了對應文件系統的所有 inode 編號。當用戶搜索或者訪問一個文件時,UNIX 系統通過 inode 表查找正確的 inode 編號。在找到 inode 編號之後,相關的命令纔可以訪問該 inode ,並對其進行適當的更改。

例如,使用 vi 來編輯一個文件。當您鍵入 vi <filename> 時,在 inode 表中找到 inode 編號之後,才允許您打開該 inode 。在 vi 的編輯會話期間,更改了該 inode 中的某些屬性,當您完成操作並鍵入 :wq 時,將關閉並釋放該 inode 。通過這種方式,如果兩個用戶試圖對同一個文件進行編輯, inode 已經在第一個編輯會話期間分配給了另一個用戶 ID (UID),因此第二個編輯任務就必須等待,直到該 inode 釋放爲止。

7. FAT(文件分配表)

特點:

  1.  每個分區的開始部分用於存儲該FAT
  2. 每個磁盤塊在FAT中有一個表項,該表可以通過盤塊號來索引,其使用與鏈表相似
  3. 目錄項中含有文件首個盤塊的盤塊號,根據盤塊號索引的FAT表項包含文件下一個盤塊號。這種鏈接一直到最後一個盤塊,文件最後一個盤塊對應FAT表項的值爲文件結束值。未使用的盤塊用0值表示
  4. 爲文件分配一個新得盤塊只需簡單地找到第一個值爲0的FAT表項,用新盤塊的地址替換前面文件的結束值,用文件結束值替代0
  5. 如果不對FAT採用緩存,FAT分配方案可能導致大量的磁頭尋到時間,但通過讀入FAT信息,磁盤能找到任何盤塊的位置,從而實現隨機訪問

9. 存取

9.1順序存取                                                         

順序存取是按其在文件中的邏輯順序依次存取的,只能從頭往下讀

9.2隨機存取                                                              

隨機存取文件是將記錄散列在存取介質上的,可以自己定位想要讀的文件內容的指針位置。

10. 連續文件與鏈接文件

10.1順序文件                                                         

採用連續分配方式,把邏輯文件中的記錄順序地存儲到鄰接的各物理盤快中所形成的文件結構稱爲順序文件結構

10.1.1應用場合                                                      

順序文件通常用於批處理中,即每次要讀/寫一大批記錄的應用中。順序文件組織是唯一可以很容易地存儲在磁盤和磁帶上的文件組織

10.1.2優缺點                                                         

優點:簡單,順序訪問文件容易,所需的尋道時間最少

缺點:要求有連續的存儲空間,爲新文件找空間比較困難,必須事先知道文件的長度,不適合文件的增長

10.2鏈接文件                                                         

採用鏈接分配方式,把邏輯文件中的記錄放在不連續的各物理盤塊中,每個物理塊通過指針鏈接起來所形成的文件結構稱爲鏈接文件結構

10.2.1鏈接分配                                                      

10.2.1.1隱式鏈接                                                    

在文件目錄的每個目錄項中,都必須含有指向鏈接文件第一個盤快和最後一個盤塊的指針 

10.2.1.2顯示鏈接                                                     

把用於鏈接文件各物理塊的指針,顯示地存放在內存的一張鏈接表中。該表在整個磁盤僅設置一張

10.2.2應用場合                                                               

10.2.3優缺點                                                        

優點:點單,文件創建與增長容易

缺電:不能隨機訪問盤塊,塊與塊之間的鏈接指針需要佔用空間,存在可靠性問題     

11. 打開文件

11.1概念                                                            

是指系統將指名文件的屬性從外存拷貝到內存打開文件目錄表的一個表目中,並將該表目的編號返回給用戶。以後用戶再要求對該文件進行相應的操作時,便可利用系統所返回的索引號向系統提出操作請求。系統這時便可直接利用該索引號到打開文件表中去查找。

12. 成組鏈接分配與回收

12.1分配                                                            

①首先檢測空閒盤塊號棧是否上鎖:

否:從棧頂取出一空閒盤塊號,將與之對應的盤塊分配給用戶,然後將棧頂指針下移一格

(若該盤塊號已是棧底,這是當前棧中最後一個可分配的盤塊號,由於在該盤塊號所對應的盤塊中記有下一組可用的盤塊號,因此,需調用磁盤讀過程,將棧底盤塊號所對應盤塊的內容讀入棧中,作爲新的盤塊號的內容,並把原棧底對應的盤塊分配出去。)

②然後再分配一組相應的緩衝區(作爲該盤塊的緩衝區)。

③把棧中的空閒盤塊數-1並返回

12.2回收                                                           

在系統回收空閒盤塊時,需調用盤塊回收過程進行回收。它是將回收盤塊的盤塊號計入空閒盤塊號棧的頂部,並執行空閒盤塊數+1操作。當空閒盤塊塊號數目已達100時,表示棧已滿,便將現有棧中的100個盤塊號計入新回收的盤塊中,再將其盤塊號作爲新棧底。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章