操作系統(tǒng)第六章 - 文 件 系 統(tǒng)_第1頁
操作系統(tǒng)第六章 - 文 件 系 統(tǒng)_第2頁
操作系統(tǒng)第六章 - 文 件 系 統(tǒng)_第3頁
操作系統(tǒng)第六章 - 文 件 系 統(tǒng)_第4頁
操作系統(tǒng)第六章 - 文 件 系 統(tǒng)_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第6章文件系統(tǒng)內(nèi)容提要:

6.1概述

6.2文件系統(tǒng)的功能和結(jié)構(gòu)

6.3目錄結(jié)構(gòu)和目錄查詢

6.4文件和目錄操作

6.5文件系統(tǒng)的實(shí)現(xiàn)

6.6管道文件

6.7文件系統(tǒng)的可靠性6.1概述6.1.1文件及其分類1.文件

通常存放在外存(如磁盤、磁帶)上,可以作為一個(gè)獨(dú)立單位存放和實(shí)施相應(yīng)的操作(如打開、關(guān)閉、讀、寫等)。

2.文件類型幾種文件分類方法(1)按用途分類

①系統(tǒng)文件

②庫文件

③用戶文件(2)按文件中的數(shù)據(jù)形式分類

①源文件

②目標(biāo)文件

③可執(zhí)行文件(3)按存取權(quán)限分類

①只讀文件

②讀寫文件

③可執(zhí)行文件(4)按保存時(shí)間分類

①臨時(shí)文件

②永久文件(5)在UNIX/Linux和MS-DOS系統(tǒng)中,按文件的內(nèi)部構(gòu)造和處理方式分類

①普通文件——由表示程序、數(shù)據(jù)或文本的字符串構(gòu)成,內(nèi)部沒有固定的結(jié)構(gòu)。②目錄文件——由下屬文件的目錄項(xiàng)構(gòu)成的文件。③特別文件——特指各種外部設(shè)備。特別文件分為字符特別文件和塊特別文件。普通文件通常分為ASCII文件和二進(jìn)制文件。ASCII文件由只包含ASCII字符的正文行組成,每個(gè)正文行以回車符或換行符終止,各行的長度可以不同。

ASCII文件又稱文本文件。二進(jìn)制文件所包含的每個(gè)字節(jié)可能有256(28)種值。通常可執(zhí)行的二進(jìn)制文件都有內(nèi)部結(jié)構(gòu)。存檔文件是二進(jìn)制文件的另一示例。圖6-1可執(zhí)行文件和存檔文件的內(nèi)部結(jié)構(gòu)6.1.2文件命名

用戶對文件也是“按名存取”的。不同系統(tǒng)對文件的命名規(guī)則是不同的。很多操作系統(tǒng)支持的文件名都由兩部分構(gòu)成:文件名和擴(kuò)展名,二者間用圓點(diǎn)分開。表6-1常見文件擴(kuò)展名及其含義擴(kuò)

名文

型含

義exe,com,bin可執(zhí)行文件可以運(yùn)行的機(jī)器語言程序obj,o目標(biāo)文件編譯過的、尚未連接的機(jī)器語言程序c,cc,java,pas,asm,a源文件用各種語言編寫的源代碼bat,sh批文件由命令解釋程序處理的命令txt,doc文本文件文本數(shù)據(jù)、文檔wp,tex,rrf,doc字處理文檔文件各種字處理器格式的文件lib,a,so,dll庫文件供程序員使用的例程庫arc,zip,tar打印或視圖文件以打印或可視格式保存的ASCII碼文件或二進(jìn)制文件arc,zip,tar存檔文件相關(guān)文件組成一個(gè)文件(有時(shí)壓縮)進(jìn)行存檔或存儲mpeg,mov,rm多媒體文件包含聲音或A/V信息的二進(jìn)制文件6.1.3文件屬性

描述文件特征的屬性稱做文件屬性。表6-2可能用到的文件屬性屬

性含

義屬

性含

義保護(hù)誰能訪問該文件,以何種方式訪問臨時(shí)標(biāo)志0表示正常,1表示進(jìn)程結(jié)束時(shí)刪除文件口令訪問該文件所需口令鎖標(biāo)志0表示開鎖,非0表示上鎖創(chuàng)建者文件創(chuàng)建者的標(biāo)識記錄長度一個(gè)記錄的字節(jié)數(shù)文件主當(dāng)前文件主關(guān)鍵字位置每個(gè)記錄中關(guān)鍵字偏移只讀標(biāo)志0表示讀/寫,1表示只讀關(guān)鍵字長度關(guān)鍵字字段中字節(jié)數(shù)隱藏標(biāo)志0表示正常,1表示不在列表中顯示創(chuàng)建時(shí)間創(chuàng)建文件的日期和時(shí)間系統(tǒng)標(biāo)志0表示一般文件,1表示系統(tǒng)文件最后存取時(shí)間最后存取文件的日期和時(shí)間存檔標(biāo)志0表示已經(jīng)后備,1表示需要后備最后修改時(shí)間最后修改文件的日期和時(shí)間ASCII/二進(jìn)制標(biāo)志0表示ASCII文件,1表示二進(jìn)制文件當(dāng)前長度文件字節(jié)數(shù)隨機(jī)存取標(biāo)志0表示只能順序存取,1表示隨機(jī)存取最大長度文件允許最大字節(jié)數(shù)6.1.4文件存取方法

1.順序存取方法圖6-2順序存取定長記錄文件對定長記錄文件,有

rpi+1=rpi+l對變長記錄文件

rpi+1=rpi

+li☆li是第i個(gè)記錄的長度,如圖6-3所示。圖6-3順序存取變長記錄文件2.隨機(jī)存取方法

隨機(jī)存取文件方式允許以任意順序讀取文件中的字節(jié)或記錄。圖6-4隨機(jī)存取定長記錄文件隨機(jī)存取文件方式允許以任意順序讀取文件中的字節(jié)或記錄。3.其他存取方法

通常采用索引表組織方式圖6-5直接存取變長記錄文件的索引表結(jié)構(gòu)6.1.5文件結(jié)構(gòu)

1.無結(jié)構(gòu)文件無結(jié)構(gòu)文件是指文件內(nèi)部不再劃分記錄,是由一組相關(guān)信息組成的有序字符流,即流式文件。2.有結(jié)構(gòu)文件有結(jié)構(gòu)文件又稱記錄式文件。它在邏輯上可被看成一組連續(xù)記錄的集合,即文件是由若干相關(guān)記錄組成,且對每個(gè)記錄編上號碼

①定長記錄文件。

②變長記錄文件。3.樹形文件這種結(jié)構(gòu)的文件由一棵記錄樹構(gòu)成,各個(gè)記錄的長度可以不同。圖6-6三種文件結(jié)構(gòu)6.2文件系統(tǒng)的功能和結(jié)構(gòu)

6.2.1文件系統(tǒng)的功能

文件管理系統(tǒng),簡稱文件系統(tǒng)。就是操作系統(tǒng)中負(fù)責(zé)操縱和管理文件的一整套設(shè)施。一般來說,文件系統(tǒng)應(yīng)具備以下5種功能:

①文件管理。

②目錄管理。

③文件存儲空間管理。

④文件的共享和保護(hù)。

⑤提供方便的接口。6.2.2文件系統(tǒng)的結(jié)構(gòu)

圖6-7文件系統(tǒng)的層次結(jié)構(gòu)最底層是I/O控制,包括設(shè)備驅(qū)動(dòng)程序和中斷處理程序,實(shí)現(xiàn)內(nèi)存和磁盤系統(tǒng)之間的信息傳送。基本文件系統(tǒng)只需向相應(yīng)的設(shè)備驅(qū)動(dòng)程序發(fā)出通用命令。文件組織模塊把文件的邏輯塊地址轉(zhuǎn)換成物理塊地址,傳送給基本文件系統(tǒng)。最上一層是邏輯文件系統(tǒng),它管理元數(shù)據(jù)信息。6.3目錄結(jié)構(gòu)和目錄查詢

6.3.1文件控制塊和文件目錄1.文件控制塊在文件系統(tǒng)內(nèi)部,給每個(gè)文件惟一地設(shè)置一個(gè)文件控制塊。2.文件目錄為了加快對文件的檢索,往往將文件控制塊集中在一起進(jìn)行管理。這種文件控制塊的有序集合稱為文件目錄。文件控制塊就是其中的目錄項(xiàng)。完全由目錄項(xiàng)構(gòu)成的文件稱為目錄文件。圖6-8MS-DOS目錄項(xiàng)示意圖圖6-9UNIX目錄項(xiàng)示意圖6.3.2單級目錄結(jié)構(gòu)在這種組織方式下,全部文件都登記在同一目錄中。圖6-10單級目錄結(jié)構(gòu)優(yōu)點(diǎn)是簡單,能夠?qū)崿F(xiàn)按名存取。單級目錄結(jié)構(gòu)有以下三個(gè)缺點(diǎn):

①查找速度慢。

②不允許重名。

③不便于共享。6.3.3二級目錄結(jié)構(gòu)

圖6-11二級目錄結(jié)構(gòu)優(yōu)點(diǎn)是:不同用戶可有相同的文件名;提高了檢索目錄的速度;不同用戶可用不同的文件名訪問系統(tǒng)中同一文件。缺點(diǎn)是這種結(jié)構(gòu)仍不利于文件共享。6.3.4樹形目錄結(jié)構(gòu)1.樹形目錄從根目錄開始,一層一層地?cái)U(kuò)展下去,形成一個(gè)樹形層次結(jié)構(gòu),每個(gè)目錄的直接上一級目錄稱做該目錄的父目錄,而它的直接下一級目錄稱做子目錄。圖6-12樹形目錄結(jié)構(gòu)2.路徑名

①絕對路徑名。又稱全路徑名,是指從根目錄開始到達(dá)所要查找文件的路徑名。

(root)/usr/ml/prog/f1.c②相對路徑名。絕對路徑名從根目錄開始書寫,如:

/usr/ml/prog/f1.c

而相對路徑名是從當(dāng)前目錄的下級開始書寫,如當(dāng)前目錄是/usr/ml,則有:

prog/f1.c文件的層次和隸屬關(guān)系很清晰,便于實(shí)現(xiàn)不同級別的存取保護(hù)和文件系統(tǒng)的動(dòng)態(tài)裝卸。但是,在上述純樹形目錄結(jié)構(gòu)中,只能在用戶級對文件進(jìn)行臨時(shí)共享。6.3.5非循環(huán)圖目錄結(jié)構(gòu)

它允許一個(gè)文件或目錄在多個(gè)父目錄中占有項(xiàng)目,但并不構(gòu)成環(huán)路。這種結(jié)構(gòu)方式叫做鏈接(Link)。圖6-13非循環(huán)圖目錄結(jié)構(gòu)1.線性檢索法又稱順序檢索法2.散列法散列法需要有目錄文件和散列表,每個(gè)散列值是由文件名計(jì)算出來的,并且散列表項(xiàng)中有指向線性表中文件名的指針。6.4文件和目錄操作

6.4.1文件操作

1.創(chuàng)建文件create2.刪除文件delete3.打開文件open4.關(guān)閉文件close5.讀文件read6.寫文件write7.附加文件append8.讀寫定位seek9.取文件屬性get_attributes10.置文件屬性set_attributes11.重新命名文件rename6.4.2目錄操作

1.創(chuàng)建目錄create2.刪除目錄delete3.打開目錄opendir4.關(guān)閉目錄closedir5.讀目錄readdir6.重新命名目錄rename7.鏈接文件link8.解除鏈接unlink6.5文件系統(tǒng)的實(shí)現(xiàn)

6.5.1文件系統(tǒng)的格式1.文件系統(tǒng)的不同含義2.文件系統(tǒng)的格式硬盤分區(qū)圖6-14一種可能的文件系統(tǒng)格式6.5.2文件存儲分配

文件的物理組織涉及一個(gè)文件在存儲設(shè)備上是如何放置的。它和文件的存取方法有密切關(guān)系,另外也取決于存儲設(shè)備的物理特性。文件的存儲分配涉及以下三個(gè)問題:

①當(dāng)創(chuàng)建新文件時(shí),是否一次性為該文件分配所需的最大空間?

②為文件分配的空間可以是一個(gè)或多個(gè)連續(xù)的單位。分配文件空間時(shí)應(yīng)采用的單位有多大?

③為了記錄分配給各個(gè)文件的連續(xù)單位的情況,應(yīng)該使用哪種形式的數(shù)據(jù)結(jié)構(gòu)或表格?1.連續(xù)分配

圖6-15連續(xù)文件分配采用連續(xù)分配方法可把邏輯文件中的信息順序地存放到一組鄰接的物理盤塊中,這樣形成的物理文件稱為連續(xù)文件(或順序文件)。優(yōu)點(diǎn)是在順序存取時(shí)速度較快,一次可以存取多個(gè)盤塊,改進(jìn)了I/O性能。另外,也很容易直接存取文件中的任意一塊。連續(xù)分配也存在如下缺點(diǎn):

①要求建立文件時(shí)就確定它的長度,依此來分配相應(yīng)的存儲空間,這往往很難實(shí)現(xiàn)。

②它不便于文件的動(dòng)態(tài)擴(kuò)充。

③可能出現(xiàn)外部碎片。2.鏈接分配把一個(gè)邏輯上連續(xù)的文件分散存放在不同的物理塊中,這些物理塊不要求連續(xù),也不必規(guī)則排列。圖6-16鏈接文件分配采用鏈接分配不會產(chǎn)生磁盤的外部碎片。文件可以動(dòng)態(tài)增長。不需要緊縮磁盤空間。這種物理結(jié)構(gòu)形式的文件稱做鏈接文件或串連文件。帶來以下三個(gè)新的問題:

①一般僅適于對信息的順序訪問,而不利于對文件的隨機(jī)存取。

②每個(gè)物理塊上增加一個(gè)鏈接字。

③可靠性。3.索引分配

系統(tǒng)為每個(gè)文件建立一個(gè)索引表,其中的表項(xiàng)指出存放該文件的各個(gè)物理塊號。FAT表出現(xiàn)在每個(gè)磁盤分區(qū)開頭的扇區(qū)中,每個(gè)盤塊在表中占一項(xiàng)。圖6-17文件分配表(FAT)圖6-18索引文件分配索引文件除了具備鏈接文件的優(yōu)點(diǎn)外,還克服了它的缺點(diǎn)。它可以方便地進(jìn)行隨機(jī)存取。但是這種組織形式需要增加索引表帶來的空間開銷。存取文件的速度4.多重索引文件分配

圖6-19UNIX的多重索引文件結(jié)構(gòu)直接塊間接塊這種方法具有一般索引文件的優(yōu)點(diǎn),但也存在著間接索引需要多次訪盤而影響速度的缺點(diǎn)。6.5.3空閑存儲空間的管理1.空閑空間表法(1)空閑空間表圖6-20空閑空間表(2)空閑塊分配(3)空閑塊回收特別適于存放連續(xù)文件,但是若存儲空間有大量的小空閑區(qū)時(shí),檢索效率降低。2.空閑塊鏈接法

圖6-21空閑塊鏈接易于實(shí)現(xiàn)但其工作效率低3.位示圖(BitMap)法

也稱位向量(BitVector)法。設(shè)下列盤塊是空閑的:2,3,4,5,8,9,10,11,12,13,17,18,25,26,27,…,則位示圖向量是:

0011110011111100011000000111…塊號的計(jì)算公式如下:

字長ד0”值字?jǐn)?shù)+首位“1”的偏移4.空閑塊成組

溫馨提示

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

評論

0/150

提交評論