第5章 文件系統.ppt_第1頁
第5章 文件系統.ppt_第2頁
第5章 文件系統.ppt_第3頁
第5章 文件系統.ppt_第4頁
第5章 文件系統.ppt_第5頁
已閱讀5頁,還剩107頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第5章 文 件 系 統,計算機中所有信息(程序、數據、圖像、電子郵件),平時都只能以文件的形式存放在外存中,需要時再將它們調入內存。 用戶直接通過文件名就能使用文件。 文件系統負責對文件的各種具體管理工作,本章內容:,文件及文件系統的基本概念 文件的邏輯結構和物理結構 文件的目錄管理 文件存儲空間管理 對文件的各種操作 文件的共享、安全與控制等,5.1 Windows中的文件,Windows支持長文件名,文件名最多可使用256個字符。 通過擴展名可識別該文件的類型。 例如 Arj.exe一個可執行文件 Leaves.bmp一個圖像文件 xz.dbf一個數據庫文件 除“?*“|”外,文件名可以包

2、含空格和其他所有字符。,文件的存放路徑由文件所在驅動器和文件夾來確定。 文件夾代表對文件及目錄形式存放的信息的分組。 一個文件夾里包含其他文件夾,這樣,多層文件夾就構成了一個“文件夾樹”,最底層的樹葉才是一個文件。 在DOS和Linux中,把文件夾稱為“目錄”,從而形成一棵“目錄樹”。,Windows xp提供了兩個十分有效的文件管理工具: “我的電腦” “資源管理器”,圖5.1 Windows xp的資源管理器,樹格,其內還包含有其他子文件夾,可將文件夾收縮,用戶要進行一些如復制、更名、移動等操作,只需在選中對應圖標后點擊相應的命令按鈕即可。,“開始程序附件記事本”,圖5.2 Windows

3、的記事本,Linux同樣提供了幾個編輯器 例如 vi標準文本編輯器 emacs全能編輯器。遠遠超出普通編輯器的功能,可以保存日歷,作為計算器使用,建立大綱甚至瀏覽WWW網。 用戶打開文件進行編輯時,看到的文件是由一個個字符組成的有序的集合。 文件系統為了完成編輯任務,需要直接對輔存上的文件進行操作。 計算機處理的文件和用戶眼中的文件是不一樣的,就是說文件有不同的表現形式。,5.1.3 文件的不同形態,用戶看到的文件是邏輯文件。 有些文件由有序的字符流組成,如一封信、一個程序,稱為流式文件。 有些文件則由若干記錄組成,如數據庫文件,稱為記錄式文件。 計算機處理的文件稱為物理文件。針對不同的存儲介

4、質,文件的存放形式是不一樣的,因此,物理文件也有不同的形態: 連續存放 串聯存放 Windows xp支持三個不同的文件系統: FAT、FAT32和NTFS,5.2 文件和文件系統的基本概念,文件的含義很廣,一篇文章,一張照片,一首歌曲,一個程序,甚至是黑客編寫的病毒等都可以構成文件,到底什么是文件呢?,5.2.1 文件,1.文件的定義 文件是一組具有符號名的相關聯字符的集合。 文件是一組具有符號名的相關聯記錄的集合。,操作系統把文件視為字符流,可以簡化管理。此時文件的基本單位是單個字符,字符之間只有順序關系而沒有結構上的聯系,把一組相關數據項的集合稱為記錄,例如,對學校進行管理時,學生是基本

5、單位,描述學生時應該包括學號、姓名、年齡、所在系別班級等數據項。,和文件相關的術語有: 域(字段)數據的基本單位,由字符、數字構成。 記錄相關域的集合。 數據庫(文件)關聯記錄的集合,數據元素之間存在關系。,2.文件名,文件名是一個用來標識文件的有限長度的字符串。 有了文件名就能區分不同的文件,還可以通過文件名來對文件進行管理。應用中的操作系統對文件的命名是有規定的。,DOS和Windows xp中的文件名都采用“文件名.擴展名”的形式 DOS的文件全名“8.3”格式 Windows支持長文件名最多可使用256個字符。 通過擴展名可用來識別該文件的類型。 例如:.bat批處理文件, .obj目

6、標文件 .zip壓縮文件 .bmp圖像位圖文件 Linux系統中規定文件名是一個以字母或下劃線開頭的不大于255個字符的字符串。 區分英文字母的大小寫 沒有文件名和文件擴展名之分 例如文件 test.c6個字符的文件名,3.文件的分類,1)按性質和用途分類 2)按文件的保護級別分類 3)按文件的保存期限分類 4)按文件的邏輯結構分類 5)按文件的物理結構分類,系統文件、 庫文件 用戶文件。,執行文件 只讀文件 讀寫文件 不保護文件,臨時文件 永久文件 檔案文件。,流式無結構文件 記錄式結構文件,順序文件 鏈接文件 索引文件,4.實用系統中文件的分類,Linux系統中有三種基本的文件類型: 普通

7、文件 目錄文件 設備文件,用戶最經常面對的文件: 文本文件 二進制文件,它存儲一組相關文件的位置、大小等與文件有關的信息。目錄文件往往簡稱為目錄。,Linux系統把每一個I/O設備都看成一個文件,與普通文件一樣處理,這樣可以使文件與設備的操作盡可能統一。 塊設備文件 字符設備文件,“-”普通文件 “d”目錄文件 “c”塊設備特殊文件 “t”字符設備特殊文件 “p”管道文件。,Windows的文件類型 Windows文件系統支持任意擴展名所指定的類型,只要求進行文件類型注冊,同時還注冊用什么程序打開這類文件之類的信息。 下面介紹幾種Windows中的常見文件類型。 程序文件。計算機可以識別的二進

8、制編碼。 如 .COM .EXE 文本文件。由ASCII碼字符組成的文件。 如 .TXT .DOC 圖象文件。如 .BMP、.GIF、.JPG 聲音文件。如 .WAV、.MP3 其他文件類型。如 .ttf是字體文件,.reg是注冊信息文件。,“工具文件夾選項文件類型”,圖5.3 Windows的文件類型,圖5.4 注冊新文件類型,圖5.5 編輯文件類型,“高級 編輯文件類型 編輯”,5.2.2 文件系統,1.文件系統的定義和功能 文件系統指文件命名、存儲和組織的總體結構。文件系統是與管理文件有關的軟件和數據的集合。,文件系統應該具有以下功能:,(1)對用戶提供友好的接口讓用戶實現按名存取。 (

9、2)能提供對文件的各種操作。 (3)可以實現文件共享與保護。 (4)對外存存儲空間的管理。 (5)文件系統應提供各種安全措施。,2.幾種常用文件系統,Linux的文件系統: Minux EXT ( Extend File System ) EXT2 目前支持多達15種不同的文件系統。 通過虛擬文件系統VFS接口支持許多(通常是不同的)文件系統,每一個都向 VFS 表現一個通用的軟件接口。 所有的文件系統對于 Linux 內核的其余部分和系統中運行的程序顯得一樣。 Linux 的虛擬文件系統層允許你同時透明地安裝許多不同的文件系統。 EXT2 已成為所有Linux發行版本的基本文件系統。,DOS

10、的文件系統是FAT。最典型的是FAT16,它規定的文件名是8.3格式,能支持最大磁盤分區為256MB,采用16位實模式驅動程序,用戶界面不夠友好。,Windows操作系統支持:,16位文件分配表(FAT16) 32位文件分配表(FAT32) 光盤文件系統(CDFS) 通用磁盤格式(UDF) Windows NT文件系統(NTFS),FAT32支持255個字符的長文件名,能支持最大磁盤分區可達2TB,采用32位保護模式驅動程序。,NTFS提供了FAT文件系統的所有功能,同時又提供了對高級文件系統特征(安全模式、壓縮和加密)的支持。,NTFS又是一個用于網絡的文件系統,支持包括卷裝配點、遠程存儲、

11、文件系統加密、稀疏文件及磁盤限額在內的眾多存儲增強功能。,表5.1 Windows文件系統比較,5.2.3 文件的邏輯結構和存取方法,1.文件的邏輯結構 用戶可見的文件結構稱為文件的邏輯結構,記錄,0,記錄,1,長度,流式文件,定長記錄,變長記錄,記錄0長度,流式無結構文件 流式無結構文件是由相關聯的字符流組成的文件,文件的長度為所含字符數,字符為基本管理單位。 由于不用對格式進行額外說明,空間利用上就較節省。 大量的源程序、可執行程序、庫函數等都采用流式無結構文件形式,DOS、UNIX、Windows、Linux系統中的普通文件都是流式文件。,記錄式結構文件 記錄式結構文件是有結構的文件,由

12、相關聯的若干記錄構成的。 這些記錄分別以0、1到n按順序編號,稱為記錄0、記錄1,記錄n。 記錄的編號就是記錄在文件中的邏輯地址,這樣的記錄稱為邏輯記錄。 記錄是一個具有特定意義的信息單位,由一組相關聯的字段組成。,學生登記表文件xsdjb.dbf中的每一行就是一個記錄。,根據文件中記錄長度是否相等,記錄式文件可分為: 定長記錄文件。所有記錄的長度都相等,文件的長度可以直接用記錄數目表示。它處理方便、開銷小,目前用得較為廣泛。 變長記錄文件。記錄的長度可以不相等,在每個記錄前面都要記載該記錄長度,變長記錄文件的長度為各記錄長度之和。 記錄式文件主要用于數據庫管理系統中,可以把文件中的記錄按各種

13、不同的方式排列,如按學號進行排列,或按出生年月進行排列,這樣就構成不同的邏輯結構,方便了用戶對文件中的記錄進行修改、追加、查找等操作。,2.文件的存取方法,用戶通過對文件的存取,完成對文件的修改、搜索等操作。根據文件的性質和用戶使用文件的情況,決定不同的存取方法。 順序存取。順序存取是指按照記錄的邏輯排列次序依次存取每個記錄。若上次讀取的是記錄N,則本次要讀取的記錄自動確定為N+1,故每次存取不必給出具體的存取位置。 隨機存取。隨機存取又稱直接存取,即允許隨意存取任一記錄,而不管上次訪問了哪個記錄。每次存取操作都要指定存取操作的開始位置。 流式文件只適合順序存取,記錄式文件既可以順序存取也可以

14、隨機存取。,5.2.4 文件的物理結構和存儲設備,文件在輔存上的存放形式稱為文件的物理結構。如何組織文件的物理結構,才能既提高存儲空間利用率,又減少存取文件信息的時間,這是文件系統要研究的一個重要問題。 下面介紹輔存設備:,圖5.7 磁帶結構示意圖,磁帶只能順序存取,不需要尋找磁道,但需要考慮磁頭尋找記錄區的等待時間。磁頭總是固定的,磁帶移動,磁帶的尋址時間是磁帶轉動到磁頭將訪問的記錄區所在位置的時間。,圖5.8 磁盤結構示意圖,磁道由外向內從0開始編號,扇區則從1開始編號,于是就可通過盤面號、磁道號和扇區號來決定一個扇區在磁盤上的絕對位置。如位于0面、第1磁道、第2扇區的扇區地址是“0,0,

15、2”。,硬盤類似于多張軟盤的層疊。每個盤片都有兩個面,每面能存儲數據,并對應一個磁頭。由于多層磁道形成一個個圓柱形,硬盤的磁道稱為柱面。由磁頭號、柱面號、扇區來決定硬盤物理單位的絕對地址。 許多操作系統還將扇區進行組合來形成不同的磁盤分區,以方便用戶對文件進行邏輯組織。,磁盤尋址時間,TTs+Tw TaTsa+Twa (Tsmax+Tsmin)/2+(Twmax+Twmin)/2,平均尋址時間是磁盤存儲器的一個重要指標。硬磁盤存儲器比軟磁盤存儲器的平均尋址時間短。,磁頭尋找目標磁道所需的尋道時間,磁頭等待所需要讀寫的扇區旋轉到它的下方所需要的等待時間,由于尋找相鄰磁道和從最外面磁道找到最里面磁

16、道所需的時間不同,磁頭等待不同扇區所花的時間也不同,因此,取它們的平均值,稱作平均尋址時間Ta,平均尋道時間,平均等待時間,2.文件物理結構,文件的物理結構代表了數據的存儲方式,常見有以下幾種: 1)連續文件 2)串聯文件 3)文件映照 4)索引文件,1)連續文件,連續文件是指把邏輯上連續的文件信息依次存放到連續的物理塊中,圖5.9 連續文件,磁帶和磁盤都可以采用連續文件的存儲方式,只要有大小合適的連續的存儲空間,就能存放文件。 對于磁帶上的連續文件,只適用順序存取的方法。 而對于磁盤上的連續文件,既可用順序存取也可用隨機存取的方法。 連續文件結構簡單,實現容易。若采用順序訪問方式,因文件是分

17、配在連續的存儲空間的,只要找到文件第一塊位置,就可很快訪問完所有信息。 但連續存儲空間的要求導致大量較小的區域無法分配和利用。 對于需要動態增長的文件,連續文件往往無能無力,因為該文件后面的連續塊可能已分配給其他文件使用了。 Linux系統中保留了連續文件結構。,2)串聯文件,串聯文件又稱為鏈接文件,它把邏輯上連續的文件信息分散存放到不連續的塊中,每個物理塊最末一個字作為鏈接字指向與它鏈接的下一物理塊,文件的結尾塊則存放結束標記“”。,圖5.10 串聯文件,串聯文件只適用于磁盤,不適合磁帶,且對串聯文件只能順序存取。 若采用隨機存取,如要訪問文件最后一塊的內容,實際上要從文件頭開始,通過指針依

18、次向后訪問,直到訪問到文件的最后一塊,這其實就變成了順序存取。 串聯文件實現了文件的非連續存儲,提高存儲空間利用率,消除了外部碎片。 如果文件大小要變化,則只需再鏈接空閑塊,或刪除鏈中某塊即可,這樣便于動態修改和擴充。 但串聯文件搜索效率低,只適宜順序存取,不適宜隨機存取。,3)文件映照,在系統中建立一張文件映照表,把所有盤塊的指針都存放在該表中,每個指針占一個表項。 用戶目錄中存放文件的第一個塊號,利用這一塊號到文件映造表中找到下一塊號,文件的結尾塊則存放結束標記“”,通過文件映照表可獲得該文件占用的所有塊號。,圖5.11 文件映照表,大容量磁盤的文件映照表很大,一般被作為文件保存在磁盤中,

19、需要時,調入內存即可。 文件映照方式只適用于磁盤,既可進行順序存取,又能進行隨機存取。 例如,要讀取A文件尾的信息,通過用戶文件目錄和文件映照表,可知道文件尾信息存放在物理塊12中,就可直接讀取磁盤中第12塊的內容,沒必要把文件從頭讀到尾。 文件映照表既保持了鏈接文件的優點,又克服了其缺點,但是增加了文件映照表的存儲開銷,訪問速度的提高是用存儲空間的增加來換取的。 在DOS系統中,使用稱為FAT的文件映照表來完成文件的映照;而在Windows中使用FAT32來完成文件的映照。,4)索引文件,索引文件的思想類似于存儲管理中的分頁管理。 系統為每個文件建立一張索引表,給出邏輯塊號和分配給它的物理塊

20、號的對應信息。,圖5.12 索引文件,索引文件只適用于磁盤,對索引文件除了能進行順序存取外,也可較方便實現隨機存取。 如果把索引表全部放入內存,必然占據過多內存空間,一般把索引表以文件的形式存放到外存,需要時調入內存即可。 對于中、小型文件,存放索引表文件可能只需一個物理塊; 但對于大型文件,由于索引表比較大,需要用多個物理塊來存放,物理塊之間再通過鏈接指針相互鏈接,索引表的訪問效率必然降低。 這時可采用兩級索引的方法,即為存放索引表的物理塊(簡稱索引塊)再建立索引。,圖5.13 二級索引目錄,索引結構是計算機操作系統中普遍采用的結構,如在Linux系統中,小型文件采用一級索引結構,大型文件采

21、用二級索引結構,巨型文件則采用三級索引結構。,5)文件物理結構的比較,比較查找時間 比較空間開銷 比較適宜設備和存取方法 比較文件增刪,連續文件最快,索引文件和文件映照次之,串聯文件最慢。,連續文件不需要額外的空間開銷; 串聯文件的每個物理塊中需要存放鏈接字; 文件映照需存放文件映照表; 索引文件為每個文件建立一張索引表。,連續文件可用于磁帶和磁盤; 串聯文件、索引文件和文件映照只適用于磁盤;串聯文件只適合順序存取; 而文件映照、索引文件和磁盤上的連續文件,除了能進行順序存取外,也能實現隨機存取。,連續文件不能動態增長,其他三種都可較容易實現文件的動態改變。,6)存儲設備、文件物理結構和存取方

22、法的關系,圖5.14 存儲設備、文件物理結構、存取方法的關系,5.2.5 Linux系統的文件物理結構,圖5.15 EXT2的i結點內的索引結構,5.3 文件目錄管理,文件系統是如何通過文件名知道文件實際存放位置的呢? 文件目錄管理的基本功能就是實現“按名存取”。 文件目錄還要能合理組織目錄結構,使得各個文件的查找速度較快,還要能提供對文件的共享,即讓多個用戶共用一個文件。 文件目錄是一張記錄所有文件的基本信息的目錄表,如文件名、文件存放的物理位置以及文件說明和控制方面的信息。,5.3.1 文件控制塊,文件系統要實現對文件的按名存取,關鍵是要使文件與文件的物理地址建立聯系。,因此,文件系統為每

23、一個文件建立一個文件控制塊FCB,里面存放了有關文件名、文件地址等多方面的描述信息。,文件系統借助文件控制塊中的信息,實現對文件的管理。,文件控制塊的基本內容如下:,文件名 文件的物理位置 文件的邏輯結構 文件的物理結構 文件的存取控制權限 文件的使用信息,文件名是用來標識一個文件的符號名。不同的操作系統,文件名命令規定是不一樣的。,文件的物理位置指明文件在外存的具體存儲位置,通過該項內容,系統就能找到這個文件。,文件的邏輯結構指明是流式文件還是記錄式文件。,文件的物理結構指明文件是連續文件、串聯文件還是索引文件,這項內容確定了系統對文件可以采用的存取方式。,文件的存取控制權限規定了各類用戶對

24、文件的存取權限。,文件的使用信息如文件建立日期和時間,文件上一次修改的日期和時間,當前已打開該文件的進程數,文件是否被其他進程鎖住等。,5.3.2 Linux的索引節點,在Linux系統中,采用了把文件名和文件描述信息分開的方法,將文件目錄項中除文件名之外的信息都放到一個數據結構中,該數據結構稱為索引節點(index node),簡稱i節點。 這樣,在文件目錄項中,就只需存放文件名和該文件名對應的i節點號,大大減少了文件目錄的規模,節省了系統開銷。 可以看出,在這里文件控制塊已變成索引節點。,Linux索引節點的內容如下:,設備號 索引節點號 文件的訪問權限位 連接計數 文件的用戶識別號(UI

25、D)和組識別號(GID)。 設備特殊文件的主設備號和輔設備號。 還包含文件大小、文件最后一次訪問時間、文件最后一次修改時間以及文件最后一次狀態改變時間等。,設備號指包含該文件的設備的標識符。,文件的絕對編號,文件的訪問權限表示對該文件能進行何種操作。,連接計數表示連接到這個文件的目錄項個數,當該數為零時,就表示該節點可丟棄或重新使用。,5.3.3 一級目錄結構,圖5.16 一級目錄結構,讀某個文件? 創建一個新文件? 刪除文件?,一級文件目錄特點,1)結構簡單、清晰,便于維護和查找。 2)可實現按名存取。 3)搜索速度慢。 4)不允許文件重名。 5)不允許文件別名。,5.3.4 二級文件目錄,

26、圖5.17 二級目錄結構,創建一個新文件? 訪問一個文件? 刪除一個文件?,二級文件目錄特點,單純分為二級結構已不能很方便地對種類繁多的大量文件進行管理。于是有三級文件目錄四級、五級等多級目錄。,1)搜索速度得到提高。,2)允許文件重名。,例如,同名文件W3分別為Wang/W3和Zhang/W3,它們被視為兩個不同的文件。當然,同一用戶的UFD中不允許有同名文件。,3)允許文件別名。,即不同用戶對相同文件可取不同名字。例如用戶Wang的W4文件和用戶Zhang的Z1文件,雖然文件名不同,但它們在UFD中指向同一個文件。,5.3.5 樹型目錄結構,圖5.18 樹型目錄結構,引用一個文件? 絕對路

27、徑名 相對路徑名,絕對路徑名是指由根目錄開始的路徑名。,相對路徑名是指從當前工作目錄開始的路徑名。,當前工作目錄,絕對路徑名/usr/local/bin/g,相對路徑名 bin/g,5.3.5 樹型目錄結構,圖5.18 樹型目錄結構,共享一個文件? 使用文件別名,例如: /home/zhang想以文件名k來訪問/home/wang目錄下的d文件? 在/home/zhang/j和 /home/wang/d之間建立一個鏈接,讓/home/zhang/j直接指向/home/wang/d。,樹形目錄結構優點,如層次清楚,便于組織和管理; 搜索速度比單級、二級目錄快很多; 解決了文件重名問題,每個文件在

28、文件系統中由其絕對路徑名唯一確定; 解決了文件別名問題。,圖5.19 Windows文件夾樹片段,圖5.20 Linux樹形目錄結構片段,在樹形目錄結構目錄項中存放了文件FCB的所有信息,這將造成目錄內容太多,使文件的操作變得復雜。 為此可引入基本文件目錄和符號文件目錄來加以改進。,5.3.6 基本文件目錄和符號文件目錄,系統給所有文件賦予唯一的標識符,將文件目錄的內容分為兩個部分: 用符號文件目錄來記錄文件的相互關系; 用基本文件目錄來記錄文件的說明信息; 整個系統設置一個基本文件目錄; 每個用戶對應一個符號文件目錄。,圖5.21 采用基本文件目錄和符號文件目錄的多級目錄結構,查找文件“/W

29、ang/W1”?,Linux文件系統中的 i節點 就是一種基本文件目錄,5.3.7 Linux系統的目錄結構的特點,1)Linux采用樹形目錄結構 目錄樹分枝可以是一個磁盤、硬盤上的不同分區、光盤或者不同的文件系統 若目錄樹分枝是Linux以外的文件系統,則需通過裝載和拆卸來實現對目錄樹分枝的掛接與撤消 2)Linux通過i節點的配合,采用硬鏈接解決目錄樹中同一文件系統的文件別名問題。 每當建立一個硬鏈接,索引節點的引用計數值加1,這樣只要使用的計數位不為0,就不能將這個文件刪除,也可以防止用戶刪除其他用戶正在使用的共享文件。,圖5.22一個i節點中的信息及其分布,包括兩組信息,即這個 i節點

30、描述了什么,以及用戶對于它的權限。,這個文件或目錄的用戶和組標識符。使文件系統能正確地進行文件訪問權限控制,文件的大小(字節),這個i節點創建的時間和它上次被修改的時間。,直接索引區,指向這個 inode 描述的物理塊的指針。直接索引區有 12 個索引項,可以索引12個物理塊。,三個間接索引區,分別指向各級間接索引表。這意味著文件越大,訪問距離越長,小于或等于 12 數據塊大小的文件比更大的文件的訪問更快。,5.4 文件存儲空間管理,為便于長期保存,文件通常都被存儲在大容量的輔存上。 因此,文件系統的重要任務之一就是要隨時掌握存儲空間的使用情況,以便有效文件而合理地分配空閑存儲空間,并及時回收

31、不用的存儲空間。,5.4.1 常用的存儲空間管理方法,1.位示圖,圖5.23 位示圖的變化,文件系統在內存中為每一個輔存設備建立一張稱為位示圖的表,通過該表來反映輔存設備中所有物理塊的使用情況。,二進制位的值為0,表示它對應的物理塊為空閑,二進制位的值為1,則表示已分配使用。,2.空白文件目錄,系統設置一張空白文件目錄來記錄輔存上所有連續空閑塊的信息。,圖5.24 空白文件目錄,文件分配:與內存的動態分區類似,根據系統的要求采用最先適應算法、最佳適應算法或最壞適應算法。,文件釋放:將文件占用的連續空間釋放掉,然后將被釋放空間的信息登記到空白文件目錄中。 涉及到空閑塊的合并問題。,2.空白文件目

32、錄,適應范圍:連續文件結構 缺點: (1)如果文件太大,在空白文件目錄中將沒有合適的空白文件能分配給它,盡管這些空白文件的總和能滿足需求。 (2)經過多次分配和回收,空白文件目錄中的小空白文件越來越多,很難分配出去,形成碎片。,3.空閑鏈表法,把所有的空閑塊鏈接在一起,形成一個空閑塊鏈表。,圖5.25 空閑鏈表法,文件分配? 文件釋放?,空閑鏈表法的優缺點,(1)可實現不連續分配。,(2)由于每個空閑塊的指針信息都是存放在上一空閑塊中的,這樣就不用占用額外的存儲空間,與空白文件目錄管理方法相比節省了存儲開銷。,(3)因為鏈接信息是存放在每個空閑塊中的,每當在鏈上增加或刪除空白塊時需要很多輸入輸

33、出操作,系統開銷大。,(4)對于大型文件系統,空閑鏈將會太長。,5.4.2 FAT磁盤格式,1.基本概念 簇。DOS將若干個連續扇區作為存儲分配的單位,稱為簇。不同的磁盤,簇的大小不一樣,它隨磁盤容量的增大而增大。如: 3.5英寸軟盤每簇含兩個扇區 512MB1GB的硬盤分區,每簇含32個扇區 1GB以上分區每簇含64個扇區。 文件分配表FAT。DOS采用稱為文件分配表FAT(File Allocation Table)的數據結構來管理所有簇。,2.文件分配表FAT,圖5.26 格式化后的磁盤結構,FAT表記錄了所有簇的使用情況,由于FAT表的重要性,采用兩個完全相同的FAT表,一個受到破壞,

34、還可使用另一個。 FAT表的0號和1號表項由系統保留: 0號記錄軟盤類型,1號常數 從2號表項開始,每個表項描述一個簇的使用情況 由于表項序號就是簇號,故簇號從2開始。,FAT還需要根目錄表FDT(File Directory Table)的配合才能完成對簇的管理。 FDT中的每個目錄項占32B,用來記錄一個文件或目錄文件FCB的內容。 磁盤的數據區才是真正存放文件信息的地方,即由所有的簇構成數據區。,圖5.27 FAT表項的意義,3.FAT對磁盤空間的管理,圖5.28 DOS磁盤文件簇鏈,Delete命令刪除文件FILE1? DOS只將FILE1的FDT的第一個字節改為“E5”,并不修改FA

35、T, 因此,在對應FAT未發生變化前,可以用Undelete命令恢復文件。,DOS的FAT表中每個表目項大小最初為12位,稱為FAT12,后來擴充為16位,為FAT16。FAT16對磁盤空間的管理很有效,但它最多只支持2GB的硬盤分區,這顯然不適合目前的硬盤容量。 FAT16逐漸被FAT32替代。在Windows中可采用FAT32,顧名思義,它是32位的FAT表。,5.4.3 FAT32磁盤格式特點,(1)支持大硬盤及分區。,但FAT32也有缺點,如不能與FAT16兼容而導致有些專為FAT16設計的文件沒法在Windows下運行;不能格式化已壓縮的驅動器;運行速度較慢等。,FAT32表的表項大

36、小為32位,則最多可有232=4G個簇。 FAT32能支持的磁盤分區可達2TB,這對再大的硬盤也足夠了。 簇大小為4KB,也減少了磁盤空間的浪費。所以當你將原來FAT16的硬盤轉換為FAT32后,會發現硬盤的剩余空間增多了。,(2)根目錄下可容納無數多個文件或目錄。 (3)FAT32采取對關鍵磁盤提供冗余備份,使分區不易損壞或造成數據崩潰。,5.5 文 件 的 操 作,5.5.1 有關文件操作的系統調用命令,有六條系統調用命令是所有文件系統都應具備的,即建立文件、打開文件、讀文件、寫文件、關閉文件、刪除文件。,1.打開文件和關閉文件的必要性,文件目錄表的存放位置會影響系統的工作效率,文件目錄表

37、應該放在內存還是外存呢? 訪問文件需要把文件目錄表以及FCB從輔存復制到內存,以后對文件的操作就可通過內存中的FCB獲得所需文件信息,避免了頻繁訪問磁盤。 復制到內存的FCB,稱為活動文件目錄,所有活動文件目錄構成了一個活動文件目錄表。,2.文件系統基本調用命令,文件系統基本調用命令有如下執行順序: 建立文件 打開文件 讀寫文件 關閉文件 撤消文件,1)建立文件,圖5.29 建立文件,2)打開文件,圖5.30 打開文件,3)讀寫文件,圖5.31 讀寫文件,4)關閉文件,圖5.32 關閉文件,5)撤消文件,圖5.33 撤消文件,5.5.2 Linux中的文件系統調用命令,Linux提供大量和文件

38、操作有關的系統調用命令,例如: 創建文件(Create) 打開文件(Open) 從文件中讀取數據(Read) 向文件寫入數據(Write) 關閉文件(Close) 掛裝一個文件系統(Mount) 卸裝文件系統(Umount) 設置文件系統的組標識符(Setfsgid)等,以Open為例:,圖5.34 打開文件的三種數據結構的關系,打開文件描述表的目錄項稱為打開的文件描述(Open File Description),包含指向內存索引結構的指針和文件的動態信息。,一個用戶經常需要打開多個文件,這個情況記錄在稱為文件描述符表的數據結構中。 一個用戶建一個文件描述符表。該表中的每個目錄項稱為文件描述

39、符(File Descriptors,fd)指向打開的文件描述表中的一個表項。,通過文件描述符,找到打開的文件描述,再通過打開的文件描述,就可找到內存索引節點,從內存索引節點中的地址索引數組,即能得到文件的真正物理地址。,5.5.3 Windows中的文件系統,Windows文件系統提供了許多文件操作: 創建或打開文件CreateFile(),可以針對所有能用文件流動表示的對象如文件、控制臺、通訊端口、目錄、磁盤、郵件位或管道等; 文件讀取ReadFile (),以同步或異步方式讀取文件中的指定數目的字節; 文件寫WriteFile(),以同步或異步方式向指定文件中寫入指定數目的字節; 獲取文

40、件大小GetFileSize(),返回指定文件的大小; 文件刪除DeleteFile(),刪除由文件名指定的已有文件; 另有其他一些文件操作,涉及對文件目錄、臨時文件的搜索及利用。,5.6 文件的共享與安全,5.6.1 文件的共享 5.6.2 文件的安全,5.6.1 文件的共享,文件共享指一個文件被若干個用戶共同使用,文件系統的一個重要任務就是為用戶提供共享文件的手段,這樣,避免了系統復制文件的開銷,并節省文件占用的存儲空間。,1.實現文件共享的常用方法,繞道法。相對于當前目錄,用戶文件的路徑名由當前目錄到共享文件通路上所有各級目錄的目錄名加上該文件的符號名組成。系統用“*”表示一個給定目錄文

41、件的父目錄。,假定用戶wang的當前目錄為/home/wang,用戶wang若要訪問zhang的文件a,使用路徑名*/zhang/a。,由于繞道法要花很多時間訪問多級目錄,導致搜索效率不高。,鏈接法。在相應目錄表之間進行鏈接,即將一個目錄中的表目直接指向被共享文件所在的目錄,則被鏈接的目錄以及子目錄所包含的文件都為共享的對象。,2.實用系統中的文件共享方法,Linux中采用: 硬鏈接: 基于索引節點的共享方式; 符號鏈接:利用符號鏈來實現共享。,例如,Word工作報告中,鏈接表格。(試一試) 這種方法一方面節省了內存,更重要的優點是具有自動更新的能力。即當表格改變時,改動將自動反映到目標文檔中

42、,實現了共享。,Windows操作系統采用: 動態數據交換方法,即對象的鏈接與嵌入(Object Linking and Embedding,簡稱OLE)方法實現共享。 Windows也使用了符號鏈的方法,只要給出文件所在計算機網絡地址和文件路徑名,我們就可以訪問網上任何允許訪問的文件。 對文件共享的指定由文件創建者完成(雙擊“我的電腦磁盤符號或要共享的文件屬性共享”),例如,Word工作報告中,鏈接一個圖片文件。(試一試),例如,共享一個磁盤。(試一試),5.6.2 文件的安全,文件的安全管理通常包含四個級別: 系統級 用戶級 目錄級 文件級,1.系統級安全管理,在進入系統之前,所有用戶都需

43、要登錄。因此,可設置一張用戶注冊表,里面存放允許登錄的用戶帳號和密碼。每次登錄時,用戶輸入帳號和密碼,系統通過用戶注冊表進行驗證之后,用戶才能進入系統。,在Linux中,用戶的各種信息是存放在口令文件/etc/passwd中的,里面包含了用戶名、口令密令、用戶標識符、帳號全名及其說明信息、用戶主目錄、用戶的shell。 用戶帳號的建立可以以root身份手工進行,也可以利用Linux系統提供的各種工具完成,如adduser命令。而root帳號的建立則是在安裝Linux的過程中建立的。 Windows中可以在一臺本地機上設置多個用戶,如何做?,2、用戶級安全管理,1)用戶分類 Linux系統中將用戶分為四類: Windows中將用戶分成若干組:,超級用戶root對所有的文件和目錄具有完全權限,可以做任何事,所以一定要慎用root帳號。 文件主指建立文件的用戶。 同組用戶和文件主在同一組的用戶,他們具有相同的權限。 其他用戶其他用戶是指不屬于上面三類的所有其他用戶。,2)用戶的資源訪問權 如果對某一個組名賦予某種權限,則該組中所有成員都具有這種權限。通常對文件可定義建立、打開、讀、寫、修改、刪除權限,對目錄可定義查詢、建立、改名、刪除權限。,3.目錄級安全管理,系統會為每個目錄也

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論