第七章文件管理_第1頁
第七章文件管理_第2頁
第七章文件管理_第3頁
第七章文件管理_第4頁
第七章文件管理_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第七章文件管理7.1文件和文件系統(tǒng)7.2文件的邏輯結(jié)構(gòu)7.3文件目錄7.4文件共享7.5文件保護7.1文件和文件系統(tǒng)7.1.1文件、記錄和數(shù)據(jù)項1.數(shù)據(jù)項——最低級的數(shù)據(jù)組織形式

(1)基本數(shù)據(jù)項。這是用于描述一個對象的某種屬性的字符集,是數(shù)據(jù)組織中可以命名的最小邏輯數(shù)據(jù)單位,又稱為數(shù)據(jù)元素或字段。例如,用于描述一個學生的基本數(shù)據(jù)項有:學號、姓名、年齡、所在班級等。

(2)組合數(shù)據(jù)項。它是由若干個基本數(shù)據(jù)項組成的,簡稱組項。如,經(jīng)理,它由正經(jīng)理和副經(jīng)理兩個基本項組成?;緮?shù)據(jù)項除了數(shù)據(jù)名外,還應有數(shù)據(jù)類型。由數(shù)據(jù)項的名字和類型兩者共同定義了一個數(shù)據(jù)項的“型”。而表征一個實體在數(shù)據(jù)項上的數(shù)據(jù)則稱為“值”。例如,學號/30211、姓名/王有年、性別/男等。2.記錄記錄是一組相關數(shù)據(jù)項的集合,用于描述一個對象在某方面的屬性。例如,一個學生,當把他作為班上的一名學生時,對他的描述應使用學號、姓名、年齡及所在系班,也可能還包括他所學過的課程的名稱、成績等數(shù)據(jù)項。還可以給每個記錄設置關鍵字。3.文件

文件——指由創(chuàng)建者所定義的、具有文件名的一組相關元素的集合。(最大的數(shù)據(jù)單位)

分類——有結(jié)構(gòu)文件(有若干相關記錄組成)無結(jié)構(gòu)文件(被看做一個字符流)

組成——文件名(一串ASCII碼或(和)漢字構(gòu)成)文件屬性(類型、大小、位置、創(chuàng)建時間等)1.文件名和擴展名(1)文件名

不同的操作系統(tǒng),對文件名的規(guī)定不同。(2)擴展名

又稱后綴名,用于指示文件類型。2.文件類型(1)按用途分類(系統(tǒng)文件、用戶文件、庫文件)(2)按文件中的數(shù)據(jù)形式分類(源文件、目標文件、可執(zhí)行文件)(3)按存取控制屬性分類(只執(zhí)行文件、只讀文件、可讀寫文件)(4)按組織形式和系統(tǒng)對其處理方式的不同分類(普通文件、目錄文件、

特殊文件)

7.1.2文件名和類型和文件系統(tǒng)模型7.1.3文件系統(tǒng)的層次結(jié)構(gòu)1.對象及其屬性①文件②目錄③磁盤(磁帶)存儲空間圖7-2文件系統(tǒng)模型2.對對象操縱和管理的軟件集合這是文件管理系統(tǒng)的核心部分。對文件存儲空間的管理、對文件目錄的管理、用于將文件的邏輯地址轉(zhuǎn)換為物理地址的機制、對文件讀和寫的管理,以及對文件的共享與保護等功能。

3.文件系統(tǒng)的接口

(1)命令接口。

(2)程序接口。7.1.3文件操作(P225)創(chuàng)建文件。(2)刪除文件。(3)讀文件。1.最基本的文件操作(4)寫文件。(5)設置文件的讀/寫位置。2.文件的“打開”和“關閉”操作

打開(Open)——指系統(tǒng)將指名文件的屬性(包括該文件在外存上的物理位置)從外存拷貝到內(nèi)存打開文件表的一個表目中,并將該表目的編號(或稱為索引)返回給用戶。

關閉(Close)——不再需要時,可利用“關閉”(close)系統(tǒng)調(diào)用來關閉此文件,OS將會把該文件從打開文件表中的表目上刪除掉。3.其它文件操作為了方便用戶使用文件,OS都提供了數(shù)條有關文件操作的系統(tǒng)調(diào)用。

一類是有關對文件屬性進行操作的

另一類是有關目錄的

用于實現(xiàn)文件共享的系統(tǒng)調(diào)用用于對文件系統(tǒng)進行操作的系統(tǒng)調(diào)用等。

文件結(jié)構(gòu)的兩種形式:邏輯結(jié)構(gòu)——是從用戶的觀點出發(fā)所觀察到的文件組織形式,是用戶可以直接處理的數(shù)據(jù)及其結(jié)構(gòu)。物理結(jié)構(gòu)——又稱文件的存儲結(jié)構(gòu),指文件在外存上的存儲組織形式,不僅與存儲介質(zhì)的性能有關,而且與所采用的外存分配方式有關。7.2文件的邏輯結(jié)構(gòu)7.2.1文件邏輯結(jié)構(gòu)的類型1.按文件是否有結(jié)構(gòu)分類1)有結(jié)構(gòu)文件(一個以上的記錄構(gòu)成的文件,記錄式文件)(1)定長記錄(各記錄長度相等,數(shù)據(jù)項位置相同,順序、長度均相同)(2)變長記錄(各記錄長度不相等)2)無結(jié)構(gòu)文件(流式文件、長度以字節(jié)為單位)如:大量的源程序、可執(zhí)行文件、庫函數(shù)等,所采用的就是無結(jié)構(gòu)的文件形式,對流式文件的訪問,則是采用讀寫指針來指出下一個要訪問的字符。2.按文件的組織方式分類(針對有結(jié)構(gòu)文件)

(1)順序文件

(2)索引文件

(3)索引順序文件7.2.2順序文件的存取方法1.順序文件的排列方式(1)串結(jié)構(gòu),按存入時間的先后排列,各記錄之間的順序與關鍵字無關。(2)順序結(jié)構(gòu),指文件中的所有記錄按關鍵字(詞)排列。2.順序文件的優(yōu)缺點

優(yōu)點:批量存取,存取效率是所有邏輯文件中最高的;此外,也只有順序文件才能存儲在磁帶上,并能有效地工作。缺點:在交互應用的場合,如果用戶(程序)要求查找或修改單個記錄,為此系統(tǒng)便要去逐個地查找諸記錄。這時,順序文件所表現(xiàn)出來的性能就可能很差;另外,增加、刪除一條記錄需要移動大量記錄、效率低。7.2.3記錄尋址1.隱式尋址方式(順序訪問)定長記錄:讀指針rptr——指向下一次讀出的記錄地址;寫指針wptr——指向下一次寫入的記錄地址。讀完指針做相應修改:rptr+L=>rptr

寫完指針做相應修改:wptr+L=>wptr變長記錄:每個記錄長度(Li)存于記錄前的單元中,長度為1,讀完時rptr+Li+1=>rptr111iL圖7-3定長和變長記錄文件2.顯示尋址方式(隨機訪問或直接訪問)(1)通過文件中記錄的位置對于定長記錄文件,如果要查找第i個記錄,可直接根據(jù)下式計算來獲得第i個記錄相對于第一個記錄首址的地址(可方便實現(xiàn)直接存?。?/p>

Ai=i×L

然而,對于可變長度記錄的文件,要查找其第i個記錄時,假定在每個記錄前用一個字節(jié)指明該記錄的長度,則(2)利用關鍵字圖7-4索引文件7.2.4索引文件(最廣泛的一種文件形式)

對索引文件(按關鍵字有序)的檢索:先根據(jù)用戶提供的關鍵字,折半查找。有較快的檢索速度、可方便實現(xiàn)直接存取。1.按關鍵字建立索引2.具有多個索引表的索引文件

適應不同用戶按照不同的屬性進行檢索。3.索引文件的優(yōu)缺點1)優(yōu)點:(1)改順序訪問的文件為隨機訪問的文件,提高的對文件的檢索速度。(2)插入、刪除方便。2)缺點:須配置一張索引表,因此增加了存儲開銷。7.2.5索引順序文件1.索引順序文件的特征

(1)按關鍵字有序

(2)能隨機訪問

(3)便于記錄的刪除和插入

(4)引入文件索引表

(5)增加了溢出(overflow)文件,用它來記錄新增加的、刪除的和修改的記錄。2.一級索引順序文件圖7-5索引順序文件3.兩級索引順序文件

對于一個非常大的文件,例如,對于一個含有106個記錄的順序文件,當把它作為索引順序文件時,為找到一個記錄,平均須查找1000個記錄。為了進一步提高檢索效率,可以為順序文件建立多級索引,即為索引文件再建立一張索引表,從而形成兩級索引表。

7.2.6

直接文件和哈希文件1.直接文件

對于直接文件,則可根據(jù)給定的記錄鍵值,直接獲得指定記錄的物理地址。這種由記錄鍵值到記錄物理地址的轉(zhuǎn)換被稱為鍵值轉(zhuǎn)換(Keytoaddresstransformation)。組織直接文件的關鍵,在于用什么方法進行從記錄值到物理地址的轉(zhuǎn)換。2.哈希(Hash)文件(最廣泛的一種直接文件)圖7-6Hash文件的邏輯結(jié)構(gòu)A=H(K)它利用Hash函數(shù)(或稱散列函數(shù)),可將記錄鍵值轉(zhuǎn)換為相應記錄的地址。但為了能實現(xiàn)文件存儲空間的動態(tài)分配,通常由Hash函數(shù)所求得的并非是相應記錄的地址,而是指向一目錄表相應表目的指針,該表目的內(nèi)容指向相應記錄所在的物理塊。文件目錄:是文件系統(tǒng)中主要數(shù)據(jù)結(jié)構(gòu)之一,用于標識系統(tǒng)中的文件及其物理地址,供檢索時使用。7.3

文件目錄對目錄管理的要求如下:實現(xiàn)“按名存取”。(2)提高對目錄的檢索速度。(3)文件共享。(4)允許文件重名。1.文件控制塊FCB

文件控制塊是操作系統(tǒng)為管理文件而設置的數(shù)據(jù)結(jié)構(gòu),存放了為管理文件所需的所有有關信息。文件控制塊是文件存在的標志。7.3.1文件控制塊和索引結(jié)點文件控制塊、文件目錄、目錄文件的關系圖7-7MS-DOS的文件控制塊文件名1物理位置邏輯結(jié)構(gòu)物理結(jié)構(gòu)存取控制信息使用信息文件名2物理位置邏輯結(jié)構(gòu)物理結(jié)構(gòu)存取控制信息使用信息文件名3物理位置邏輯結(jié)構(gòu)物理結(jié)構(gòu)存取控制信息使用信息文件名4物理位置邏輯結(jié)構(gòu)物理結(jié)構(gòu)存取控制信息使用信息………………文件名n物理位置邏輯結(jié)構(gòu)物理結(jié)構(gòu)存取控制信息使用信息FCB文件目錄以文件的形式存入磁盤目錄文件

2.索引結(jié)點

1)索引結(jié)點的引入文件目錄通常是存放在磁盤上的,當文件很多時,文件目錄可能要占用大量的盤塊。查找僅涉及文件的文件名;當文件名匹配成功時才涉及FCB中的其他信息。檢索效率低。如一個FCB為64B,盤塊大小為1KB,則每個盤塊中只能存放16個FCB;若一個文件目錄中共有640個FCB,需占用40個盤塊,故平均查找一個文件需啟動磁盤20次。

查找只與文件名有關,與FCB中其他向無關,為此,UNIX系統(tǒng)中,將文件名與文件描述信息分開的辦法。使文件描述信息單獨形成一個稱為索引結(jié)點的數(shù)據(jù)結(jié)構(gòu),簡稱為i結(jié)點。在文件目錄中的每個目錄項僅由文件名和指向該文件所對應的i結(jié)點的指針所構(gòu)成。圖7-8UNIX的文件目錄文件名索引結(jié)點編號文件名1文件名2……

在UNIX系統(tǒng)中一個目錄僅占16個字節(jié),其中14個字節(jié)是文件名,2個字節(jié)為i結(jié)點指針。在1KB的盤塊中可做64個目錄項,這樣,可使平均啟動磁盤次數(shù)減少到原來的1/4,大大節(jié)省了系統(tǒng)開銷。2)磁盤索引結(jié)點

(1)文件主標識符,即擁有該文件的個人或小組的標識符。

(2)文件類型,包括正規(guī)文件、目錄文件或特別文件。

(3)文件存取權(quán)限,指各類用戶對該文件的存取權(quán)限。

(4)文件物理地址,每一個索引結(jié)點中含有13個地址項,即iaddr(0)~iaddr(12),它們以直接或間接方式給出數(shù)據(jù)文件所在盤塊的編號。

(5)文件長度,指以字節(jié)為單位的文件長度。

(6)文件連接計數(shù),表明在本文件系統(tǒng)中所有指向該(文件的)文件名的指針計數(shù)。

(7)文件存取時間,指本文件最近被進程存取的時間、最近被修改的時間及索引結(jié)點最近被修改的時間。

3)內(nèi)存索引結(jié)點文件打開時,將磁盤索引結(jié)點拷貝到內(nèi)存的索引結(jié)點中。在內(nèi)存索引結(jié)點中又增加了以下內(nèi)容:

(1)索引結(jié)點編號,用于標識內(nèi)存索引結(jié)點。

(2)狀態(tài),指示i結(jié)點是否上鎖或被修改。

(3)訪問計數(shù),每當有一進程要訪問此i結(jié)點時,將該訪問計數(shù)加1,訪問完再減1。

(4)文件所屬文件系統(tǒng)的邏輯設備號。

(5)鏈接指針。設置有分別指向空閑鏈表和散列隊列的指針。1.單級文件目錄文件名物理地址文件說明狀態(tài)位文件名1該目錄項是否空閑文件名2…圖7-9單級文件目錄

在整個文件系統(tǒng)中只建立一張目錄表,每個文件占一個目錄項。7.3.2簡單的文件目錄

單級目錄的優(yōu)點:

(1)簡單;(2)實現(xiàn)按名存取。

單級目錄的缺點:

(1)查找速度慢。

(2)不允許重名。

(3)不便于實現(xiàn)文件共享

為改變一級目錄文件目錄命名沖突,并提高對目錄文件檢索速度而將目錄分為兩級:

一級稱為主文件目錄(MFD),每個用戶目錄占一個目錄項

二級稱為用戶文件目錄(UFD):由該用戶所有文件的文件控制塊組成。產(chǎn)生于多用戶分時系統(tǒng),DOS2.0版本以上采用。2.兩級目錄2.兩級目錄圖7-10

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

兩級目錄結(jié)構(gòu)基本上克服了單級目錄的缺點,并具有以下優(yōu)點:

(1)提高了檢索目錄的速度。

(2)在不同的用戶目錄中,可以使用相同的文件名。

(3)不同用戶還可使用不同的文件名來訪問系統(tǒng)中的同一個共享文件。存在的問題:該結(jié)構(gòu)能有效地將多個用戶隔開,但這種隔離會使諸用戶之間不便于共享文件,不利于用戶間的合作。7.3.3樹形結(jié)構(gòu)目錄(P236)1.樹形目錄圖6-18多級目錄結(jié)構(gòu)主目錄有3個用戶ABCB用戶的3個分目錄F分目錄包含兩個文件J、N2.路徑名和當前目錄(1)路徑名(絕對路徑名)在樹形目錄結(jié)構(gòu)中,從根目到任何數(shù)據(jù)文件的路徑,都只有一條惟一的通路。在該路徑上從樹的根(即主目錄)開始,把全部目錄文件名與數(shù)據(jù)文件名,依次地用“/”連接起來,即構(gòu)成該數(shù)據(jù)文件的路徑名(pathname)。系統(tǒng)中的每一個文件都有惟一的路徑名。(2)當前目錄(CurrentDirectory)(相對路徑名)可為每個進程設置一個“當前目錄”,又稱為“工作目錄”。把從當前目錄開始直到數(shù)據(jù)文件為止所構(gòu)成的路徑名,稱為相對路徑名(relativepathname);

優(yōu)點:查詢速度更快,層次結(jié)構(gòu)更加清晰,能夠更加有效地進行文件的管理和保護。容易賦予不同的存取權(quán)限。缺點:查找一個文件,需要按路徑名逐級訪問中間節(jié)點,這就增加了磁盤訪問次數(shù),無疑將影響查詢速度。目前,大多數(shù)操作系統(tǒng)如UNIX、Linux和Windows系列都采用了樹形文件目錄。3.目錄操作

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

(2)刪除目錄不刪除非空目錄??蓜h除非空目錄(3)改變目錄。(4)移動目錄。(5)鏈接(Link)操作。(6)查找7.3.4目錄查詢技術(shù)

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

在單級目錄中,利用用戶提供的文件名,用順序查找法直接從文件目錄中找到指名文件的目錄項。

在樹型目錄中,用戶提供的文件名是由多個文件分量名組成的路徑名,此時須對多級目錄進行查找。假定用戶給定的文件路徑名是/usr/ast/mbox,則查找/usr/ast/mbox文件的過程如圖7-12所示。

1.線性檢索法圖7-12

查找/usr/ast/mbox的步驟

如查找/usr/ast/mbox的步驟:

2.Hash方法在7.2.6節(jié)中曾介紹了Hash文件。如果我們建立了一張Hash索引文件目錄,便可利用Hash方法進行查詢,即系統(tǒng)利用用戶提供的文件名并將它變換為文件目錄的索引值(該文件對應目錄項的地址),再利用該索引值到目錄中去查找,這將顯著地提高檢索速度。注意:可能存在沖突,要處理沖突

7.4文件共享文件共享形式與目的1)定義

:一個文件被多個用戶或程序使用2)共享形式:被多個用戶使用,由存取權(quán)限控制,多個用戶用相同或不同的名字來訪問同一文件。被多個程序使用,但各用自己的讀寫指針。被多個程序使用,但共享讀寫指針。3)目的:節(jié)省時間和存儲空間,減少了用戶工作量;進程間通過文件交換信息7.4.1基于有向無循環(huán)圖實現(xiàn)文件共享1.有向無循環(huán)圖DAG問題:新增加的內(nèi)容無法共享,新增加的盤塊只出現(xiàn)在執(zhí)行了操作的目錄中。2.利用索引結(jié)點

含有除文件名之外的所有屬性信息。目錄項中只含有文件名和指向索引結(jié)點的指針。圖7-15進程B鏈接前后的情況7.4.2利用符號鏈實現(xiàn)文件共享

在利用符號鏈方式實現(xiàn)文件共享時,只是文件主才擁有指向其索引結(jié)點的指針;而共享該文件的其他用戶,則只有該文件的路徑名,并不擁有指向其索引結(jié)點的指針。BCDEB1C1D1E1Fc:/zhang/san/B符號鏈實現(xiàn)文件共享優(yōu)缺點:優(yōu)點:方便地鏈接任一文件(用路徑名)缺點:訪問共享文件時開銷大(多次讀盤,消費盤空間),每一共享文件都要增加一文件名(因路徑名各不相同)

7.5文件保護

影響文件安全性的主要因素有:

(1)人為因素——通過存取控制機制防止

(2)系統(tǒng)因素——采取系統(tǒng)容錯技術(shù)防止

(3)自然因素——建立后備系統(tǒng)7.5.1保護域(ProtectionDomain)

1.訪問權(quán)

為了對系統(tǒng)中的對象加以保護,應由系統(tǒng)來控制進程對對象的訪問。我們把一個進程能對某對象執(zhí)行操作的權(quán)力,稱為訪問權(quán)(Accessright)。

如(F1(對象名),{R/W

}(權(quán)集))

2.保護域

對資源進行保護,保護域簡稱為“域”?!坝颉笔沁M程對一組對象訪問權(quán)的集合,進程只能在指定域內(nèi)執(zhí)行操作。這樣,“域”也就規(guī)定了進程所能訪問的對象和能執(zhí)行的操作。

3.進程和域間的靜態(tài)聯(lián)系

在進程和域之間一一對應。

在進程的整個生命期中,其可用資源是固定的,我們把這種域稱為“靜態(tài)域”。在這種情況下,進程運行的全過程都是受限于同一個域,這將會使賦予進程的訪問權(quán)超過了實際需要。

4.進程和域間的動態(tài)聯(lián)系方式

在進程和域之間,也可以是一對多的關系,即一個進程可以聯(lián)系著多個域。在此情況下,可將進程的運行分為若干個階段,其每個階段聯(lián)系著一個域。7.5.2訪問矩陣

1.基本的訪問矩陣

訪問矩陣中的行代表域,列代表對象,矩陣中的每一項是由一組訪問權(quán)組成的。每一項訪問權(quán)access(i,j)定義了在域Di中執(zhí)行的進程能對對象Qj所施加的操作集。圖7-18一個訪問矩陣2.具

溫馨提示

  • 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

提交評論