第八章-文件系統(tǒng)_第1頁
第八章-文件系統(tǒng)_第2頁
第八章-文件系統(tǒng)_第3頁
第八章-文件系統(tǒng)_第4頁
第八章-文件系統(tǒng)_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第8章

文件系統(tǒng)8.1文件系統(tǒng)的概念8.1文件系統(tǒng)的概念

1、文件系統(tǒng)的引入圖8.1操作系統(tǒng)的軟硬件管理為了實現(xiàn)透明存取,出現(xiàn)文件系統(tǒng):不必了解文件存放的物理結(jié)構(gòu)、查找方法等與存取介質(zhì)有關(guān)的部分;只需給定一個文件名,文件系統(tǒng)就會自動完成相對應(yīng)的有關(guān)操作。文件系統(tǒng)完成任務(wù):對輔助空間統(tǒng)一管理設(shè)立文件邏輯結(jié)構(gòu),實現(xiàn)按名存取設(shè)立文件物理結(jié)構(gòu),便于存放、加工信息查找存儲設(shè)備中的文件信息實現(xiàn)文件的共享和保護2.文件與文件系統(tǒng)的概念文件:一組賦名的相關(guān)聯(lián)字符流的集合,或者是相關(guān)聯(lián)記錄的集合。類型流式無結(jié)構(gòu):字符流,用于源程序,目標(biāo)程序等。記錄式有結(jié)構(gòu):是一組相關(guān)數(shù)據(jù)項的集合,由N個字節(jié)組成的具有特定意義的信息單位。關(guān)鍵字能唯一地標(biāo)識出記錄的基本/組合數(shù)據(jù)項。主要用于信息管理。文件名命名符合標(biāo)識符的定義。文件系統(tǒng)操作系統(tǒng)中與管理文件有關(guān)的軟件和數(shù)據(jù)。負(fù)責(zé)為用戶建立文件,撤消、讀寫、修改和復(fù)制文件,完成對文件的按名存取,并進行存取控制。文件系統(tǒng)的特點友好的用戶接口,用戶只對文件進行操作,而不管文件結(jié)構(gòu)和存放的物理位置。對文件按名存取,對用戶透明。某些文件可以被多個用戶或進程所共享。多使用磁盤等大容量存儲器作為存儲介質(zhì),可存儲大量信息。3.文件的分類按性質(zhì)和用途分類:系統(tǒng)文件:只允許用戶通過系統(tǒng)調(diào)用來執(zhí)行它們,而不允許讀寫和修改。主要由操作系統(tǒng)核心、各種系統(tǒng)應(yīng)用程序和數(shù)據(jù)所組成。庫文件:允許用戶讀取、執(zhí)行,但不允許修改。主要由各種標(biāo)準(zhǔn)子程序庫組成。用戶文件:用戶委托文件系統(tǒng)保存的文件。只由文件的所有者或所有者授權(quán)的用戶才能使用。主要由源程序、目標(biāo)程序、用戶數(shù)據(jù)庫等組成。按組織形式分類普通文件:指組織格式為系統(tǒng)中所規(guī)定的最一般格式的文件,如由字符流組成的文件。目錄文件:由文件的目錄信息構(gòu)成的特殊文件。該文件的內(nèi)容不是各種程序或應(yīng)用數(shù)據(jù),而是用來檢索普通文件的目錄信息。特殊文件:在UNIX系統(tǒng)中,所有的輸入、輸出設(shè)備都被看作特殊文件。在使用形式上與普通文件相同,如查找目錄、存取操作等。但特殊文件的使用和設(shè)備處理程序緊密相連。系統(tǒng)必須把對特殊文件的操作轉(zhuǎn)入到對不同的設(shè)備的操作。按信息流向分類輸入文件,輸出文件,輸入輸出文件保護級別(存取控制)R,R/W,E(可執(zhí)行),不保護8.2文件的邏輯結(jié)構(gòu)與存取方法概念:用戶所能觀察和訪問到的文件的數(shù)據(jù)結(jié)構(gòu)組織,獨立于物理特性,容易檢索和修改。無論是邏輯還是物理結(jié)構(gòu),都會影響到文件的檢索速度8.2.1邏輯結(jié)構(gòu)用戶可見,可分為兩大類:字符流式的無結(jié)構(gòu)文件記錄式的有結(jié)構(gòu)文件選取文件的邏輯結(jié)構(gòu)應(yīng)遵循的原則當(dāng)用戶對文件信息進行修改時,應(yīng)能盡量減少對已存儲好的文件信息的變動。應(yīng)使文件系統(tǒng)在盡可能短的時間內(nèi)查找到需要查找的記錄或基本信息單位。應(yīng)使文件信息占據(jù)最小的存儲空間。應(yīng)便于用戶操作。8.2.1邏輯結(jié)構(gòu)字符流的無結(jié)構(gòu)文件:查找基本信息單位,例如某個單詞比較困難。管理簡單,用戶可以方便地進行操作。那些對基本信息單位操作不多的文件較適于采用字符流的無結(jié)構(gòu)方式,例如,源程序文件、目標(biāo)代碼文件等。記錄式的有結(jié)構(gòu)文件:可把文件中的記錄按各種不同的方式排列,構(gòu)成不同的邏輯結(jié)構(gòu),以使用戶對文件中的記錄進行修改、追加、查找和管理等操作。8.2.1邏輯結(jié)構(gòu)記錄是一個具有特定意義的信息單位,它由該記錄在文件中的邏輯地址(相對位置)與記錄名所對應(yīng)的一組鍵、屬性及其屬性值所組成。圖8.2記錄組成例8.2.1邏輯結(jié)構(gòu)常用的記錄式結(jié)構(gòu):4種(1)連續(xù)結(jié)構(gòu)把記錄按照生成的先后順序連續(xù)排列的邏輯結(jié)構(gòu)。適用性強,可用于所有文件,且記錄的排列順序與記錄的內(nèi)容無關(guān)。有利于記錄的追加與變更。缺點:搜索性能較差。8.2.1邏輯結(jié)構(gòu)(2)多重結(jié)構(gòu)把記錄按鍵和記錄名排列成行列式結(jié)構(gòu),則一個包含n個記錄名、m個(m≤n)個鍵的文件構(gòu)成一m*n維行列式。其中,如果第i行和第j列所對應(yīng)的位置上為1,則表示關(guān)鍵字Ki在記錄Rj中;反之,則表示關(guān)鍵字Ki不在記錄Rj中。另外,同一個關(guān)鍵字也可以同時屬于不同的記錄。圖8.3文件的記錄名和關(guān)鍵字構(gòu)成的行列式8.2.1邏輯結(jié)構(gòu)把行列式中那些為零的項去掉,并以鍵Ki為隊首,以包含鍵Ki的記錄為隊列元素來構(gòu)成一個記錄隊列。對于一個有m個鍵的隊列來說,這樣的隊列有m個。這m個隊列構(gòu)成了該文件的多重結(jié)構(gòu)(multi_list)。圖8.4文件的多重結(jié)構(gòu)

(3)轉(zhuǎn)置結(jié)構(gòu)轉(zhuǎn)置結(jié)構(gòu)把含有相同鍵的記錄指針全部指向該鍵,也就是說,把所有與同一鍵對應(yīng)的記錄的指針連續(xù)地置于目錄中該鍵的位置下。轉(zhuǎn)置結(jié)構(gòu)最適合于給定鍵后的記錄搜索。(4)順序結(jié)構(gòu)給定了順序規(guī)定(例如按字母順序),則把文件中的鍵按規(guī)定的順序排列起來就形成了順序結(jié)構(gòu)文件,如按時間。圖8.5文件的轉(zhuǎn)置結(jié)構(gòu)

8.2.2存取方法用戶通過對文件的存取來完成對文件的修改、追加和搜索等操作。文件的存取是要找到文件內(nèi)容所在的邏輯地址。常用的存取方法有三種:順序存取法:按照文件的邏輯地址順序存取。在記錄式文件中,反映為按記錄的排列順序來存取,例如,若當(dāng)前讀取的記錄為Ri,則下一次讀取的記錄被自動地確定為Ri的下一個相鄰的記錄Ri+1。在無結(jié)構(gòu)的字符流文件中,順序存取反映當(dāng)前讀寫指針的變化。在存取完一段信息之后,讀寫指針自動加上或減去該段信息長度,以便指出下次存取時的位置。8.2.2存取方法隨機存取法(直接存取):允許用戶根據(jù)記錄的編號來存取文件的任一記錄,或是根據(jù)存取命令把讀寫指針移到欲讀寫處來讀寫。按關(guān)鍵字存取法:一種用在復(fù)雜文件系統(tǒng),特別是數(shù)據(jù)庫管理系統(tǒng)中的存取方法。文件的存取是根據(jù)給定的關(guān)鍵字或記錄名進行的。按關(guān)鍵字存取法首先搜索到要進行存取的記錄的邏輯位置,再將其轉(zhuǎn)換到相應(yīng)的物理地址后進行存取。8.3文件的物理結(jié)構(gòu)與存儲設(shè)備對不同種類的文件采用不同的存取方法。無論是哪種存取方法,都是首先搜索到操作對象記錄或某段字符流信息的邏輯地址,然后,由邏輯地址映射到對應(yīng)的物理地址,再對物理地址的有關(guān)信息進行操作的。由邏輯地址到物理地址的映射和文件的存儲方式(即文件的物理結(jié)構(gòu))緊密相關(guān)。文件系統(tǒng)采用哪種存取方法和邏輯結(jié)構(gòu),與物理存儲介質(zhì)有關(guān)。8.3.1文件的物理結(jié)構(gòu)文件的存儲設(shè)備通常劃分為若干個大小相等的物理塊。每塊長為512字節(jié)或1024字節(jié)。為了有效利用存儲設(shè)備和便于系統(tǒng)管理,一般把文件信息也劃分為與物理存儲設(shè)備的物理塊大小相等的邏輯塊。以塊作為分配和傳送信息的基本單位。對于字符流的無結(jié)構(gòu)文件,每個物理塊中存放長度相等的文件信息(存儲文件尾部信息的物理塊除外)。對于記錄式文件,由于記錄長度既可以是固定的,也可以是可變的,而且其長度不一定剛好等于其物理塊的長度,從而給由記錄的邏輯地址到物理地址的變換帶來了額外負(fù)擔(dān)。8.3.1文件的物理結(jié)構(gòu)1.連續(xù)文件(磁盤可采用)一種最簡單的物理文件結(jié)構(gòu),它把一個在邏輯上連續(xù)的文件信息依次存放到物理塊中。一個邏輯塊號為0,1,2,3的文件依次存放在物理塊10,11,12,13中。連續(xù)文件結(jié)構(gòu)

8.3.1文件的物理結(jié)構(gòu)特點:簡單順序訪問容易且速度快,因磁頭移動距離小。要求連續(xù)空間,一段時間后需整理磁盤以消除外部碎片。必須事先知道長度,文件不易動態(tài)增長和刪除。文件對應(yīng)目錄項(屬性)中包含:始址、總塊數(shù)、最后一塊字節(jié)數(shù)。8.3.1文件的物理結(jié)構(gòu)2.串聯(lián)文件用非連續(xù)的物理塊來存放文件信息。這些非連續(xù)的物理塊之間沒有順序關(guān)系,其中每個物理塊設(shè)有一個指針,指向其后續(xù)連接的另一個物理塊,使得存放同一文件的物理塊鏈接成一個串聯(lián)隊列。文件離散地分配于各盤塊中,以提高外存利用率,文件長度可變,易于增刪。但不適合隨機存取。對應(yīng)目錄項:鏈表的首指針圖8.9串聯(lián)文件的物理結(jié)構(gòu)8.3.1文件的物理結(jié)構(gòu)隱式鏈接文件目錄表中有start塊號,每塊中有下一塊號。特點:只適合于順序訪問,對隨機訪問效率低,可靠性差。簇:包含多個塊的單位,當(dāng)以它為單位分配并鏈接,可減少訪問時間,但增大了內(nèi)部碎片

顯式鏈接:把用于鏈接的指針顯式存放在內(nèi)存的一張表中,查找在內(nèi)存中進行。8.3.1文件的物理結(jié)構(gòu)3.索引文件要求系統(tǒng)為每個文件建立一張索引表,表中每一欄目指出文件信息所在的邏輯塊號和與之對應(yīng)的物理塊號。索引表的物理地址則由文件說明信息項給出。既可以滿足文件動態(tài)增長的要求,又可以較為方便和迅速地實現(xiàn)隨機存取。因為有關(guān)邏輯塊號和物理塊號的信息全部放在一個集中的索引表中,而不是分散在各個物理塊中。圖8.10索引文件示意圖8.3.1文件的物理結(jié)構(gòu)8.3.1文件的物理結(jié)構(gòu)在很多情況下,有的文件很大,文件索引表也就較大。如果索引表的大小超過了一個物理塊,就必須像處理其他文件的存放那樣決定索引表的物理存放方式,但這不利于索引表的動態(tài)增加;索引表也可按串聯(lián)方式存放,但這卻增加了存放索引表的時間開銷。一種較好的解決辦法是采用間接索引(多重索引),即在索引表所指的物理塊中存放的不是文件信息,而是裝有這些信息的物理塊地址。這樣,如果一個物理塊可裝下n個物理塊地址,則經(jīng)過一級間接索引,可尋址的文件長度將變?yōu)閚*n塊。如果文件長度還是大于n*n塊,還可以進行類似的擴充,即二級間接索引。8.3.1文件的物理結(jié)構(gòu)圖8.11多重索引結(jié)構(gòu)

8.3.1文件的物理結(jié)構(gòu)在實際系統(tǒng)中,總是把索引表的前幾項設(shè)計成直接尋址方式,也就是這幾項所指的物理塊中存放的是文件信息;而索引表的后幾項設(shè)計成多重索引,也就是間接尋址方式。8.3.2文件存儲設(shè)備1.順序存取設(shè)備:只有在前面的物理塊被存取訪問過之后,才能存取后續(xù)的物理塊的內(nèi)容。磁帶最典型。為了在存取一個物理塊時讓磁帶機提前加速和不停止在下一個物理塊的位置上,磁帶的兩相鄰的物理塊之間設(shè)計有一個間隙。圖7.12磁帶的結(jié)構(gòu)

8.3.2文件存儲設(shè)備2.直接存取設(shè)備磁盤最典型。允許文件系統(tǒng)直接存取磁盤上的任意物理塊。為了存取一個特定的物理塊,磁頭將直接移動到所要求的位置上,而不需要像順序存取那樣事先存取其他的物理塊。

8.3.2文件存儲設(shè)備由一些磁盤片組成的磁盤組組成。每個磁盤片對應(yīng)一個裝有讀寫磁頭的磁頭臂,磁頭臂上的兩個讀寫磁頭分別對磁盤片的上下兩面進行讀寫。系統(tǒng)在對磁盤進行初始化時,把每個磁盤片分割成一些大小相等的扇區(qū)。在磁盤轉(zhuǎn)動時經(jīng)過讀寫磁頭所形成的圓形軌跡稱為磁道。由于磁頭臂可沿半徑方向移動。因此,磁盤上有多條磁道。把所有磁盤片的相同磁道稱為一個柱面,因此,磁盤上每個物理塊的位置可用柱面號、磁頭號和扇區(qū)號表示,這些地址和物理塊號一一對應(yīng)。圖8.13磁盤的結(jié)構(gòu)

8.4文件存儲空間管理文件存儲設(shè)備被分成若干個大小相等的物理塊,以塊為單位來交換信息。文件存儲空間的管理實質(zhì)上是空閑塊的組織和管理問題空閑塊的組織;空閑塊的分配;空閑塊的回收等。有3種不同的空閑塊管理方法:空閑文件目錄;空閑塊鏈;位示圖。8.4文件存儲空間管理1空閑文件目錄空閑塊的塊號統(tǒng)一放在一個稱為空閑文件目錄的物理塊中。其中每個表項對應(yīng)一個由多個空閑塊構(gòu)成的空閑區(qū),它包括空閑塊個數(shù)、第一個空閑塊號等。系統(tǒng)為某個文件分配空閑塊時:首先掃描空閑文件目錄項,如找到合適的空閑區(qū)項,則分配給申請者,并把該項從空白文件目錄中去掉。如果一個空閑區(qū)項不能滿足申請者要求,則把目錄中另一項分配給申請者。如果一個空閑區(qū)項所含塊數(shù)超過申請者要求,則為申請者分配了所要的物理塊之后,再修改該表項。當(dāng)一個文件被刪除,釋放存儲物理塊時,系統(tǒng)把被釋放的塊號、長度以及第一塊塊號置入空白目錄文件的新表項中。內(nèi)存管理中的有關(guān)空閑連續(xù)區(qū)分配和釋放算法,只要稍加修改就可用于空閑文件項的分配和回收。適用于連續(xù)文件結(jié)構(gòu)的文件存儲區(qū)的分配與回收。8.4文件存儲空間管理2空閑塊鏈把文件存儲設(shè)備上的所有空閑塊鏈接在一起,當(dāng)申請者需要空閑塊時,分配程序從鏈頭開始摘取所需要的空閑塊,然后調(diào)整鏈?zhǔn)字羔槨.?dāng)回收空閑塊時,釋放的空間塊逐個插入鏈尾上。常用的鏈接方法:按空閑區(qū)大小順序鏈接;按釋放先后順序鏈接;按成組鏈接法。成組鏈接法可被看作空閑塊鏈的鏈接法的擴展。8.4文件存儲空間管理2空閑塊鏈成組鏈法首先把文件存儲設(shè)備中的所有空閑塊按50塊劃分為一組。組的劃分為從后往前順次劃分。其中,每組的第一塊用來存放前一組中各塊的塊號和總塊數(shù)。由于第一組的前面已無其他組存在,因此,第一組的塊數(shù)為49。由于存儲設(shè)備的空間塊不一定正好是50的整倍數(shù),因而最后一組將不足50塊,且由于該組后而已無另外的空閑塊組,所以,該組的物理塊號與總塊數(shù)只能放在管理文件存儲設(shè)備用的文件資源表中。在成組鏈法對文件設(shè)備進行了上述分組之后,系統(tǒng)可根據(jù)申請者的要求進行空閑塊的分配,并在釋放文件時回收空閑塊。系統(tǒng)初啟時,把文件資源表復(fù)制到內(nèi)存,使文件資源表中放有最后一組空閑塊塊號與總塊數(shù)的堆棧進入內(nèi)存——空閑塊的分配與釋放可在內(nèi)存進行,不用每次分配和釋放都啟動I/O設(shè)備。用于空閑塊分配與回收的堆棧有棧指針Ptr,Ptr的初值等于該組空閑塊的總塊數(shù)。當(dāng)申請者提出空閑塊要求n時,按后進先出的原則,分配程序在取走Ptr所指的塊號之后,再做Ptr←Ptr-l的操作。這個過程一直持續(xù)到所要求的n塊都己分配完畢或堆棧中只剩下最后一個空閑塊的塊號。當(dāng)堆棧中只剩下最后一個空閑塊號時,系統(tǒng)啟動設(shè)備管理程序,將該塊中存放的下一組的塊號與總塊數(shù)讀入內(nèi)存,之后將該塊分配給申請者。然后,系統(tǒng)重新設(shè)置Ptr指針,并繼續(xù)為申請者進程分配空閑塊。文件存儲設(shè)備的最后一個空閑塊中設(shè)置有尾部標(biāo)識,以指示空閑塊分配完畢。刪除文件時,回收程序回收相應(yīng)的物理塊。在回收時,回收程序先做Ptr←Ptr+1操作,然后把回收的物理塊號放入當(dāng)前指針Ptr所指的位置。如果Ptr等于50,則表示該組已經(jīng)回收結(jié)束。此時,如果還有新的物理塊需要回收的話,回收該塊并啟動I/O設(shè)備管理程序,把回收的50個塊號與塊數(shù)寫入新回收的塊中。然后,將Ptr重新置1,另起一個新組。對空閑塊的分配和釋放必須寫互斥進行,否則將會發(fā)生數(shù)據(jù)混亂。成組鏈接法(UNIX)空閑盤塊的組織??臻e盤塊號棧:空閑盤塊的分配與回收分配:到s.free(0)時,由于該塊內(nèi)容為下一組的盤號,將內(nèi)容加入空閑盤塊號棧中,再分配。回收:到s.free(100)時,將空閑盤塊棧中內(nèi)容放入新到的回收塊中,將該回收塊作為棧底。圖8.14成組鏈法的組織

3位示圖法系統(tǒng)首先從內(nèi)存中劃出若干個字節(jié),為每個文件存儲設(shè)備建立一張位示圖。這張位示圖反映每個文件存儲設(shè)備的使用情況。在位示圖中,每個文件存儲設(shè)備的物理塊都對應(yīng)一個比特位。如果該位為“0”

,則表示所對應(yīng)的塊是空閑塊;如果該位為“1”

,則表示所對應(yīng)的塊已被分配出去。8.5文件目錄管理把文件名和對該文件實施控制管理的控制管理信息稱為該文件的文件說明;每個文件說明按一定的邏輯結(jié)構(gòu)存放在物理存儲塊的一個表目中。利用文件說明信息,可以完成對文件的創(chuàng)建、檢索及維護。因此,把一個文件的文件說明信息稱為該文件的目錄。對文件目錄的管理就是對文件說明信息的管理。功能: 按名存??;提高檢索速度;文件共享;允許文件重名。8.5.1文件的組成一個文件包括:文件說明、文件體。文件體指文件本身的信息,它可能是記錄式文件或字符流式文件。文件說明也叫文件控制塊FCB。它至少包括:文件名、與文件名相對應(yīng)的文件內(nèi)部標(biāo)識、文件信息在文件存儲設(shè)備上第一個物理塊的地址。另外,根據(jù)系統(tǒng)要求不同,它還包括關(guān)于文件邏輯結(jié)構(gòu)、物理結(jié)構(gòu)、存取控制和管理信息(訪問時間等)等。文件說明組成目錄文件。文件系統(tǒng)利用目錄文件完成按名存取和對文件信息的共享與保護。8.5.2文件目錄單級目錄結(jié)構(gòu)文件系統(tǒng)為存儲設(shè)備的所有文件建立一張目錄表,每個文件在其中占有一項用來存放文件說明信息。該目錄表存放在存儲設(shè)備的某固定區(qū)域。在系統(tǒng)初啟時或需要時,系統(tǒng)將其調(diào)入內(nèi)存(或部分調(diào)入內(nèi)存)。文件系統(tǒng)通過該表提供的信息,對文件進行創(chuàng)建、搜索、刪除等操作。例如,當(dāng)建立一個文件時,首先從該表中申請一項,并存入相關(guān)說明信息;當(dāng)刪除一個文件時,就從該表中刪去一項。利用單級目錄,就可實現(xiàn)對文件系統(tǒng)空間的自動管理和按名存取。8.5.2文件目錄例如,當(dāng)用戶進程要求對某個文件進行讀寫操作時,他進行系統(tǒng)調(diào)用,進入文件系統(tǒng),此時,CPU控制權(quán)在文件系統(tǒng)手中。文件系統(tǒng)首先根據(jù)給定的文件名,搜索單級文件目錄表,查找文件信息的物理塊號。如果搜索不到對應(yīng)文件名,則失敗返回(讀操作時),或由空閑塊分配程序進行空閑塊分配后,再修改單級目錄表。如果已找到對應(yīng)的第一個物理塊塊號,則根據(jù)文件對應(yīng)的物理結(jié)構(gòu)信息,計算出所要讀寫的信息塊物理塊塊號,然后把CPU控制權(quán)交給設(shè)備管理系統(tǒng),啟動設(shè)備進行讀寫操作。特點:簡單;搜索速度慢/不允許重名/不便于共享(不能用不同名字訪問同一文件)。圖8.15單級目錄的讀寫處理過程

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

各個文件的說明信息被組織成目錄文件,以用戶為單位把各自的文件說明劃分為不同的組。不同組名的相關(guān)存取控制信息存放在主目錄(MFD)的目錄項中。二級目錄結(jié)構(gòu)

用戶文件的文件說明所組成的目錄文件被稱為用戶文件目錄(UFD)。MFD和UFD形成二級目錄。當(dāng)用戶要對一個文件進行存取操作或創(chuàng)建、刪除一個文件時,首先從MFD找到對應(yīng)的目錄名,并從用戶名查找到該用戶的UFD。余下操作與單級目錄時相同。二級目錄結(jié)構(gòu)

特點:提高了搜索速度:如:n個用戶,每用戶最多m個文件,則最壞速度為n+m,而非n*m;可重名;可共享(但不方便)。把一級目錄的層次關(guān)系加以推廣,就形成了多級目錄。在多級目錄結(jié)構(gòu)中,除了最低一級的物理塊中裝有文件信息外,其他每一級目錄中存放的都是下一級目錄或文件的說明信息。由此形成層次關(guān)系,最高層為根目錄,最低層為文件。多級目錄構(gòu)成樹形結(jié)構(gòu)。樹形結(jié)構(gòu)多級目錄結(jié)構(gòu)的特點:層次清楚,不同性質(zhì)、不同用戶的文件可以構(gòu)成不同的子樹,便于管理。不同層次、不同用戶的文件可以被賦予不同的存取權(quán)限,有利于文件的保護。解決了文件重名問題查找搜索速度快8.5.3便于共享的文件目錄從系統(tǒng)管理的觀點看,有三種方法可以實現(xiàn)文件共享。即:繞道法:要求每個用戶處在當(dāng)前目錄下工作,用戶對所有文件的訪問都是相對于當(dāng)前目錄進行的。用戶文件的固有名(為了訪問某個文件而必須訪問的各個目錄和文件的目錄名與文件名的順序連接稱為固有名)是由當(dāng)前目錄到信息文件通路上所有各級目錄的目錄名加上該信息文件的符號名組成。繞道法需要用戶指定所要共享文件的邏輯位置或到達被共享文件的路徑。繞道法要繞彎路訪問多級目錄,搜索效率不高。(2)鏈接法:為了提高共享其他目錄中文件的速度,另一種共享的辦法是在相應(yīng)目錄表之間進行鏈接。即將一個目錄中的鏈指針直接指向被共享文件所在的目錄。鏈接法仍然需要用戶指定被共享的文件和被鏈接的目錄。(3)基本文件目錄表BFD。基本文件目錄表BFD:把所有文件目錄的內(nèi)容分成兩部分:一部分包括文件的結(jié)構(gòu)信息、物理塊號、存取控制和管理信息等,并由系統(tǒng)賦予唯一的內(nèi)部標(biāo)識符來標(biāo)識;這部分稱為“基本文件目錄表(BFD)”。BFD中存放除了文件名之外的文件說明信息和文件的內(nèi)部標(biāo)識符。另一部分由用戶給出的符號名和系統(tǒng)賦給文件說明信息的內(nèi)部標(biāo)識符組成。這部分稱為“符號文件目錄表(SFD)”。SFD中存放文件名和文件內(nèi)部標(biāo)識符。系統(tǒng)通常預(yù)先規(guī)定:賦予基本文件目錄、空閑文件目錄、主目錄MFD的符號文件目錄固定不變的唯一標(biāo)識符,在圖中它們分別為0,1,2。用戶Wang和Zhang共享標(biāo)識符為6的文件,對于系統(tǒng)來說,標(biāo)識符6指向同一個文件;而對Wang和Zhang兩用戶來說,則對應(yīng)于不同的文件名b.c和f.c。(3)基本文件目錄表BFD圖8.19采用基本文件目錄的多級目錄結(jié)構(gòu)

8.5.4目錄管理打開文件——把存儲設(shè)備上的目錄文件復(fù)制到內(nèi)存;關(guān)閉文件——刪除文件的內(nèi)存副本。對于按BFD和SFD方式排列的多級文件目錄,系統(tǒng)按以下方式打開一個文件。8.5.4目錄管理(1)把主目錄MFD中的相應(yīng)表目,也就是與待打開文件相聯(lián)系的有關(guān)表目復(fù)制到內(nèi)存。例如,若準(zhǔn)備打開圖中的文件a.c,則將MFD中的第一項(Wang)復(fù)制到內(nèi)存。8.5.4目錄管理(2)根據(jù)(1)所復(fù)制得到的標(biāo)識符,再復(fù)制此標(biāo)識符所指明的基本文件目錄表BFD的有關(guān)表目。例如圖中id=3的表目項。這個表目中包括有存取控制信息、結(jié)構(gòu)信息以及下級目錄的物理塊號等。(3)根據(jù)(2)所得到的子目錄說明信息搜索SFD,以找到與待打開文件相對應(yīng)的目錄表項。如果找到的表目仍然是子目錄名,則系統(tǒng)將根據(jù)其對應(yīng)的標(biāo)識符id,繼續(xù)上述復(fù)制過程,直到所找到的表目是待打開的文件名。例如在圖中文件名a.c。(4)根據(jù)(3)所搜索到的文件名所對應(yīng)的標(biāo)識符id,把相應(yīng)的BFD的表項復(fù)制到內(nèi)存。這樣,待打開文件的說明信息就巳復(fù)制到了內(nèi)存中,系統(tǒng)可得到文件的有關(guān)物理塊號,對文件進行操作。把內(nèi)存中存放活動文件的SFD表目的表稱為活動名字表,這個表每個用戶一張。另外,把內(nèi)存中存放活動文件的BFD表目的表稱為活動文件表,這個表整個系統(tǒng)一張。

8.6文件存取控制文件系統(tǒng)的存取控制部分應(yīng)做到:(1)對于擁有讀、寫或執(zhí)行權(quán)限的用戶,應(yīng)讓其對文件進行相應(yīng)的操作。(2)對于沒有讀、寫或執(zhí)行權(quán)限的用戶,應(yīng)禁止他們對文件進行相應(yīng)的操作。(3)應(yīng)防止一個用戶冒充其他用戶對文件進行存取。(4)應(yīng)防止擁有存取權(quán)限的用戶誤用文件。

存取控制驗證模塊這些功能由存取控制驗證模塊提供。分三步驗證用戶的存取操作。(1)審定用戶的存取權(quán)限。(2)比較用戶權(quán)限和本次存取要求是否一致。(3)將存取要求和被訪問文件的保密性比較,看是否有沖突??捎邢率觯磦€方式來驗證用戶的存取操作,它們是:(1)存取控制矩陣; (2)存取控制表;(3)口令;(4)密碼術(shù)。

1.存取控制矩陣存取控制矩陣方式以一個二維矩陣來進行存取控制。二維矩陣的一維是所有的用戶,另一維是所有的文件。對應(yīng)的矩陣元素則是用戶對文件的存取控制權(quán),包括讀R,寫W,和執(zhí)行E。圖8.20存取控制矩陣2.存取控制表存取控制表以文件為單位,把用戶按某種關(guān)系畫分為若干組,同時規(guī)定每組的存取權(quán)限。這樣,所有用戶組對文件權(quán)限的集合就形成了該文件的存取控制表。

圖8.21存取控制表

每個文件都有一張存取控制表。在實現(xiàn)時,該表存放在BFD的有關(guān)表目中。文件被打開時,由于存取控制表也被復(fù)制到了內(nèi)存中,因此,存取控制驗證能高效進行。3.口令方式口令方式有兩種。一種是當(dāng)用戶進入系統(tǒng),為建立終端進程時獲得系統(tǒng)使用權(quán)的口令。另一種口令方式是,每個用戶在創(chuàng)建文件時,為每一個創(chuàng)建的文件設(shè)置一個口令,且將其置于文件說明中。4.密碼方式密碼方式在用戶創(chuàng)建源文件并將其寫入存儲設(shè)備時對文件進行編碼加密,在讀出文件時對其進行譯碼解密。

文件的加密和解密都需要用戶提供一個代碼鍵(KEY)。加密程序根據(jù)這個KEY對用戶文件進行編碼變換,然后寫入存儲設(shè)備。讀取文件時,只有用戶給定的代碼鍵與加密時的代碼鍵相一致時,解密程序才能對加密文件進行解密,將其還原為源文件。圖8.22加密解密過程

8.7文件的使用文件系統(tǒng)以系統(tǒng)調(diào)用方式或命令方式為用戶提供下列4類服務(wù)。設(shè)置和修改用戶對文件的存取權(quán)限的服務(wù)。建立、改變和刪除目錄的服務(wù)。文件共享、設(shè)置訪問路徑的服務(wù)。創(chuàng)建、打開、讀寫、關(guān)閉,撤銷文件的服務(wù)。這些服務(wù)的調(diào)用名和參數(shù)都因系統(tǒng)不同而異。例如在UNIX系統(tǒng)中,chmod命令可用來改變一個或多個文件或目錄的讀寫控制模式??稍赨NIX環(huán)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論