計(jì)算機(jī)操作系統(tǒng)第10章 文件管理2_第1頁
計(jì)算機(jī)操作系統(tǒng)第10章 文件管理2_第2頁
計(jì)算機(jī)操作系統(tǒng)第10章 文件管理2_第3頁
計(jì)算機(jī)操作系統(tǒng)第10章 文件管理2_第4頁
計(jì)算機(jī)操作系統(tǒng)第10章 文件管理2_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、10.4 文件目錄管理文件目錄管理n計(jì)算機(jī)系統(tǒng)中的文件種類繁多,數(shù)量龐大,為了有效地管計(jì)算機(jī)系統(tǒng)中的文件種類繁多,數(shù)量龐大,為了有效地管理這些文件,方便用戶查找所需的文件,應(yīng)對它們加以適理這些文件,方便用戶查找所需的文件,應(yīng)對它們加以適當(dāng)?shù)慕M織。文件的組織問題也就是目錄結(jié)構(gòu)問題;當(dāng)?shù)慕M織。文件的組織問題也就是目錄結(jié)構(gòu)問題;n在提到文件系統(tǒng)的目錄(在提到文件系統(tǒng)的目錄(directory)時(shí),涉及到以下名詞:)時(shí),涉及到以下名詞:目錄項(xiàng)目錄項(xiàng)、目錄文件、目錄;、目錄文件、目錄;n目錄項(xiàng)也叫文件控制塊(目錄項(xiàng)也叫文件控制塊(FCB),包含一個(gè)文件的描述信),包含一個(gè)文件的描述信息,與文件是一一對應(yīng)

2、的;目錄文件是由若干個(gè)目錄項(xiàng)組息,與文件是一一對應(yīng)的;目錄文件是由若干個(gè)目錄項(xiàng)組成的文件;目錄是一個(gè)統(tǒng)稱,可以看做是一個(gè)文件系統(tǒng)的成的文件;目錄是一個(gè)統(tǒng)稱,可以看做是一個(gè)文件系統(tǒng)的所有目錄文件的集合;所有目錄文件的集合;n下面先介紹目錄項(xiàng);下面先介紹目錄項(xiàng);10。4。1 目錄項(xiàng)目錄項(xiàng)n目錄項(xiàng)也叫文件控制塊(FCB)是用來描述一個(gè)文件的數(shù)據(jù)結(jié)構(gòu),目錄項(xiàng)的的具體內(nèi)容因文件系統(tǒng)而異,但至少應(yīng)包括以下信息: 文件名:文件名:標(biāo)識一個(gè)文件的符號名; 文件類型:文件類型:如文本文件; 文件結(jié)構(gòu):文件結(jié)構(gòu):說明文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu); 文件的物理位置:文件的物理位置:指示文件在外存上的存儲(chǔ)位置。包括設(shè)備名

3、、存儲(chǔ)地址及文件長度等; 存取控制信息:存取控制信息:指示文件的存取權(quán)限; 管理信息:管理信息:包括文件建立的日期及時(shí)間、上次存取日期及時(shí)間、當(dāng)前文件使用狀態(tài)信息; DOS的目錄項(xiàng)(文件控制塊)的目錄項(xiàng)(文件控制塊)n文件名及擴(kuò)展名占11字節(jié);屬性占1字節(jié),包括只讀、隱藏、系統(tǒng)、卷標(biāo)、子目錄及歸檔;上次存取時(shí)間及日期各占2個(gè)字節(jié);文件起始簇號占2個(gè)字節(jié);文件長度占4個(gè)字節(jié);nFCB的長度為32字節(jié);文件名擴(kuò)展名文件屬性備用上次訪問時(shí)間上次訪問日期文件起始簇號文件長度9。4。2 目錄結(jié)構(gòu)目錄結(jié)構(gòu)n常用的文件目錄結(jié)構(gòu)有:n單級目錄結(jié)構(gòu);n二級目錄結(jié)構(gòu);n多級目錄 結(jié)構(gòu);單級目錄結(jié)構(gòu)單級目錄結(jié)構(gòu)n單

4、級目錄結(jié)構(gòu)又稱一級目錄結(jié)構(gòu)。在這種結(jié)構(gòu)中,整個(gè)文件系統(tǒng)只建立一張目錄表(目錄文件),每個(gè)文件占據(jù)其中的一個(gè)表目(目錄項(xiàng));n特點(diǎn):特點(diǎn):易于實(shí)現(xiàn),管理簡單;但當(dāng)系統(tǒng)中文件數(shù)增多時(shí),查找時(shí)間較長,易發(fā)生重名問題。文件名物理地址文件其他屬性信息abcreportshang二級目錄結(jié)構(gòu)二級目錄結(jié)構(gòu)n二級目錄結(jié)構(gòu)將文件目錄分成:n主文件目錄:記錄用戶名及相應(yīng)用戶文件目錄所在的存儲(chǔ)位置;n用戶文件目錄:記錄該用戶文件的有關(guān)信息;n當(dāng)用戶想建立文件時(shí),如果是新用戶,則系統(tǒng)為其在主目錄中分配一個(gè)表目,并為其分配存放用戶文件目錄的存儲(chǔ)空間。同時(shí)在用戶文件目錄中為新文件分配一個(gè)表目,并在表目中填入有關(guān)信息;n文

5、件刪除時(shí),只須在用戶文件目錄中刪除該文件的目錄項(xiàng)。如果刪除后該用戶目錄表為空,則表明該用戶已脫離了系統(tǒng),從而可以將主文件目錄表中該用戶的對應(yīng)項(xiàng)刪除;n二級目錄可以解決文件重名問題,并可獲得較高的查找速度;但二級目錄結(jié)構(gòu)缺乏靈活性,特別是無法反映真實(shí)世界復(fù)雜的文件組織形式。二級目錄結(jié)構(gòu)示意圖二級目錄結(jié)構(gòu)示意圖主目錄(主目錄(MFD) Wang Gao Wang的文件目錄(的文件目錄(UFD) Alpha Beta Gao的文件目錄(的文件目錄(UFD) Test Misx Alpha AlphaBetaTestMisxAlpha多級目錄結(jié)構(gòu)多級目錄結(jié)構(gòu)n多級目錄結(jié)構(gòu)是二級目錄結(jié)構(gòu)層次關(guān)系的推廣,

6、也稱為樹型目錄結(jié)構(gòu);n在多級目錄結(jié)構(gòu)中,第一級目錄稱為根目錄(樹根),目錄樹中的非葉節(jié)點(diǎn)均為目錄文件(又稱子目錄),葉結(jié)點(diǎn)為普通文件;多級目錄結(jié)構(gòu)示意圖多級目錄結(jié)構(gòu)示意圖A B C根目錄根目錄1A B D2 F E D3G A4 A C567891011 J N K12 I M K13 A H F1415162021171819ba文件路徑名和當(dāng)前目錄文件路徑名和當(dāng)前目錄n路徑名:是一個(gè)字符串,該字符串由從根目錄出發(fā)到所找文件的通路上所有各級子目錄名和該文件名用分隔符連接起來構(gòu)成;n從根目錄出發(fā)的路徑稱為絕對路徑;n當(dāng)目錄層次較多時(shí),每次從根目錄開始查找文件很費(fèi)時(shí)間,為此引入了當(dāng)前目錄。n由用

7、戶在一定時(shí)間內(nèi)指定某個(gè)目錄為當(dāng)前目錄,或稱工作目錄;n進(jìn)程對各文件的訪問相對于當(dāng)前目錄進(jìn)行,此時(shí)文件使用的路徑名為相對路徑,它由從當(dāng)前目錄出發(fā)到所找文件的通路上的所有目錄名與數(shù)據(jù)文件名用分隔符連接起來而形成;n有兩個(gè)特殊目錄:n“ . ”:表示給定目錄的父目錄;n“ . ”:表示當(dāng)前目錄;10.5 文件的共享和保護(hù)文件的共享和保護(hù)n文件的共享是指不同用戶可以有條件地共同使用同一文件;n文件的保護(hù)有兩層含義,一是防止越權(quán)或非法訪問,二是防止文件被丟失或被破壞;n本書講述的文件共享的方法有三種:n早期的方法;n基于索引結(jié)點(diǎn)的方法;n利用符號鏈接的方法;n文件保護(hù)的方法有多種,見P236-239;1

8、.早期的文件共享方法文件共享方法-繞道法n繞道法要求每個(gè)用戶在當(dāng)前目錄下工作,用戶對所有文件的訪問都相對于當(dāng)前目錄進(jìn)行;n用戶使用相對路徑訪問文件。當(dāng)訪問文件不在當(dāng)前目錄下時(shí),用戶應(yīng)從當(dāng)前目錄出發(fā)向上返回到與所要共享文件所在路徑的交叉點(diǎn),再順序向下訪問到共享文件;n因繞道法要繞彎路訪問多級目錄,從而其搜索效率不高。1 早期的文件共享方法早期的文件共享方法-鏈接法鏈接法n鏈接法將一個(gè)目錄中的鏈指針直接指向被共享文件所在的目錄;n采用鏈接法實(shí)現(xiàn)文件共享時(shí),應(yīng)在文件說明中增加“連訪屬性”和“用戶計(jì)數(shù)”兩項(xiàng)。前者說明文件物理地址是指向文件還是指向共享文件的目錄,后者說明共享文件的用戶數(shù)目;n若要?jiǎng)h除一

9、個(gè)共享文件,必須判別是否有多個(gè)用戶共享該文件,若有則只做減1操作,否則才真正刪除此共享文件。鏈接示意圖鏈接示意圖虛線表示鏈接虛線表示鏈接A B C根目錄根目錄1A B D2 F E D3G A4 A C567891011 J N K12 I M K13 A H F1415162021171819ba1 早期的文件共享方法早期的文件共享方法-基本文件目錄表法基本文件目錄表法n基本文件目錄表法把所有文件目錄分成三級:n基本文件目錄(BFD):由文件的屬性信息及內(nèi)部標(biāo)識符組成;n主文件目錄(MFD):登記文件主的目錄;n符號文件目錄(SFD):由實(shí)體文件符號名和內(nèi)部標(biāo)識符組成。n在BFD中,以下三個(gè)

10、id是固定分配的,其余是任意分配的:n0:基本文件目錄標(biāo)識;n1:空閑文件目錄標(biāo)識;n2:主目錄標(biāo)識符;基本文件目錄示意圖基本文件目錄示意圖0123456789 ID 物理位置物理位置空閑文件目錄空閑文件目錄主目錄(主目錄(MFD)符號名符號名 IDWang 3Gao 4Wang的的SFD符號名符號名 IDSqrt 5Beta 6Gao的的SFD符號名符號名 IDTest 7Alpha 6Right 8Ol 9SqrtWang的的BetaGao的的AlphaTestRightOl基本文件目錄基本文件目錄用基本文件目錄法實(shí)現(xiàn)文件共享用基本文件目錄法實(shí)現(xiàn)文件共享n用基本文件目錄法可以方便地實(shí)現(xiàn)文件

11、共享。若要共享某個(gè)文件,只需在相應(yīng)的目錄文件中增加一個(gè)目錄項(xiàng),在其中填上符號名及被共享文件的標(biāo)識符;n如上圖中,用戶Wang和Gao共享標(biāo)識符為6的文件,對于系統(tǒng)來說,標(biāo)識符6指向同一個(gè)文件;而對Wang和Gao兩個(gè)用戶來說,則對應(yīng)于不同的文件名Beta和Alpha;2 基于索引節(jié)點(diǎn)的共享方式基于索引節(jié)點(diǎn)的共享方式n當(dāng)多個(gè)用戶需要共享文件時(shí),可以將共享文件鏈接到多個(gè)用戶的目錄中,如右圖所示;n圖中H的一個(gè)文件現(xiàn)在也出現(xiàn)在D的目錄下,D稱為該共享文件的一個(gè)鏈接;根目錄ABCDEIFH文件共享中存在的問題文件共享中存在的問題n用鏈接實(shí)現(xiàn)文件共享很方便,但也帶來一些問題。例如,目錄中包含文件的描述信

12、息,則在鏈接文件時(shí)要將該文件的描述信息復(fù)制到D目錄中,即同一個(gè)文件有兩份描述信息的副本,這就增加了文件空間的開銷;另外,若隨后通過D或H往該文件中添加或修改了內(nèi)容,則新內(nèi)容將只會(huì)反映在進(jìn)行添加操作的目錄中,這種改變對其他目錄而言是不可見的,因而新增加的這部分內(nèi)容不能被共享。解決辦法解決辦法n為解決上述問題,可將文件的描述信息從目錄項(xiàng)中分離出來,構(gòu)成一個(gè)稱之為索引節(jié)點(diǎn)(i節(jié)點(diǎn))的數(shù)據(jù)結(jié)構(gòu),然后,通過該索引節(jié)點(diǎn)來共享文件。目錄項(xiàng)文件名指針?biāo)饕?i)節(jié)點(diǎn)文件描述信息 以Unix(V6)為例,目錄項(xiàng)中的“文件名”占14字節(jié),“指針”占2字節(jié)。索引節(jié)點(diǎn)的內(nèi)容索引節(jié)點(diǎn)的內(nèi)容n索引節(jié)點(diǎn)作為存放文件描述信息

13、的數(shù)據(jù)結(jié)構(gòu)所保含的內(nèi)容就是文件控制塊的內(nèi)容,大體如下:n文件主標(biāo)識數(shù);n文件類型:普通、目錄、特別;n文件存取權(quán)限;n文件物理地址;n文件長度;n文件鏈接計(jì)數(shù);n文件存取時(shí)間;基于索引節(jié)點(diǎn)的共享示意圖基于索引節(jié)點(diǎn)的共享示意圖n此時(shí),任何用戶對文件的修改都會(huì)反映在索引節(jié)點(diǎn)中,其他用戶可以通過該共享的索引節(jié)點(diǎn)了解這種改變;另外,不管有多少用戶共享了同一文件,都只需要一份文件描述信息,這就節(jié)省了磁盤空間。Wang用戶文件目錄 Testw Lee用戶文件目錄 Testl count2文件物理地址索引節(jié)點(diǎn)Test鏈接例鏈接例- B鏈接到鏈接到C的文件的文件n當(dāng)用戶B希望共享用戶C的文件時(shí),應(yīng)在用戶B的目

14、錄中增加一個(gè)目錄項(xiàng),并設(shè)置指針指向該文件的索引節(jié)點(diǎn),此時(shí)文件的所有者仍然是C,但索引節(jié)點(diǎn)的鏈接計(jì)數(shù)應(yīng)加1(count2),這樣就實(shí)現(xiàn)了B用戶對該文件的共享。B的目錄C的目錄 ownerC count2建立鏈接后利用符號鏈接實(shí)現(xiàn)文件共享利用符號鏈接實(shí)現(xiàn)文件共享n利用符號鏈接也可以實(shí)現(xiàn)文件共享;n例如,B為了共享C的一個(gè)文件f,可以由系統(tǒng)創(chuàng)建一個(gè)LINK類型的新文件b1,并把新文件b1添加到B的目錄中,以實(shí)現(xiàn)B的一個(gè)目錄b1與文件f的鏈接;n新文件中只包含被鏈接文件f的路徑名,稱這種鏈接方式為符號鏈接。也稱為軟鏈接。也稱為軟鏈接。符號鏈接示意圖符號鏈接示意圖n文件f的內(nèi)容是:abcde;n文件b1

15、的內(nèi)容是:/C/f;根目錄ABCB2C1A1fC2C3b1abcde文件文件f的內(nèi)容的內(nèi)容/C/f文件文件b1的內(nèi)容的內(nèi)容符號鏈接共享的說明符號鏈接共享的說明n當(dāng)用戶B要訪問被鏈接的文件f時(shí),操作系統(tǒng)發(fā)現(xiàn)要讀的文件b1是LINK類型,則由操作系統(tǒng)根據(jù)文件b1中的路徑名去讀該文件,從而實(shí)現(xiàn)了用戶B對文件f的共享;n在利用符號鏈接實(shí)現(xiàn)文件共享時(shí),僅文件所有者擁有指向其索引節(jié)點(diǎn)的指針,共享該文件的用戶只有其路徑名,而沒有指向索引節(jié)點(diǎn)的指針;n當(dāng)文件所有者刪除文件后,其他用戶若試圖通過符號鏈接訪問該文件將導(dǎo)致失敗,因?yàn)橄到y(tǒng)找不到該文件,于是將符號鏈刪除。符號鏈接共享的特點(diǎn)符號鏈接共享的特點(diǎn)n符號鏈接的

16、不足是需要額外的開銷(根據(jù)文件路徑名逐個(gè)分量進(jìn)行查找,需要多次訪問磁盤)。另外,符號鏈接需要配置索引節(jié)點(diǎn)以及一個(gè)磁盤塊用于存儲(chǔ)路徑,這也要消耗一些磁盤空間;n符號鏈接的優(yōu)點(diǎn)是只要提供一個(gè)機(jī)器的網(wǎng)絡(luò)地址以及文件在該機(jī)器上的駐留路徑,就可以鏈接全球任何地方的機(jī)器上的文件。即可以跨越文件系統(tǒng)。9.5.2 文件保護(hù)文件保護(hù)n前已說明,文件的保護(hù)有兩層含義,一是防止越權(quán)或非法訪問,二是防止文件被丟失或被破壞;n本節(jié)的重點(diǎn)是介紹第一種含義的保護(hù)方法,最主要的方法是存取權(quán)限法;n第二種含義的保護(hù)最簡單有效的方法就是備份,備份,再備份。存取權(quán)限法存取權(quán)限法n什么是存取權(quán)限?與前面講過的分段保護(hù)的定義類似,是文

17、件可以執(zhí)行的基本操作的子集合,文件可以執(zhí)行的基本操作包括“讀”(R)、“寫”(W)、“執(zhí)行”(E)、“刪除”(D)、 “追加”(A)等;n一個(gè)用戶對一個(gè)文件所擁有的存取權(quán)限可以用存取控制矩陣給出,其中一維列出使用該文件系統(tǒng)的全部用戶;另一維列出存入系統(tǒng)的全部文件;n矩陣中的每一個(gè)元素用來表示某個(gè)用戶對某個(gè)文件所擁有的存取權(quán)限,它是上述基本操作的一個(gè)子集合;存取控制矩陣?yán)嫒】刂凭仃嚴(yán)?用戶文件ZhaoHuangChengSqrtREEETestRWEENoneAlphaRWRRBetaRRWNone存取控制矩陣的使用和特點(diǎn)存取控制矩陣的使用和特點(diǎn)n當(dāng)用戶向文件系統(tǒng)提出存取請求時(shí),由存取控制驗(yàn)證

18、模塊利用這個(gè)存取控制矩陣將本次請求和該用戶對這個(gè)文件的存取權(quán)限進(jìn)行比較,如果不匹配就拒絕執(zhí)行;n存取控制矩陣法從原理上講是簡單、清晰的,但在實(shí)際上是不可行的,因?yàn)楫?dāng)用戶和文件較多時(shí),存取控制矩陣將變得非常龐大。例如,某系統(tǒng)有500個(gè)用戶,20000個(gè)文件,那么這個(gè)存取控制矩陣就有500 20000 =107個(gè)元素,空間開銷太大;n實(shí)用的存取控制法有兩種,一是存取控制表,二是用戶權(quán)限表。存取控制表存取控制表n存取控制表是一種以文件為主的實(shí)現(xiàn)方案,它給出每個(gè)用戶或每類用戶對該文件擁有的存取權(quán)限。Unix系統(tǒng)使用的就是這種方案。 文件用戶ALPHA文件主R、W、EA組R、EB組E其他None用戶權(quán)限

19、表用戶權(quán)限表n用戶權(quán)限表是以用戶為主的實(shí)現(xiàn)方案,它把一個(gè)或一類用戶對所有文件擁有的存取權(quán)限存放在該表內(nèi)。 用戶文件A組SqrtR、ETestR、EAlphaRBetaR口令口令n口令是一種簡單的文件保護(hù)方法;n使用口令的方法是文件主為自己的每個(gè)文件規(guī)定一個(gè)口令,一方面進(jìn)行口令登記,另一方面把口令告訴允許訪問該文件的用戶;n當(dāng)用戶請求訪問某文件時(shí),首先要提供該文件的口令,經(jīng)證實(shí)后再進(jìn)行相應(yīng)的訪問。n口令方法的特點(diǎn):口令方法的特點(diǎn):n只需提供少量的保護(hù)信息,簡單且易于實(shí)現(xiàn);n但其保密性不強(qiáng),不易更改存取權(quán)限;n這種方法常用于識別用戶。 密碼密碼n密碼方法對需要保護(hù)的文件進(jìn)行加密;n文件寫入時(shí)進(jìn)行編

20、碼,讀出時(shí)進(jìn)行譯碼,要求發(fā)出存取請求的用戶提供一個(gè)代碼鍵;n一種簡單的編碼方式是利用代碼鍵作為生成一串隨機(jī)數(shù)的起始碼,編碼程序把這些隨機(jī)數(shù)加到被編碼文件的字節(jié)中去;譯碼時(shí),用和編碼時(shí)相同的代碼鍵啟動(dòng)隨機(jī)數(shù)發(fā)生器,并從存入文件的各字節(jié)中依次減去所產(chǎn)生的隨機(jī)數(shù);n密碼技術(shù)具有保密性強(qiáng)、節(jié)省存儲(chǔ)空間的優(yōu)點(diǎn),但編碼和譯碼要花費(fèi)一定的時(shí)間。9.5.3.文件的轉(zhuǎn)儲(chǔ)和恢復(fù)文件的轉(zhuǎn)儲(chǔ)和恢復(fù)n為了能在各種意外情況下減少或避免文件系統(tǒng)遭到破壞和丟失時(shí)的損失,最有效的方法就是定期轉(zhuǎn)儲(chǔ)即備份;n轉(zhuǎn)儲(chǔ)的方法有兩種:全量轉(zhuǎn)儲(chǔ)和增量轉(zhuǎn)儲(chǔ);n全量轉(zhuǎn)儲(chǔ)是定期將所有文件備份到另一存儲(chǔ)介質(zhì)上,一旦系統(tǒng)出現(xiàn)問題,便可根據(jù)最近的備份恢

21、復(fù)系統(tǒng);n增量轉(zhuǎn)儲(chǔ)是將上次轉(zhuǎn)儲(chǔ)以來修改過的文件和新增加的文件轉(zhuǎn)儲(chǔ)到某存儲(chǔ)介質(zhì)上。當(dāng)系統(tǒng)遭到破壞后,恢復(fù)到數(shù)小時(shí)前文件系統(tǒng)的狀態(tài),使得所造成的損失減到最小。10.6 文件系統(tǒng)的使用文件系統(tǒng)的使用n文件系統(tǒng)是管理文件的,是為各種文件操作服務(wù)的,主要的文件操作有:n建立文件;n刪除文件;n讀文件;n寫文件;n打開文件;n關(guān)閉文件;n等等;文件的建立和刪除文件的建立和刪除n建立新文件的操作是:n先為新文件分配必要的外存空間;n在文件系統(tǒng)的目錄中為其建立一個(gè)目錄項(xiàng);n在目錄項(xiàng)中應(yīng)記錄新文件的文件名及其在外存的地址等信息。n刪除文件的操作是:n先從目錄中找到要?jiǎng)h除文件的目錄項(xiàng)并使之成為空閑目錄項(xiàng);n然后回

22、收該文件所占用的存儲(chǔ)空間。文件的讀、寫文件的讀、寫n讀文件的操作是:n通過查找目錄找到指定文件的目錄項(xiàng);n從目錄項(xiàng)中得到被讀文件在外存的地址;n將文件內(nèi)容從外存讀入內(nèi)存。n寫文件的操作是:n通過查找目錄找到指定文件的目錄項(xiàng);n從目錄項(xiàng)中得到被寫文件在外存的地址;n將文件內(nèi)容從內(nèi)存寫入外存。文件的打開和關(guān)閉文件的打開和關(guān)閉n文件在執(zhí)行讀、寫等操作前必須先打開;n打開文件的目的是在內(nèi)存建立起用戶進(jìn)程與被打開文件之間的聯(lián)系。方法是將盤上的文件控制塊(i節(jié)點(diǎn))讀到內(nèi)存,并在相應(yīng)進(jìn)程控制塊(PCB)設(shè)立指針指向該文件控制塊;n當(dāng)一文件的操作執(zhí)行完后,應(yīng)將該文件關(guān)閉。關(guān)閉文件就是撤消內(nèi)存中的該文件控制塊,

23、切斷用戶進(jìn)程與該文件控制塊的聯(lián)系;若在文件打開期間,該文件作過某種修改,則應(yīng)將其寫回外存。文件系統(tǒng)使用舉例文件系統(tǒng)使用舉例n系統(tǒng)調(diào)用Read(fd,5,2K):將文件fd第5個(gè)記錄讀到內(nèi)存儲(chǔ)始地址為2K的空間;n假定:假定:1,文件已打開;2,記錄長度500個(gè)字節(jié);3,物理塊大小為1000字節(jié);4,文件的存放方式為索引方式;01234560.2K.文件內(nèi)存本例執(zhí)行流程本例執(zhí)行流程Read(fd,5,2k) call DMS(read,fd,5,2k)獲得fd的內(nèi)存i-節(jié)點(diǎn)指針ip, call FPS(Read,ip,5,2K) 驗(yàn)證存取權(quán)限call LFS(Read,ip,5,2K)計(jì)算邏輯塊

24、號和塊內(nèi)地址call PFS(Read,ip,LBN,2K)獲得物理塊號,申請緩存,填寫I/O申請表,掛到磁盤設(shè)備上,啟動(dòng)I/O,入睡等待I/O操作邏輯塊號的計(jì)算 LBN=LBA/PBL習(xí)題nP240: 1, 2, 5, 6, 8, 9UNIX文件系統(tǒng)nUNIX文件系統(tǒng)的特點(diǎn):n采用樹型目錄結(jié)構(gòu),且文件系統(tǒng)可以拆卸。n采用混合索引式的文件物理結(jié)構(gòu),既能提高查詢速度又可節(jié)省存放文件地址所需的空間n采用成組鏈接法管理空閑磁盤空間。既提高查找速度又節(jié)省空間。n引入了索引節(jié)點(diǎn)的概念。文件的物理結(jié)構(gòu)n在UNIX系統(tǒng)中,文件的物理結(jié)構(gòu)采用混合索引結(jié)構(gòu),文件所占用的盤塊號直接或間接地存放在該文件索引節(jié)點(diǎn)的1

25、3個(gè)地址項(xiàng)中。n在查找文件時(shí),只需找到該文件的索引節(jié)點(diǎn),便可以用直接或間接的尋址方式獲得指定文件的盤塊號。尋址方式n直接尋址方式:在索引節(jié)點(diǎn)中建立了10個(gè)地址項(xiàng),每個(gè)地址項(xiàng)中直接存放了相應(yīng)文件所在盤塊的盤塊號。假定一個(gè)盤塊的大小為1KB ,一個(gè)盤塊號占4字節(jié)。n一次間接尋址方式:先將1256個(gè)盤塊號存放在一個(gè)磁盤塊中,再將該磁盤塊的塊號存放在這一地址項(xiàng)中。用一次間接地址項(xiàng)可將尋址范圍由10KB擴(kuò)大到266KB。尋址方式(續(xù))n多次間接尋址方式:為了進(jìn)一步擴(kuò)大尋址范圍,又引入了二次間接和三次間接尋址方式。二次間接尋址可將尋址范圍擴(kuò)大到64MB。三次間接尋址可將尋址范圍擴(kuò)大到16GB。直接尋址和間

26、接尋址示意圖 直 接 尋 址一次間址二次間址三次間址 一次間接塊三次間接塊二次間接塊索引節(jié)點(diǎn)數(shù)據(jù)塊 地址轉(zhuǎn)換(1)n地址轉(zhuǎn)換過程分兩步實(shí)現(xiàn):n將字節(jié)偏移量轉(zhuǎn)換為文件邏輯塊號及塊內(nèi)偏移量;n把邏輯塊號轉(zhuǎn)換為文件的物理塊號。地址轉(zhuǎn)換(2)n將字節(jié)偏移量轉(zhuǎn)化為文件邏輯塊號:用字節(jié)偏移量除以盤塊大?。ㄒ宰止?jié)為單位),其商是文件邏輯塊號,余數(shù)是塊內(nèi)位移量。n把文件邏輯塊號轉(zhuǎn)換為物理盤塊號:根據(jù)邏輯盤塊號可知對應(yīng)的文件地址是直接地址還是間接地址,不同的地址應(yīng)采用不同的轉(zhuǎn)換方法。地址轉(zhuǎn)換(3)n直接地址:當(dāng)邏輯盤塊號10時(shí),將文件邏輯塊號轉(zhuǎn)換為索引節(jié)點(diǎn)的地址項(xiàng)下標(biāo);從該地址項(xiàng)中即可獲得物理盤塊號。n一次間接

27、尋址:當(dāng)10邏輯盤塊號266時(shí),從索引節(jié)點(diǎn)的一次間接項(xiàng)中得到一次間接的盤塊號;再讀入間接塊的內(nèi)容;計(jì)算一次間接塊中的地址下標(biāo)(即邏輯塊號10);從相應(yīng)下標(biāo)的地址項(xiàng)中得到物理塊號。n多次間接尋址:當(dāng)266邏輯塊號65802時(shí),應(yīng)采用二次間接尋址;當(dāng)65802邏輯塊號時(shí),應(yīng)采用三次間接尋址。多次間接尋址的轉(zhuǎn)換方法和一次間接尋址相類似,但要多次循環(huán)。索引節(jié)點(diǎn)的管理n在UNIX系統(tǒng)中,文件信息存放在磁盤或磁帶上,一個(gè)物理存儲(chǔ)器中可包含一個(gè)或多個(gè)文件系統(tǒng)。超級塊n超級塊用于存放文件系統(tǒng)的資源管理信息:n文件系統(tǒng)的盤塊數(shù)n空閑盤塊號表及空閑盤塊號數(shù)n磁盤索引節(jié)點(diǎn)占用的盤塊數(shù)n空閑索引節(jié)點(diǎn)表和空閑索引節(jié)點(diǎn)數(shù)

28、n空閑盤塊號表及空閑索引節(jié)點(diǎn)表的鎖字段n超級塊修改標(biāo)志及修改時(shí)間 磁盤索引節(jié)點(diǎn)的分配過程iallocn當(dāng)創(chuàng)建一個(gè)新文件時(shí),要為之分配一個(gè)空閑磁盤索引節(jié)點(diǎn)。其分配過程如下:n檢查超級塊是否上鎖。若鎖住則睡眠等待。n檢查超級塊中的空閑索引節(jié)點(diǎn)表是否為空。若為空則應(yīng)從磁盤上搜索一批空閑索引節(jié)點(diǎn)。n從空閑索引節(jié)點(diǎn)表中分配一個(gè)索引節(jié)點(diǎn),并對它進(jìn)行初始化,填寫有關(guān)文件的屬性。n分配內(nèi)存索引節(jié)點(diǎn)。n將空閑磁盤索引節(jié)點(diǎn)計(jì)數(shù)減1,并設(shè)置超級塊修改標(biāo)志后返回。磁盤索引節(jié)點(diǎn)的回收過程ifreen當(dāng)要?jiǎng)h除某文件時(shí),應(yīng)回收其所占用的盤塊及相應(yīng)的磁盤索引節(jié)點(diǎn)。其回收過程如下:n檢查超級塊是否上鎖。若已上鎖便直接返回,即不

29、把本次回收的索引節(jié)點(diǎn)號記入空閑索引節(jié)點(diǎn)表中。n檢查空閑索引節(jié)點(diǎn)表是否已滿。若索引節(jié)點(diǎn)表已滿,則比較回收索引節(jié)點(diǎn)號與銘記索引節(jié)點(diǎn)號的大小,將較小者存入銘記索引節(jié)點(diǎn)中。n若空閑索引節(jié)點(diǎn)表未滿,便將回收的索引節(jié)點(diǎn)號存入其中。n將空閑磁盤索引節(jié)點(diǎn)計(jì)數(shù)加1,設(shè)置超級塊修改標(biāo)志后返回。內(nèi)存索引節(jié)點(diǎn)的分配過程igetn該過程的主要功能是分配內(nèi)存索引節(jié)點(diǎn),其輸入?yún)?shù)是文件系統(tǒng)號和索引節(jié)點(diǎn)號。n若該i節(jié)點(diǎn)(i節(jié)點(diǎn)即索引節(jié)點(diǎn))已在索引節(jié)點(diǎn)的散列隊(duì)列中,則只需對該i節(jié)點(diǎn)的引用計(jì)數(shù)加1。n如果該i節(jié)點(diǎn)不在散列隊(duì)列中,則應(yīng)從空閑i節(jié)點(diǎn)鏈中摘下一個(gè)空閑i節(jié)點(diǎn),設(shè)置文件系統(tǒng)號和索引節(jié)點(diǎn)號,并根據(jù)i節(jié)點(diǎn)號計(jì)算它應(yīng)在的散列隊(duì)列

30、,再將該i節(jié)點(diǎn)從原來的散列隊(duì)列移至新的散列隊(duì)列。n調(diào)用bread過程將磁盤i節(jié)點(diǎn)的內(nèi)容拷貝到內(nèi)存i節(jié)點(diǎn)中,并對內(nèi)存i節(jié)點(diǎn)進(jìn)行初始化。內(nèi)存索引節(jié)點(diǎn)的回收過程iputn該過程的輸入?yún)?shù)是指向內(nèi)存i節(jié)點(diǎn)的指針。n其主要功能是對指定的內(nèi)存索引節(jié)點(diǎn)引用計(jì)數(shù)進(jìn)行減1操作。若結(jié)果為0,則回收該內(nèi)存i節(jié)點(diǎn)。n若它已做過修改,還需將它寫回磁盤后再回收,然后將它鏈入內(nèi)存空閑i節(jié)點(diǎn)表中。n若其磁盤i節(jié)點(diǎn)的鏈接計(jì)數(shù)也為0,便刪除該文件,并回收分配給該文件的磁盤i節(jié)點(diǎn)和磁盤數(shù)據(jù)塊??臻e磁盤空間的管理n在UNIX中,一個(gè)文件系統(tǒng)包含許多物理塊,并按照塊號排列成如下圖所示的結(jié)構(gòu)。0#1#2#. . .K#. . .N#引導(dǎo)

31、塊 超級塊 索引節(jié)點(diǎn)表 數(shù)據(jù)塊空閑盤塊的組織nUNIX系統(tǒng)采用成組鏈接法對空閑盤塊加以組織。n即將若干個(gè)空閑盤塊劃為一個(gè)組,將每組中的所有盤塊號存放在其前一組的第一個(gè)空閑盤塊號指示的盤塊中,n而將第一組中的所有空閑盤塊號放入超級塊的空閑盤塊號表中。 空閑盤塊的組織圖109 106 103 100 95超級塊空閑盤塊號表211 208 205 112109310 307 304 214211409 406 403 313310空閑盤塊的分配n當(dāng)要分配一個(gè)盤塊時(shí),首先檢查超級塊空閑盤塊號表是否已上鎖,若已上鎖則進(jìn)程睡眠等待;n否則將超級塊空閑盤塊號表中下一個(gè)可用盤塊號分配出去。n如果所分配的盤塊號是超級塊中的最后一個(gè)可用盤塊號,則應(yīng)先將該盤塊中的內(nèi)容讀入超級塊空閑盤塊號表中;然后才將該盤塊分配出去;最后將空閑盤塊號表解鎖,并喚醒所有等待其解鎖的進(jìn)程。空閑盤塊的回收n在回收空閑盤塊時(shí),如果超級塊中的空閑盤塊號表未滿,可直接將回收盤塊的編號放入空閑盤塊號表中。n若空閑盤塊號表已滿,則應(yīng)先將空閑盤塊號表中的所有盤塊號復(fù)制到新回收的盤塊中,再將新回收盤塊的編號放到超級塊空閑盤塊號表中,此塊號就成了表中惟一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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

提交評論