第12章 文件系統(tǒng)的實(shí)現(xiàn)_第1頁
第12章 文件系統(tǒng)的實(shí)現(xiàn)_第2頁
第12章 文件系統(tǒng)的實(shí)現(xiàn)_第3頁
第12章 文件系統(tǒng)的實(shí)現(xiàn)_第4頁
第12章 文件系統(tǒng)的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、安徽科技學(xué)院 設(shè)計(jì)人:趙艷紅第第12章章 文件系統(tǒng)的實(shí)現(xiàn)文件系統(tǒng)的實(shí)現(xiàn)教師:計(jì)算機(jī)操作系統(tǒng)課程組教師:計(jì)算機(jī)操作系統(tǒng)課程組E-mail: E-mail: (趙艷紅)(趙艷紅) (沈峰)(沈峰) 校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程111Contents文件存儲(chǔ)設(shè)備文件存儲(chǔ)設(shè)備磁盤空間管理磁盤空間管理文件分配方法文件分配方法目錄的實(shí)現(xiàn)目錄的實(shí)現(xiàn)GeekOS的文件系統(tǒng)的文件系統(tǒng)校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程22212.1 文件存儲(chǔ)設(shè)備文件存儲(chǔ)設(shè)備v 順序存取設(shè)備順序存取設(shè)備-磁帶磁帶只有當(dāng)?shù)谥挥挟?dāng)?shù)趇塊物理塊被訪問之后,才能對(duì)第塊物理塊被訪問之后,才能對(duì)第i+1塊塊訪問訪問對(duì)某個(gè)特定物理塊的訪問與該物理塊到

2、磁頭當(dāng)前對(duì)某個(gè)特定物理塊的訪問與該物理塊到磁頭當(dāng)前位置的距離有很大關(guān)系,遠(yuǎn)則移動(dòng)磁頭需要花費(fèi)位置的距離有很大關(guān)系,遠(yuǎn)則移動(dòng)磁頭需要花費(fèi)很長時(shí)間。很長時(shí)間。v 優(yōu)點(diǎn):容量大優(yōu)點(diǎn):容量大校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程33312.1 文件存儲(chǔ)設(shè)備文件存儲(chǔ)設(shè)備v 直接存取設(shè)備直接存取設(shè)備-磁盤磁盤n由多個(gè)由多個(gè)磁盤片磁盤片(platter)(platter)組組成成n磁盤片的表面被邏輯地劃分磁盤片的表面被邏輯地劃分為圓形為圓形磁道磁道(track)(track)n磁道被劃分為固定長度的單磁道被劃分為固定長度的單元,稱為元,稱為扇區(qū)扇區(qū)(sector)(sector)n位于同一磁臂位置的磁道集位于同一磁臂

3、位置的磁道集合形成合形成柱面柱面(cylinder)(cylinder)n性能:性能: 容量、傳輸速率、定位容量、傳輸速率、定位時(shí)間(尋道時(shí)間旋時(shí)間(尋道時(shí)間旋轉(zhuǎn)等待時(shí)間)轉(zhuǎn)等待時(shí)間)校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程44412.1 文件存儲(chǔ)設(shè)備文件存儲(chǔ)設(shè)備n磁盤磁盤校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程555磁盤相關(guān)的操作磁盤相關(guān)的操作n 定位定位(seek)移動(dòng)磁臂到適當(dāng)?shù)闹?,所用時(shí)間稱為尋道時(shí)間。移動(dòng)磁臂到適當(dāng)?shù)闹妫脮r(shí)間稱為尋道時(shí)間。n Read/Write一次只能讀一次只能讀/寫一個(gè)扇區(qū)寫一個(gè)扇區(qū)磁頭移到指定的扇區(qū)地址之前系統(tǒng)必須等待,所磁頭移到指定的扇區(qū)地址之前系統(tǒng)必須等待,所用時(shí)間稱為旋轉(zhuǎn)

4、等待時(shí)間。用時(shí)間稱為旋轉(zhuǎn)等待時(shí)間。n 操作系統(tǒng)必須跟蹤硬盤的物理地址用以實(shí)現(xiàn)操作系統(tǒng)必須跟蹤硬盤的物理地址用以實(shí)現(xiàn)文件系統(tǒng)。文件系統(tǒng)。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程666磁盤相關(guān)的操作磁盤相關(guān)的操作 一塊硬盤由多個(gè)盤片組成。一塊硬盤由多個(gè)盤片組成。 一個(gè)盤片對(duì)應(yīng)一個(gè)磁頭臂:兩個(gè)讀寫磁頭對(duì)盤片上一個(gè)盤片對(duì)應(yīng)一個(gè)磁頭臂:兩個(gè)讀寫磁頭對(duì)盤片上下頁進(jìn)行讀寫。下頁進(jìn)行讀寫。 盤面上的同心圓稱為磁道。一個(gè)磁道被分割成大小盤面上的同心圓稱為磁道。一個(gè)磁道被分割成大小相同的多個(gè)扇區(qū)。相同的多個(gè)扇區(qū)。 所有盤片中相同的磁道稱為柱所有盤片中相同的磁道稱為柱面。面。 IDEIDE硬盤:扇區(qū)大小:硬盤:扇區(qū)大?。?12

5、bit512bit。 通常情況:一個(gè)物理塊通常情況:一個(gè)物理塊= = ?個(gè)扇區(qū)?個(gè)扇區(qū)校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程77712.2 磁盤空間管理磁盤空間管理? 一個(gè)長度為一個(gè)長度為n個(gè)字節(jié)的文件存儲(chǔ)在硬盤上時(shí),個(gè)字節(jié)的文件存儲(chǔ)在硬盤上時(shí),如何分配存儲(chǔ)空間?如何分配存儲(chǔ)空間?方案方案1 :把文件分配到:把文件分配到n 個(gè)字節(jié)的連續(xù)空閑磁盤個(gè)字節(jié)的連續(xù)空閑磁盤空間??臻g。當(dāng)文件擴(kuò)大時(shí),空閑空間不夠,就需要移到磁盤的另當(dāng)文件擴(kuò)大時(shí),空閑空間不夠,就需要移到磁盤的另一個(gè)位置。一個(gè)位置。方案方案2:把文件分割成多個(gè)塊,然后把它們存放:把文件分割成多個(gè)塊,然后把它們存放在不同的磁盤塊中在不同的磁盤塊中(各塊

6、之間不必相鄰各塊之間不必相鄰)。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程88812.2 磁盤空間管理磁盤空間管理? 塊的大小為多少呢?塊的大小為多少呢?過大?如整個(gè)柱面為單位。過大?如整個(gè)柱面為單位。 過???則一個(gè)文件將包含多個(gè)塊,每訪問一個(gè)過?。縿t一個(gè)文件將包含多個(gè)塊,每訪問一個(gè)塊磁頭都要定位和旋轉(zhuǎn)延遲,文件的訪問速度將塊磁頭都要定位和旋轉(zhuǎn)延遲,文件的訪問速度將很慢。很慢。n 實(shí)驗(yàn)表明:塊大小為實(shí)驗(yàn)表明:塊大小為4KB較好。較好。Linux 2.6 :4KBGeekOS : 4KB校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程99912.2 磁盤空間管理磁盤空間管理? 如何管理空閑塊?如何管理空閑塊?方法方法1:空閑鏈表

7、空閑鏈表:使用一個(gè)鏈表,每個(gè)結(jié)點(diǎn)是:使用一個(gè)鏈表,每個(gè)結(jié)點(diǎn)是一個(gè)磁盤塊,里面盡可能存放多的空閑磁盤塊號(hào),一個(gè)磁盤塊,里面盡可能存放多的空閑磁盤塊號(hào),另外每個(gè)結(jié)點(diǎn)還有指向下一個(gè)結(jié)點(diǎn)的指針。另外每個(gè)結(jié)點(diǎn)還有指向下一個(gè)結(jié)點(diǎn)的指針。方法方法2:位示圖位示圖如果一個(gè)磁盤有如果一個(gè)磁盤有N個(gè)塊,那么就需要個(gè)塊,那么就需要N個(gè)位來描述。個(gè)位來描述。1:表示空閑,表示空閑,0:表示已分配:表示已分配(或相反或相反)。Linux、GeekOS采用采用校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程10101012.2 磁盤空間管理磁盤空間管理空閑鏈表法占用存儲(chǔ)空間比位示圖法多??臻e鏈表法占用存儲(chǔ)空間比位示圖法多。校重點(diǎn)建設(shè)課程校重

8、點(diǎn)建設(shè)課程11111112.2 磁盤空間管理磁盤空間管理采用采用空閑鏈表法空閑鏈表法,在,在內(nèi)存內(nèi)存中只要保存中只要保存一個(gè)結(jié)一個(gè)結(jié)點(diǎn)點(diǎn)。當(dāng)創(chuàng)建一個(gè)新文件時(shí),所需要的。當(dāng)創(chuàng)建一個(gè)新文件時(shí),所需要的磁盤塊磁盤塊就就從這個(gè)結(jié)點(diǎn)中取從這個(gè)結(jié)點(diǎn)中取。如果該結(jié)點(diǎn)中的空閑塊。如果該結(jié)點(diǎn)中的空閑塊都已經(jīng)都已經(jīng)用完用完,就從鏈表中,就從鏈表中讀入讀入一個(gè)一個(gè)新的結(jié)點(diǎn)新的結(jié)點(diǎn)。 類似地,當(dāng)一個(gè)文件被刪除后,它的磁盤塊類似地,當(dāng)一個(gè)文件被刪除后,它的磁盤塊就被釋放并添加到內(nèi)存中的鏈表結(jié)點(diǎn)中,如就被釋放并添加到內(nèi)存中的鏈表結(jié)點(diǎn)中,如果該結(jié)點(diǎn)裝滿,就把它寫回磁盤。果該結(jié)點(diǎn)裝滿,就把它寫回磁盤。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)

9、課程12121212.3 文件分配方法文件分配方法? 如何為文件分配存儲(chǔ)空間,以便有效使用磁如何為文件分配存儲(chǔ)空間,以便有效使用磁盤空間和快速訪問文件?盤空間和快速訪問文件?l方法:方法:連續(xù)分配連續(xù)分配、鏈表分配鏈表分配、帶有文件分配表的鏈表結(jié)帶有文件分配表的鏈表結(jié)構(gòu)構(gòu)、索引節(jié)點(diǎn)索引節(jié)點(diǎn)校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程13131312.3.1 連續(xù)分配連續(xù)分配(Contiguous Allocation)v 把每個(gè)文件存放在把每個(gè)文件存放在連續(xù)的磁盤數(shù)據(jù)塊連續(xù)的磁盤數(shù)據(jù)塊中。中。例如,如果磁盤數(shù)據(jù)例如,如果磁盤數(shù)據(jù)塊大小為塊大小為4KB,則一,則一個(gè)個(gè)40KB的文件就需的文件就需要要10個(gè)連續(xù)的

10、磁盤塊。個(gè)連續(xù)的磁盤塊。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程14141412.3.1 連續(xù)分配連續(xù)分配(Contiguous Allocation)l當(dāng)前應(yīng)用:當(dāng)前應(yīng)用:CD-ROM、DVD等一次性寫入的光學(xué)等一次性寫入的光學(xué)存儲(chǔ)介質(zhì)領(lǐng)域。存儲(chǔ)介質(zhì)領(lǐng)域。l優(yōu)點(diǎn):簡單、易實(shí)現(xiàn)優(yōu)點(diǎn):簡單、易實(shí)現(xiàn)l缺點(diǎn):外碎片缺點(diǎn):外碎片(指比較小、沒有辦法再利用的多個(gè)指比較小、沒有辦法再利用的多個(gè)連續(xù)空閑塊連續(xù)空閑塊)校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程15151512.3.2 鏈接分配鏈接分配(Linked Allocation)l 為每個(gè)文件構(gòu)造為每個(gè)文件構(gòu)造一條磁盤塊鏈表。一條磁盤塊鏈表。每個(gè)塊的每個(gè)字每個(gè)塊的每個(gè)字作為指

11、向下一塊作為指向下一塊的指針,塊的其的指針,塊的其余部分則用來存余部分則用來存放數(shù)據(jù)。放數(shù)據(jù)。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程16161612.3.2 鏈接分配鏈接分配(Linked Allocation)校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程17171712.3.2 鏈接分配鏈接分配(Linked Allocation)n 優(yōu)點(diǎn):優(yōu)點(diǎn):每一個(gè)磁盤塊都被利用每一個(gè)磁盤塊都被利用(不會(huì)有外碎片,但可能不會(huì)有外碎片,但可能有內(nèi)碎片有內(nèi)碎片)、目錄項(xiàng)中只需存放第一個(gè)塊的磁盤、目錄項(xiàng)中只需存放第一個(gè)塊的磁盤地址。地址。n 缺點(diǎn):缺點(diǎn):不利用隨機(jī)訪問、指針要占用字節(jié)。不利用隨機(jī)訪問、指針要占用字節(jié)。校重點(diǎn)建設(shè)課程校重

12、點(diǎn)建設(shè)課程18181812.3.2 帶有文件分配表的鏈表結(jié)構(gòu)帶有文件分配表的鏈表結(jié)構(gòu)v 帶有文件分配表的鏈表結(jié)帶有文件分配表的鏈表結(jié)構(gòu)構(gòu)(Linked List with File Allocation Table)在鏈表的基礎(chǔ)上進(jìn)行改進(jìn),在鏈表的基礎(chǔ)上進(jìn)行改進(jìn),把每一個(gè)磁盤塊中的把每一個(gè)磁盤塊中的鏈表指鏈表指針針單獨(dú)抽取出來,單獨(dú)抽取出來,單獨(dú)組成單獨(dú)組成一個(gè)表格一個(gè)表格,放在,放在內(nèi)存中內(nèi)存中,這,這個(gè)表格稱為文件分配表。個(gè)表格稱為文件分配表。標(biāo)志標(biāo)志0表示結(jié)束。表示結(jié)束。如如DOS、Windows98校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程19191912.3.2 帶有文件分配表的鏈表結(jié)構(gòu)帶有文件分

13、配表的鏈表結(jié)構(gòu)l 優(yōu)點(diǎn):優(yōu)點(diǎn):容易隨機(jī)訪問、整個(gè)鏈表都在內(nèi)存中遍歷速度較容易隨機(jī)訪問、整個(gè)鏈表都在內(nèi)存中遍歷速度較塊、目錄項(xiàng)中只需存放第一個(gè)塊的磁盤地址塊、目錄項(xiàng)中只需存放第一個(gè)塊的磁盤地址l 缺點(diǎn):缺點(diǎn):整個(gè)表整個(gè)表都必須位于都必須位于內(nèi)存中內(nèi)存中。如果一個(gè)如果一個(gè)20GB的磁盤,塊大小為的磁盤,塊大小為1KB,則,則FAT表項(xiàng)表項(xiàng)就需要就需要2000萬個(gè),若每個(gè)表項(xiàng)占萬個(gè),若每個(gè)表項(xiàng)占4字節(jié),則整個(gè)表占字節(jié),則整個(gè)表占內(nèi)存內(nèi)存80MB。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程20202012.3.3 索引分配索引分配v 索引節(jié)點(diǎn)索引節(jié)點(diǎn)(index-node)給每個(gè)文件賦予一個(gè)數(shù)據(jù)結(jié)構(gòu),稱為索引節(jié)點(diǎn)或

14、給每個(gè)文件賦予一個(gè)數(shù)據(jù)結(jié)構(gòu),稱為索引節(jié)點(diǎn)或i節(jié)點(diǎn),里面列出文件的屬性和各個(gè)數(shù)據(jù)塊的磁節(jié)點(diǎn),里面列出文件的屬性和各個(gè)數(shù)據(jù)塊的磁盤地址。盤地址。當(dāng)一個(gè)文件被打開時(shí),才把它的當(dāng)一個(gè)文件被打開時(shí),才把它的i節(jié)點(diǎn)讀入內(nèi)存,節(jié)點(diǎn)讀入內(nèi)存,如果一個(gè)節(jié)點(diǎn)占用如果一個(gè)節(jié)點(diǎn)占用n個(gè)字節(jié),且最多只能同時(shí)打個(gè)字節(jié),且最多只能同時(shí)打開開k個(gè)文件,則存放節(jié)點(diǎn)的空間是個(gè)文件,則存放節(jié)點(diǎn)的空間是nk個(gè)字節(jié),與個(gè)字節(jié),與磁盤的容量無關(guān)。而磁盤的容量無關(guān)。而FAT不同,它與磁盤容量成不同,它與磁盤容量成正比。正比。如如Linux、GeekOS校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程21212112.3.3 索引分配索引分配? 如果每個(gè)如果每

15、個(gè)i節(jié)點(diǎn)能夠存放的磁盤地址個(gè)數(shù)是有限的,節(jié)點(diǎn)能夠存放的磁盤地址個(gè)數(shù)是有限的,那么如果那么如果文件太大文件太大,超出這個(gè)限制怎么辦?,超出這個(gè)限制怎么辦? 屬 性i節(jié)點(diǎn)節(jié)點(diǎn)磁盤地址磁盤地址磁盤塊磁盤塊最后一些磁盤地址不是指向數(shù)據(jù)塊,而是最后一些磁盤地址不是指向數(shù)據(jù)塊,而是指向一個(gè)指向一個(gè)間接塊間接塊,此間接塊存放更多的磁盤塊地址。下圖是,此間接塊存放更多的磁盤塊地址。下圖是一個(gè)具有三級(jí)間接塊的一個(gè)具有三級(jí)間接塊的i節(jié)點(diǎn)。節(jié)點(diǎn)。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程23232312.4 目錄的實(shí)現(xiàn)目錄的實(shí)現(xiàn)v 打開一個(gè)文件:打開一個(gè)文件:需要根據(jù)路徑名找目錄項(xiàng)需要根據(jù)路徑名找目錄項(xiàng)需要定位根目錄:位需要定位

16、根目錄:位于磁盤分區(qū)中的某個(gè)固定位置,于磁盤分區(qū)中的某個(gè)固定位置,Unix中此位置中此位置是超級(jí)塊。是超級(jí)塊。v 目錄項(xiàng)提供了查找磁盤塊所需要的信息目錄項(xiàng)提供了查找磁盤塊所需要的信息整個(gè)文件的磁盤地址整個(gè)文件的磁盤地址(連續(xù)分配連續(xù)分配)第一個(gè)磁盤塊的地址第一個(gè)磁盤塊的地址(鏈表分配鏈表分配) i節(jié)點(diǎn)節(jié)點(diǎn)(索引節(jié)點(diǎn)方式分配索引節(jié)點(diǎn)方式分配)校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程24242412.4 目錄的實(shí)現(xiàn)目錄的實(shí)現(xiàn)v 哪兒存放文件的屬性信息?哪兒存放文件的屬性信息?把文件屬性直接放在目錄項(xiàng)中把文件屬性直接放在目錄項(xiàng)中一個(gè)目錄由一組固定長度的目錄項(xiàng)組成,一個(gè)存放一一個(gè)目錄由一組固定長度的目錄項(xiàng)組成,一

17、個(gè)存放一個(gè)文件,在每個(gè)目錄項(xiàng)中包含文件名、屬性及此文件個(gè)文件,在每個(gè)目錄項(xiàng)中包含文件名、屬性及此文件對(duì)應(yīng)的磁盤塊地址。如圖對(duì)應(yīng)的磁盤塊地址。如圖a。針對(duì)使用針對(duì)使用i節(jié)點(diǎn)的系統(tǒng),把文件屬性存放在節(jié)點(diǎn)的系統(tǒng),把文件屬性存放在i節(jié)點(diǎn)節(jié)點(diǎn)中中,如圖如圖b。圖圖a圖圖b校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程252525Linux中的目錄中的目錄n Unix中的目錄項(xiàng)如圖所示。中的目錄項(xiàng)如圖所示。n 當(dāng)一個(gè)文件被打開時(shí),文件系統(tǒng)根據(jù)用戶給定的文當(dāng)一個(gè)文件被打開時(shí),文件系統(tǒng)根據(jù)用戶給定的文件名,找到相應(yīng)的磁盤塊。件名,找到相應(yīng)的磁盤塊。n 示例:如何找示例:如何找/usr/ast/mbox的?的?首先找根目錄,此目

18、錄通過超級(jí)塊可以找到。然后,找首先找根目錄,此目錄通過超級(jí)塊可以找到。然后,找usr。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程262626校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程27272712.5 GeekOS的文件系統(tǒng)的文件系統(tǒng)保存測試用保存測試用的用戶可執(zhí)的用戶可執(zhí)行程序行程序我們需要我們需要實(shí)現(xiàn)的文實(shí)現(xiàn)的文件系統(tǒng)件系統(tǒng)校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程28282812.5.1 VFS(虛擬文件系統(tǒng)虛擬文件系統(tǒng))l將各種具體文件系統(tǒng)的基本操作抽象出來、將各種具體文件系統(tǒng)的基本操作抽象出來、組織在一起,從而形成系統(tǒng)調(diào)用與實(shí)際文件組織在一起,從而形成系統(tǒng)調(diào)用與實(shí)際文件系統(tǒng)之間的中間層。系統(tǒng)之間的中間層。l使一個(gè)操作系統(tǒng)可

19、以使用多種文件系統(tǒng)成為使一個(gè)操作系統(tǒng)可以使用多種文件系統(tǒng)成為可能??赡?。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程29292912.5.2 高速緩沖區(qū)高速緩沖區(qū)l用于保存磁盤塊數(shù)據(jù)的內(nèi)存區(qū),用于保存磁盤塊數(shù)據(jù)的內(nèi)存區(qū),是一個(gè)虛擬磁盤。是一個(gè)虛擬磁盤。l緩沖塊大小與磁盤塊大小一樣:緩沖塊大小與磁盤塊大小一樣:4KB4KBl文件系統(tǒng)進(jìn)行磁盤操作時(shí),首文件系統(tǒng)進(jìn)行磁盤操作時(shí),首先檢查所需磁盤塊是否已經(jīng)在先檢查所需磁盤塊是否已經(jīng)在高速緩沖區(qū)中,如果在,就直高速緩沖區(qū)中,如果在,就直接在內(nèi)存上進(jìn)行塊操作,如果接在內(nèi)存上進(jìn)行塊操作,如果不在,則向塊設(shè)備提出磁盤訪不在,則向塊設(shè)備提出磁盤訪問請(qǐng)求,讀入所需磁盤塊。問請(qǐng)求,

20、讀入所需磁盤塊。文件系統(tǒng)文件系統(tǒng)高速緩沖區(qū)高速緩沖區(qū)塊設(shè)備請(qǐng)求處理機(jī)制塊設(shè)備請(qǐng)求處理機(jī)制磁盤磁盤校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程30303012.5.3 GOSFS文件系統(tǒng)結(jié)構(gòu)文件系統(tǒng)結(jié)構(gòu)l支持多級(jí)目錄、長文件名。支持多級(jí)目錄、長文件名。l提供文件與目錄的創(chuàng)建、刪除等基本操作。提供文件與目錄的創(chuàng)建、刪除等基本操作。l文件系統(tǒng)駐留在文件系統(tǒng)駐留在Ide1Ide1硬盤上,大?。河脖P上,大?。?0MB10MB。l磁盤塊:磁盤塊:4KB4KB校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程313131(1) GOSFS的布局的布局校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程323232(1) GOSFS的布局的布局l第第0塊塊(超級(jí)塊超級(jí)塊

21、)Magic:4Byte,是具體的文件系統(tǒng)標(biāo)識(shí)是具體的文件系統(tǒng)標(biāo)識(shí) RootDirPointer:根目錄的磁盤塊號(hào),根目錄的磁盤塊號(hào),Size: 磁盤大小磁盤大小FreeBlocksBitmap:1024*8位,每一位對(duì)應(yīng)一個(gè)位,每一位對(duì)應(yīng)一個(gè)4KB的的磁盤塊。磁盤塊。1024*8*4KB=32MB.磁盤格式化磁盤格式化:系統(tǒng)根據(jù)磁盤容量計(jì)算出:系統(tǒng)根據(jù)磁盤容量計(jì)算出磁盤塊數(shù)磁盤塊數(shù),然后,然后計(jì)算位圖大小并將計(jì)算位圖大小并將位圖位圖中對(duì)應(yīng)的位設(shè)置為空,然后創(chuàng)建中對(duì)應(yīng)的位設(shè)置為空,然后創(chuàng)建根目錄根目錄,并使,并使RootDirPointer指向它,將相關(guān)數(shù)據(jù)填入指向它,將相關(guān)數(shù)據(jù)填入超級(jí)塊,并

22、將根目錄使用的磁盤塊在位圖對(duì)應(yīng)位置標(biāo)記超級(jí)塊,并將根目錄使用的磁盤塊在位圖對(duì)應(yīng)位置標(biāo)記為使用,最后填寫為使用,最后填寫magic。l除第除第0塊之外,其它磁盤塊用于存放文件和目錄。塊之外,其它磁盤塊用于存放文件和目錄。校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程333333(2) 文件與目錄文件與目錄l將目錄作為特殊的文件進(jìn)行管理,目錄項(xiàng)(即文件將目錄作為特殊的文件進(jìn)行管理,目錄項(xiàng)(即文件控制塊)定義如下:控制塊)定義如下: struct GOSFS_Dir_Entry ulong_t size; ulong_t flags; char filename128; ulong_t blockList10; struct VFS_ACL_Entry acl10 ;校重點(diǎn)建設(shè)課程校重點(diǎn)建設(shè)課程343434(2) 文件與目錄文件與目錄GOSFS_Dir_Entryfilename128flagssizeacl10blockList10目錄項(xiàng)目錄項(xiàng)GOSFS_Dir_EntryGOSFS_Dir_EntryGOSFS_D

溫馨提示

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

評(píng)論

0/150

提交評(píng)論