計算機文件系統(tǒng)_第1頁
計算機文件系統(tǒng)_第2頁
計算機文件系統(tǒng)_第3頁
計算機文件系統(tǒng)_第4頁
計算機文件系統(tǒng)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

文件系統(tǒng)

本章內(nèi)容提要

■概述

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

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

■文件和目錄操作

■文件系統(tǒng)的實現(xiàn)

■管道文件

■文件系統(tǒng)的可靠性

6.1概述

6.1.1文件及其分類

1.文件

■通常存放在外存(如磁盤、磁帶)上,可以作為一個獨立單位存放和實施相

應的操作(如打開、關(guān)閉、讀、寫等)。

2.文件類型

文件分類方法

(1)按用途分類

①系統(tǒng)文件

②庫文件

③用戶文件

文件類型

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

①源文件

②目標文件

③可執(zhí)行文件

(3)按存取權(quán)限分類

①只讀文件

②讀寫文件

③可執(zhí)行文件

(3)按存取權(quán)限分類

①只讀文件

②讀寫文件

③可執(zhí)行文件

(4)按保存時間分類

①臨時文件

②永久文件

文件類型

(5)在UNIX/Linux和MS-DOS系統(tǒng)中,按文件的內(nèi)部構(gòu)造和

處理方式分類

①普通文件——由表示程序、數(shù)據(jù)或文本的字符串構(gòu)成,內(nèi)部沒有

固定的結(jié)構(gòu)。

②目錄文件----由下屬文件的目錄項構(gòu)成的文件。

③特別文件——特指各種外部設(shè)備。

▲特別文件分為字符特別文件和塊特別文件。

▲普通文件通常分為ASCH文件和二進制文件。

?ASCII文件由只包含ASCII字符的正文行組成,每個正文行以回車符或

換行符終止,各行的長度可以不同。ASCII文件又稱文本文件。

?二進制文件所包含的每個字節(jié)可能有256(28)種值。

通常可執(zhí)行的二進制文件都有內(nèi)部結(jié)構(gòu)。

存檔文件是二進制文件的另一示例。

文件類型

Y---------16位-----A

幻數(shù)

正文長度

數(shù)據(jù)長度

BSS長度

符號表長度

入口

標志

正文

數(shù)據(jù)

重定位位

符號表

(a)一個可執(zhí)行文件

可執(zhí)行文件和存檔文件內(nèi)部結(jié)構(gòu)示意圖

6.1.2文件命名

■用戶對文件也是“按名存取”的。

■不同系統(tǒng)對文件的命名規(guī)則是不同的。

■很多操作系統(tǒng)支持的文件名都由兩部分構(gòu)成:文

件名和擴展名,二者間用圓點分開。

6.1.2文件命名

常見文件擴展名及其含義

擴展名文件類型含義

exe,com,bin可執(zhí)行文件可以運行的機器語言程序

obj,o目標文件編譯過的、尚未連接的機器語言程序

c,cc,java,源文件用各種語言編寫的源代碼

pas,asm,a

bat,sh批文件由命令解釋程序處理的命令

txt,doc文本文件文本數(shù)據(jù)、文檔

wp,tex,rrf,字處理文檔文各種字處理器格式的文件

doc件

lib,a,so,dl1庫文件供程序員使用的例程庫

arc,zip,tar打印或視圖文以打印或可視格式保存的ASCII碼文

件件或二進制文件

arc,zip,tar存檔文件相關(guān)文件組成一個文件(有時壓縮)

進行存檔或存儲

mpeg,mov,rm多媒體文件包含聲音或A/V信息的二進制文件

6.1.3文件屬性

■文件屬性:描述文件特征的屬性

可能用到的文件屬性

屬性含義屬性含義

保護誰能訪問該文件,以何種方式訪臨時標志0表示正常,1表示進程結(jié)束時刪除

問文件

口令訪問該文件所需口令鎖標志。表示開鎖,非0表示上鎖

創(chuàng)建者文件創(chuàng)建者的標識記錄長度一個記錄的字節(jié)數(shù)

文件主當前文件主關(guān)鍵字位置每個記錄中關(guān)鍵字偏移

只讀標志0表示讀/寫,1表示只讀關(guān)鍵字長度關(guān)鍵字字段中字節(jié)數(shù)

隱藏標志0表示正常,1表示不在列表中顯創(chuàng)建時間創(chuàng)建文件的日期和時間

系統(tǒng)標志0表示一般文件,1表示系統(tǒng)文件最后存取時間最后存取文件的日期和時間

存檔標志0表示已經(jīng)后備,1表示需要后備最后修改時間最后修改文件的日期和時間

ASCI1/二進制0表示ASCII文件,1表示二進制當前長度文件字節(jié)數(shù)

標志文件

隨機存取標志0表示只能順序存取,1表示隨機最大長度文件允許最大字節(jié)數(shù)

存取

6.1.4文件存取方法

1.順序存取方法

J當前位置

開頭結(jié)尾

記錄1記錄2記錄3???記錄”

—讀或?qū)?/p>

順序存取定長記錄文件示意圖

■對定長記錄文件,有

rp/+i=0+/

順序存取方法

■對變長記錄文件

rp;+l=rp;+li

//是第/個記錄的長度。

甲|甲2

開頭,,結(jié)尾

記錄1記錄2記錄3???記錄m

一I

p-h-q-------h-------->???■*—1m—

順序存取變長記錄文件示意圖

2.隨機存取方法

■隨機存取文件方式允許以任意順序讀取文件中的

字節(jié)或記錄。

下一個位置

〃塊〃+i塊

隨機存取定長記錄文件示意圖

▲隨機存取文件方式允許以任意順序讀取文件中的字節(jié)或記錄

先要設(shè)置讀/寫指針的當前位置

隨機方式下讀/寫文件等操作都以塊號為參數(shù)

3.其他存取方法

■通常采用索引表組織方式

直接存取變長記錄文件的索引表結(jié)構(gòu)

▲對于大型文件,建立二級索引,即主索引文件包含的項是指向次索引文件

的指針,次索引文件包含的項才是指向?qū)嶋H數(shù)據(jù)項的指針。

6.1.5文件結(jié)構(gòu)

1.無結(jié)構(gòu)文件

______“一個字節(jié)—條記錄

AntFoxPig

CatCowDogGoatLionOwlPonyRatWorm

-X

HenIbisLamb

(a)字節(jié)序列無結(jié)構(gòu)文件(b)記錄序列有結(jié)構(gòu)文件(c)樹形文件

三種文件結(jié)構(gòu)示意圖

無結(jié)構(gòu)文件是指文件內(nèi)部不再劃分記錄,是由一組相關(guān)信息組成的有序

字符流,即流式文件。

2.有結(jié)構(gòu)文件

有結(jié)構(gòu)文件又稱記錄式文件。它在邏輯上可被看成一組連

續(xù)記錄的集合,即文件是由若干相關(guān)記錄組成,且對每個

記錄編上號碼

①定長記錄文件。

②變長記錄文件。

3.樹形文件

這種結(jié)構(gòu)的文件由一棵記錄樹構(gòu)成,各個記錄的長度可以

不同。

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

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

■文件管理系統(tǒng),簡稱文件系統(tǒng)。

■操作系統(tǒng)中負責操縱和管理文件的一整套設(shè)施,它實現(xiàn)文件

的共享和保護,方便用戶“按名存取”。

■一般來說,文件系統(tǒng)應具備以下5種功能:

①文件管理。

②目錄管理。

③文件存儲空間管理。

④文件的共享和保護。

⑤提供方便的接口。

看待文件系統(tǒng)有不同的觀點,主要是用戶觀點(即外部使

用觀點)和系統(tǒng)觀點(即內(nèi)部設(shè)計觀點)。

6.2.2文件系統(tǒng)的結(jié)構(gòu)

文件系統(tǒng)的層次結(jié)構(gòu)

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

6.3.1文件控制塊和文件目錄

1.文件控制塊

■在文件系統(tǒng)內(nèi)部,給每個文件惟一地設(shè)置一個文件控制塊。

■通常由下列信息項組成:

①文件名

②文件類型

③位置

④大小

⑤保護信息

⑥使用計數(shù)

⑦時間

2.文件目錄

■為了加快對文件的檢索,往往修文件控制塊集中在一起進

行管理。這種文件控制塊的有序集合稱為文件目錄。文件

控制塊就是其中的J錄項。完全由目錄項構(gòu)成的文件稱為

目錄文件。

字節(jié)831102224

屬性時間日期首塊號

MS-DOS目錄項示意圖

字節(jié)14

文件名

I節(jié)點號

UNIX目錄項示意圖

6.3.2單級目錄結(jié)構(gòu)

■在這種組織方式下,全部文件都登記在同一目錄中。

文件1文件2文件n

單級目錄結(jié)構(gòu)示意圖

?優(yōu)點:簡單,能夠?qū)崿F(xiàn)按名存取。

?缺點:①查找速度慢

②不允許重名

③不便于共享

6.3.3二級目錄結(jié)構(gòu)

?優(yōu)點:不同用戶可有相同的文件名;

提高了檢索目錄的速度;

不同用戶可用不同的文件名訪問系統(tǒng)中同一文件。

?缺點:這種結(jié)構(gòu)仍不利于文件共享。

6.3.4樹形目錄結(jié)構(gòu)

1.樹形目錄

從根目錄開始,一層一層

地擴展下去,形成一個樹〔'

形層次結(jié)構(gòu),每個目錄的--

直接上一級目錄稱做該目

錄的父目錄,而它的直接

下一級目錄稱做子目錄。

樹形目錄結(jié)構(gòu)示意圖

2.路徑名

①絕對路徑名

又稱全路徑名,是指從根目錄開始到達所要查找文件的路徑名。

(root)/usr/ml/prog/f1.c

②相對路徑名

▲當前目錄(又稱工作目錄)

▲主目錄

■絕對路徑名從根目錄開始書寫,如:

/usr/ml/prog/f1.c

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

prog/f1.c

■文件的層次和隸屬關(guān)系很清晰,便于實現(xiàn)不同級別的存取保護和文件系

統(tǒng)的動態(tài)裝卸。

但是,在上述純樹形目錄結(jié)構(gòu)中,只能在用戶級對文件進行臨時共享。

6.3.5非循環(huán)圖目錄結(jié)構(gòu)

■它允許一個文件或目錄在多

個父目錄中占有項目,但并

不構(gòu)成環(huán)路。

■這種結(jié)構(gòu)方式叫做鏈接

(Link)。

■文件共享通過兩種鏈接方式

實現(xiàn):①允許目錄項鏈接到

任一表示文件目錄的節(jié)點上;

②只允許鏈接到表示普通文

件的葉節(jié)點上。

非循環(huán)圖目錄結(jié)構(gòu)示意圖

6.3.6目錄查詢方法

1.線性檢索法又稱順序檢索法

線性檢索法簡單易行,但是速度慢。

2.散列法

散列法需要有目錄文件和散列表,每個散列值是由文件名

計算出來的,并且散列表項中有指向線性表中文件名的指

針。這種方法利用線性表存放目錄項(與線性法相同),

利用散列數(shù)據(jù)結(jié)構(gòu)進行檢索。

▲簡便,減少了目錄查詢時間

▲需要預防沖突問題——即兩個文件名有相同的散列值。

▲主要困難是它有固定的大小,并且散列函數(shù)也依賴該大小。

6.4文件和目錄操作

6.4.1文件操作

1.創(chuàng)建文件create

2.刪除文件delete

3.打開文件open

4.關(guān)閉文件close

5.讀文件read

6.寫文件write

7.附加文件append

8.讀寫定位seek

9.取文件屬性get.attributes

10.置文件屬性set.attributes

11.重新命名文件rename

6.4.2目錄操作

1.創(chuàng)建目錄create

2.刪除目錄delete

3.打開目錄opendir

4.關(guān)閉目錄closedir

5.讀目錄readdir

6.重新命名目錄rename

7.鏈接文件link

8.解除鏈接un1ink

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

6.5.1文件系統(tǒng)的格式

1.文件系統(tǒng)的不同含義

▲功能定義:在操作系統(tǒng)內(nèi)部(通常在內(nèi)核中)用來對文件進行控制和管

理的一套機制及其實現(xiàn)。

▲具體實現(xiàn)和應用:文件系統(tǒng)指存儲介質(zhì)按照一種特定的文件格式加以構(gòu)造。

2.文件系統(tǒng)的格式

■硬盤分區(qū)

?通過對硬盤分區(qū),多個操作系統(tǒng)可以共存于同一個硬盤中。

?當系統(tǒng)中硬盤容量較大時,使用分區(qū)可以提高硬盤的訪問效率。

?在不同分區(qū)上安裝不同的操作系統(tǒng),能夠方便管理和維護。

■一般文件系統(tǒng)格式

一般文件系統(tǒng)格式示意圖

6.5.2文件存儲分配

■文件的物理組織涉及一個文件在存儲設(shè)備上是如何放置的。

它和文件的存取方法有密切關(guān)系,另外也取決于存儲設(shè)備

的物理持桂。

■文件的存儲分配涉及以下三個問題:

①當創(chuàng)建新文件時,是否一次性為該文件分配所需的最

大空間?

②為文件分配的空間可以是一個或多個連續(xù)的單位。

分配文件空間時應采用的單位有多大?

③為了記錄分配給各個文件的連續(xù)單位的情況,應該使

用哪種形式的數(shù)據(jù)結(jié)構(gòu)或表格?

1.連續(xù)分配

____________FileA____

0|I11I21|3口41|

文件分配表

561I71I81|<)||

文件名起始塊長度

FileB

10?11?12.13,14||FileA23

FileB95

188

15|~~I16||17||18||19||FileC

FileD302

FileC

FileE263

20匚]21022||23||24||

________FileE________

251I261|27函28||29||

FileD

301|31||32||331|341

文件連續(xù)分配示意圖

連續(xù)分配

■采用連續(xù)分配方法可把邏輯文件中的信息順序地存放到一

組鄰接的物理盤塊中,這樣形成的物理文件稱為連續(xù)文件

(或順序文件)。

?優(yōu)點:在順序存取時速度較快,一次可以存取多個盤塊,改進了

I/O性能;也很容易直接存取文件中的任意一塊。

?缺點:

①要求建立文件時就確定它的長度,依此來分配相應的存儲空間,

這往往很難實現(xiàn)。

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

③可能出現(xiàn)外部碎片。

■實現(xiàn)連續(xù)盤塊分配的策略

①最先適應算法

②最佳適應算法

③最近適應算法

2.鏈接分配

■把一個邏輯上連續(xù)的文件分散存放在不同的物理塊中,這些物理塊不

要求連續(xù),也不必規(guī)則排列。

文件分配表

文件名起始塊最后塊

?????????

FileB128

3031323334

文件鏈接分配示意圖

鏈接分配

■這種物理結(jié)構(gòu)形式的文件稱做鏈接文件或串連文件。

■采用鏈接分配不會產(chǎn)生磁盤的外部碎片

■文件可以動態(tài)增長

■不需要緊縮磁盤空間

■帶來以下三個新的問題:

①一般僅適于對信息的順序訪問,而不利于對文件的隨

機存取。

②每個物理塊上增加一個鏈接字

③可靠性

鏈接分配

■FAT表出現(xiàn)在每個磁盤分區(qū)開頭的扇區(qū)中,每個盤塊在表中占一項。

每個盤塊在表中占一項,表的序號是物理盤塊號,每個表項中存放鏈

接下一盤塊的指針。這樣,F(xiàn)AT表就被用做鏈表。

*217

目錄項

end-ol-file

起始塊

盤塊號-1

文件分配表(FAT)示意圖

3.索引分配

?除了具備鏈接文件的優(yōu)

點外,還克服了它的缺點。

它可以方便地進行隨機存

取。

?這種組織形式需要增加

索引表帶來的空間開銷。

存取文件的速度受影響。

文件索引分配示意圖

4.多重索引文件分配

【節(jié)點數(shù)據(jù)塊

▲直接塊

間接塊

這種方法具有一般索引文件的優(yōu)

點,但也存在著間接索引需要多

次訪盤而影響速度的缺點。

UNIX的多重索引文件結(jié)構(gòu)示意圖

6.5.3空閑存儲空間的管理

1.空閑空間表法

(1)空閑空間表

序號第1個空閑塊號空閑塊個數(shù)物理塊號

12423,4,5

218118,19,20,21,22,23,24,25,26

3駕559,60,61,62,63

??**

?*■*?

空閑空間表示例

(2)空閑塊分配

(3)空閑塊回收

▲特別適于存放連續(xù)文件

▲若存儲空間有大量的小空閑區(qū)時,檢索效率降低。

會產(chǎn)生外存的外部碎片,造成磁盤空間的浪費。

2.空閑塊鏈接法

這種方法與串連文件結(jié)構(gòu)有

空閑塊鏈頭

相似之處,只是鏈上的盤塊

都是空閑塊而已。

易于實現(xiàn)

但其工作效率低

28□29□30□31口

空閑塊鏈接法示意圖

3.位示圖(BitMap)法

■它利用一串二進位值反映磁盤空間的分配情況,也稱位向

量(BitVector)法

■設(shè)下列盤塊是空閑的:

2,3,4,5,8,9,10,11,12,13,17,18,25,26,27,...

則位示圖向量是:

0011110011111100011000000111...

■塊號的計算公式如下:

字長x“0”值字數(shù)十首位“1”的偏移

4.空閑塊成組鏈接法

空閑塊成組鏈接

1502003950組長塊

(2)

(3)

空閑塊成組鏈接法分配過程示例

6.6管道文件

如:$whoIwc-1

5管道文件

■一個管道線就是連接兩個進

程的一個打開文件。一個進

程向該文件寫入信息,另一

個進程從該文件中讀出信息,

由系統(tǒng)自動處理二者間的同

步、調(diào)度和緩沖。

■pipe文件允許兩個進程按先

入先出(FIFO)的方式傳送

數(shù)據(jù),而它們可以彼此不知

道對方的存在。

■創(chuàng)建pipe文件可有兩種方式:

▲無名管道文件

▲有名管道文件管道文件機制示意圖

6.7文件系統(tǒng)的可靠性

■文件系統(tǒng)受到破壞所造成的損失往往比計算機自身受到破壞的

損失還大

■造成數(shù)據(jù)丟失或數(shù)據(jù)損壞的原因有多種

6.7.1磁盤壞塊管理

▲硬件方案是在磁盤的一個扇區(qū)上記載壞塊清單。

▲軟件方案需要用戶或文件系統(tǒng)仔細地構(gòu)造一個文

件,它包含全部壞塊

6.7.2后備

1.備份介質(zhì)

目前比較常用的備份介質(zhì)有軟盤、磁帶、光盤和硬盤等

2.備份策略

(1)完全備份

也稱簡單備份,即每隔一定時間就對系統(tǒng)做一次全面?zhèn)浞荨?/p>

(2)增量備份

在這種備份策略中,首先進行一次完全備份,然后每隔一個較短的時間段進

行一次備份,但僅僅備份在這段時間間隔內(nèi)修改過的數(shù)據(jù)。

(3)更新備份

增量備份是備份當天更改的數(shù)據(jù),而更新備份是備份從上次進行完全備份后

至今更改的全部數(shù)據(jù)文件。

3.備份工具

在UNIX,Linux系統(tǒng)中,備份軟件有tar,

溫馨提示

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

評論

0/150

提交評論