国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Linux文件系統(tǒng)結(jié)構(gòu)分析*

2011-09-18 06:04:04
濰坊學(xué)院學(xué)報 2011年2期
關(guān)鍵詞:磁盤結(jié)點內(nèi)存

王 紅

(濰坊學(xué)院,山東 濰坊 261061)

Linux文件系統(tǒng)結(jié)構(gòu)分析*

王 紅

(濰坊學(xué)院,山東 濰坊 261061)

闡述了Linux系統(tǒng)的文件結(jié)構(gòu)類型,指出了EXT2是在Linux系統(tǒng)中最為常用的文件系統(tǒng)。分析了EXT2文件系統(tǒng)的磁盤布局、索引結(jié)點及目錄結(jié)構(gòu),研究了EXT2系統(tǒng)實現(xiàn)按名存取的方法,文件讀取速度更高效。

EXT2文件系統(tǒng);索引結(jié)點;混合索引;文件目錄

Linux系統(tǒng)的一個重要的特征就是支持多種不同的文件系統(tǒng),如:EXT、FA T、EXT2、EXT3、SYSV等。目前,Linux主要使用的文件系統(tǒng)是EXT2和EXT3文件系統(tǒng),也是Linux用戶最常用的文件系統(tǒng)。各種Linux的系統(tǒng)發(fā)布都將EXT2作為操作系統(tǒng)的基礎(chǔ)。EXT2文件系統(tǒng)支持標(biāo)準(zhǔn)UNIX文件類型:普通文件、目錄文件、特別文件和符號鏈接。

1 EXT2磁盤布局

EXT2和其他邏輯塊文件一樣,由邏輯塊序列組成,根據(jù)用途劃分,這些邏輯塊通常有:引導(dǎo)塊、超級塊、inode區(qū)及數(shù)據(jù)區(qū)等。

EXT2將其所占的邏輯分區(qū)劃分為塊組,由一個引導(dǎo)塊和其他塊組組成,每個塊組又由超級塊、組描述符表、塊位圖、索引節(jié)點位圖、索引節(jié)點表、數(shù)據(jù)區(qū)構(gòu)成,如圖1所示。

圖1 EXT2磁盤布局在邏輯空間的映像

每個塊中保存的這些信息是有關(guān)EXT2文件系統(tǒng)的備份信息。當(dāng)某個塊組的超級塊或inode受損時,這些信息可以用來恢復(fù)文件系統(tǒng)。

2 EXT2索引結(jié)點

EXT2文件系統(tǒng)中的數(shù)據(jù)是以數(shù)據(jù)塊的方式存儲在文件中的。這些數(shù)據(jù)塊的大小相同,其大小在EXT2創(chuàng)建時設(shè)定。磁盤上存儲文件的基本單位是簇。一個簇也稱為一個磁盤塊,它通常是2n個磁盤扇區(qū)大小。

EXT2文件系統(tǒng)用一個inode數(shù)據(jù)結(jié)構(gòu)描述系統(tǒng)中的每一個文件,定義系統(tǒng)的拓?fù)浣Y(jié)構(gòu)。一個inode描述了一個文件中的數(shù)據(jù)占用了哪些塊以及文件的訪問權(quán)限、文件的修改時間和文件的類型。EXT2文件系統(tǒng)中的每一個文件都用一個inode描述,而每一個inode都用一個獨一無二的數(shù)字標(biāo)識。文件系統(tǒng)的inode都放在一起,在inode索引表中。

EXT2塊組中組描述符中的項稱為組描述符,用于描述某個塊組的整體信息。每個塊組都有一個相應(yīng)的組描述符來描述它,所有的組描述符形成一個組描述符表,并在使用時被調(diào)入塊高速緩存。

EXT2中每個塊組有兩個位示圖塊,一個用于表示數(shù)據(jù)塊的使用情況,叫數(shù)據(jù)塊位圖;另一個用于表示索引結(jié)點的使用情況,叫索引結(jié)點位圖。位圖中的每一位表示該組中一個數(shù)據(jù)塊或一個索引塊的使用情況,用0表示空閑,用1表示已分配。

在Linux的EXT2文件系統(tǒng)中,索引結(jié)點inode分為兩類,即磁盤索引結(jié)點和內(nèi)存索引結(jié)點,通常也分別叫做EXT2 inode和VFS inode。

(1)磁盤索引節(jié)點

磁盤索引節(jié)點是指存放在磁盤上的索引節(jié)點。每個文件有唯一的一個磁盤索引節(jié)點,它主要包括以下內(nèi)容:

文件所有者標(biāo)識號:指擁有該文件的文件主或同組的標(biāo)識符。

文件類型:指明文件是普通文件、目錄文件還是特別文件等類型。

文件物理地址:指出數(shù)據(jù)文件所在的物理塊號。如在Linux系統(tǒng)中,通過15個地址項來表明文件所在的物理塊號。

文件存取權(quán)限:用戶對文件的操作類型,如讀、修改、執(zhí)行等。

文件大小:文件所占有的字節(jié)個數(shù)。

文件連接計數(shù):指明系統(tǒng)中共享該文件的進(jìn)程個數(shù)。

文件存取時間:指出該文件最近被進(jìn)程存取的時間、最近被修改的時間及索引節(jié)點最近被修改的時間等。

(2)內(nèi)存索引節(jié)點

內(nèi)存索引節(jié)點是指存放在內(nèi)存的索引節(jié)點。當(dāng)文件打開時,要將磁盤索引節(jié)點復(fù)制到內(nèi)存索引節(jié)點中,便于以后使用。內(nèi)存索引節(jié)點包括以下內(nèi)容:

索引節(jié)點編號:標(biāo)識內(nèi)存索引節(jié)點。

索引節(jié)點狀態(tài):指示該節(jié)點是否已被修改或已被上鎖。

訪問計數(shù):當(dāng)進(jìn)程訪問該節(jié)點時,訪問計數(shù)加1,訪問完再減1。

鏈接指針:指向空閑鏈表和散列隊列的指針。

邏輯設(shè)備名:含有該文件的文件系統(tǒng)的邏輯設(shè)備名。

表1 Linux系統(tǒng)的文件目錄

3 文件的目錄結(jié)構(gòu)

Linux系統(tǒng)的目錄結(jié)構(gòu)采用了將文件名與文件描述信息分開的方法。文件目錄由文件名和該文件的索引節(jié)點號構(gòu)成,一個目錄項共占16B。其中,文件名占14個字節(jié),索引節(jié)點號(或索引節(jié)點指針)占2個字節(jié)。因此,1KB的盤塊中可以存放64(1K/16)個目錄項,這樣就節(jié)省了系統(tǒng)查找及訪問文件的時間。在一個共有640個FCB的文件目錄中查找一個文件時,平均只需啟動磁盤5次,因此大大減少了系統(tǒng)開銷。如表1所示為一個文件目錄的實例。

4 文件的物理結(jié)構(gòu)

Linux系統(tǒng)文件的物理結(jié)構(gòu)采用混合索引方式,對分配給文件的磁盤塊進(jìn)行管理。在Linux文件系統(tǒng)的索引節(jié)點中存在一項i.addr[14],用于存放該文件的磁盤塊號。如圖2所示為Linux系統(tǒng)的混合索引文件結(jié)構(gòu)。

(1)直接尋址。i.addr[0]—i.addr[9]這10項用于直接存放該文件所占用的磁盤塊號,文件的前10個磁盤塊號依次放入其中。如果磁盤塊的大小為1KB,則當(dāng)文件長度不大于10K時,操作系統(tǒng)可采用直接索引文件的方式對文件進(jìn)行訪問,直接從索引節(jié)點中找出該文件所在的磁盤塊號,訪問速度較快。

(2)一次間接尋址方式。i.addr[10]項中存放的磁盤塊號所指向的磁盤塊再用來存放下一級的磁盤塊號。假設(shè)一個磁塊大小為1KB,每個磁盤塊號占4個字節(jié),則一個磁盤塊可存放256個(1KB/4B)磁盤塊號。這樣,通過一次間接尋址,i.addr[10]項就引出了256個磁盤塊號,所以,這一級可支持的文件長度為256K。

(3)二次間接尋址方式。i.addr[11]存放的磁盤塊號采用兩級索引的方式,如果沿用以上的假設(shè),則該項可引出2562個磁盤塊,可支持的文件長度為2562K。

(4)三次間接尋址方式。i.addr[12]存放的磁盤塊號采用三級索引的方式,如果仍沿用以上的假設(shè),則該項可引出2563個磁盤塊,可支持的文件長度為2563K。

由以上分析可以看出,UNIX系統(tǒng)對于長度較小的文件具有較快的讀寫速度,同時又具有支持大文件的功能。

圖2 Linux的混合索引文件結(jié)構(gòu)

Linux系統(tǒng)文件實現(xiàn)了按名查找。通過文件名訪問文件的過程如下:通過文件名查找文件目錄,找到該文件的索引結(jié)點號;通過索引結(jié)點號查找索引節(jié)點區(qū),找到該文件的索引點;根據(jù)索引結(jié)點中提供a.addr,找到該文件在磁盤的相應(yīng)的塊號序列;根據(jù)塊號,找到文件內(nèi)容。

FA T文件系統(tǒng)與NTFS文件系統(tǒng)目錄的比較:FAT文件系統(tǒng)直接以文件控制塊作為文件目錄,這樣文件系統(tǒng)目錄相應(yīng)較大,查詢速度較慢。以索引結(jié)點作為文件目錄,對于一些小的文件系統(tǒng)是可以的,但是對較大型的文件系統(tǒng)就不適用了。Linux系統(tǒng)的文件目錄為:文件名、索引結(jié)點號。這使得Linux系統(tǒng)的文件目錄更小,查詢速度更快。

5 結(jié)束語

由于Linux系統(tǒng)的EXT2文件系統(tǒng)采用了合理巧妙的文件系統(tǒng)結(jié)構(gòu),以及目錄結(jié)構(gòu),使得該文件系統(tǒng)多項性能得到優(yōu)化。采用EXT2系統(tǒng),能夠大大改善磁盤I/O速度,提高I/O組織的靈活性及編程效率。因此,EXT2文件系統(tǒng)為開發(fā)嵌入式系統(tǒng)及實時應(yīng)用系統(tǒng)提供了廣泛的基礎(chǔ)和手段。

[1]陳向陽.Linux實用大全[M].2版.北京:科學(xué)出版社,1998.

[2]陳莉君,康華.Linux操作系統(tǒng)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2006.

[3]陸松年.操作系統(tǒng)教程[M].北京:電子工業(yè)出版社,2010.

[4]William Stallings.操作系統(tǒng):精髓與設(shè)計原理[M].陳渝,譯.北京:電子工業(yè)出版社,2006.

(責(zé)任編輯:肖恩忠)

TP316

A

1671—4288(2011)02-0029-03

符、文件存取權(quán)限、文件物理地址、文件長度、文件連接系數(shù)、文件存取時間等一些文件的重要信息。

2010-12-26

王紅(1966-),女,山東昌樂人,濰坊學(xué)院計算機與通信工程學(xué)院副教授。

猜你喜歡
磁盤結(jié)點內(nèi)存
解決Windows磁盤簽名沖突
電腦愛好者(2019年2期)2019-10-30 03:45:31
“春夏秋冬”的內(nèi)存
修改磁盤屬性
Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點個數(shù)估計
磁盤組群組及iSCSI Target設(shè)置
創(chuàng)建VSAN群集
基于Raspberry PI為結(jié)點的天氣云測量網(wǎng)絡(luò)實現(xiàn)
基于內(nèi)存的地理信息訪問技術(shù)
基于DHT全分布式P2P-SIP網(wǎng)絡(luò)電話穩(wěn)定性研究與設(shè)計
上網(wǎng)本為什么只有1GB?
临高县| 合阳县| 兰西县| 友谊县| 南和县| 罗田县| 蛟河市| 元江| 恩施市| 民丰县| 象州县| 焉耆| 郸城县| 虹口区| 泰兴市| 巩义市| 罗源县| 宁陵县| 成都市| 合水县| 河池市| 上林县| 通许县| 同江市| 天津市| 综艺| 祁东县| 浙江省| 八宿县| 萝北县| 铜梁县| 根河市| 治县。| 舟曲县| 赣榆县| 海丰县| 久治县| 内丘县| 科技| 镇原县| 沙田区|