操作系統(tǒng) 第七章 文件管理_第1頁(yè)
操作系統(tǒng) 第七章 文件管理_第2頁(yè)
操作系統(tǒng) 第七章 文件管理_第3頁(yè)
操作系統(tǒng) 第七章 文件管理_第4頁(yè)
操作系統(tǒng) 第七章 文件管理_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)操作系統(tǒng)第七章文件管理本章內(nèi)容7.1文件和文件系統(tǒng)7.2文件的邏輯結(jié)構(gòu)7.3文件目錄7.4文件共享7.5文件保護(hù)7.1文件和文件系統(tǒng)7.1.1文件、記錄和數(shù)據(jù)項(xiàng)1.?dāng)?shù)據(jù)項(xiàng)

最低級(jí)的數(shù)據(jù)組織形式,可把它分成以下兩種類(lèi)型:(1)基本數(shù)據(jù)項(xiàng)。用于描述一個(gè)對(duì)象的某種屬性的字符集。是數(shù)據(jù)組織中可以命名的最小邏輯數(shù)據(jù)單位,即原子數(shù)據(jù),又稱(chēng)為數(shù)據(jù)元素或字段。(2)組合數(shù)據(jù)項(xiàng)。它是由若干個(gè)基本數(shù)據(jù)項(xiàng)組成的,簡(jiǎn)稱(chēng)組項(xiàng)。根據(jù)屬性的不同,需要用不同的數(shù)據(jù)類(lèi)型來(lái)描述。

2.記錄

記錄是一組相關(guān)數(shù)據(jù)項(xiàng)的集合,用于描述一個(gè)對(duì)象在某方面的屬性。例如,一個(gè)學(xué)生使用學(xué)號(hào)、姓名、年齡及所在系班。關(guān)鍵字是惟一能標(biāo)識(shí)一個(gè)記錄的數(shù)據(jù)項(xiàng)。如:學(xué)號(hào)。

7.1.1文件、記錄和數(shù)據(jù)項(xiàng)

3.文件文件是具有文件名的一組相關(guān)元素的集合。文件結(jié)構(gòu)分為兩種:有結(jié)構(gòu)的文件中,文件由若干個(gè)相關(guān)記錄組成;無(wú)結(jié)構(gòu)文件則被看成是一個(gè)字符流。文件在文件系統(tǒng)中是一個(gè)最大的數(shù)據(jù)單位;文件必須有文件名,通常由一串ASCII碼或漢字構(gòu)成。

7.1.1文件、記錄和數(shù)據(jù)項(xiàng)

文件的屬性可以包括:(1)文件類(lèi)型。如源文件、目標(biāo)文件等(2)文件長(zhǎng)度。單位可以是塊,字或字節(jié)。(3)文件的物理位置。指示文件在哪一個(gè)設(shè)備上以及在該設(shè)備的哪個(gè)位置的指針。(4)文件的建立時(shí)間。這是指文件最后一次的修改時(shí)間等。3.文件7-17.1.2文件類(lèi)型為了便于管理和控制文件而將文件分成若干種類(lèi)型。常用的幾種文件分類(lèi)方法:1)按用途分三類(lèi):系統(tǒng),用戶(hù),庫(kù)文件。2)按文件中數(shù)據(jù)的形式:源,目標(biāo)以及可執(zhí)行文件。3)按存取控制屬性:只執(zhí)行,只讀,讀寫(xiě)。文件系統(tǒng)分為三個(gè)層次:7.1.3文件系統(tǒng)的層次模型7-21)對(duì)象及其屬性對(duì)象有:文件,目錄,磁盤(pán)存儲(chǔ)空間。2)對(duì)對(duì)象操縱和管理的軟件集合核心部分,包括:文件存儲(chǔ)空間的管理,文件目錄的管理,邏輯地址與物理地址轉(zhuǎn)換機(jī)制,文件讀寫(xiě)管理,文件共享與保護(hù)等。3)文件系統(tǒng)的接口向用戶(hù)提供兩種接口:命令(終端鍵入命令)和程序(系統(tǒng)調(diào)用)。7.1.3文件系統(tǒng)的層次模型7.1.4文件操作用戶(hù)通過(guò)文件系統(tǒng)提供的系統(tǒng)調(diào)用實(shí)施對(duì)文件的操作。1.最基本的文件操作有:創(chuàng)建文件(分配外存,建立目錄項(xiàng))、刪除文件(置空目錄項(xiàng))、讀文件、寫(xiě)文件、截?cái)辔募ㄔ形募L(zhǎng)度置0)和設(shè)置文件的讀/寫(xiě)位置(改變始終從始端開(kāi)始讀/寫(xiě)操作)。2.文件的“打開(kāi)”和“關(guān)閉”操作:

“打開(kāi)”(open),是指系統(tǒng)將指名文件的屬性(包括該文件在外存上的物理位置)從外存拷貝到內(nèi)存打開(kāi)文件表的一個(gè)表目中,并將該表目的編號(hào)(或稱(chēng)為索引)返回給用戶(hù)。

“關(guān)閉”(close)系統(tǒng)調(diào)用來(lái)關(guān)閉此文件,OS將會(huì)把該文件從打開(kāi)文件表中的表目上刪除掉。3.其它文件操作:

對(duì)文件屬性的操作,改變文件名、改變文件的擁有者,查詢(xún)文件的狀態(tài)等7.1.4文件操作本章內(nèi)容7.1文件和文件系統(tǒng)7.2文件的邏輯結(jié)構(gòu)7.3文件目錄7.4文件共享7.5文件保護(hù)7.2文件的邏輯結(jié)構(gòu)

文件是由一系列的記錄組成的。對(duì)于任何一個(gè)文件,都存在著以下兩種形式的結(jié)構(gòu):(1)文件的邏輯結(jié)構(gòu)從用戶(hù)觀點(diǎn)出發(fā)所觀察到的文件組織形式。(2)文件的物理結(jié)構(gòu)指文件在外存上的存儲(chǔ)組織形式。7.2.1文件邏輯結(jié)構(gòu)的類(lèi)型★文件的邏輯結(jié)構(gòu)可分為兩大類(lèi):(1)有結(jié)構(gòu)文件:是指由一個(gè)以上的記錄構(gòu)成的文件,故又把它稱(chēng)為記錄式文件;記錄的長(zhǎng)度可分為定長(zhǎng)和不定長(zhǎng)兩類(lèi)??刹捎枚喾N方式組織記錄,形成不同的文件:①順序文件:是由一系列記錄按某種順序排列所形成的文件。②索引文件:當(dāng)記錄為可變長(zhǎng)度時(shí),通常為之建立一張索引表。③索引順序文件:它為文件建立一張索引表,為每一組記錄中的第一個(gè)記錄設(shè)置一個(gè)表項(xiàng)?!镂募倪壿嫿Y(jié)構(gòu)可分為兩大類(lèi):(2)無(wú)結(jié)構(gòu)文件:是指由字符流構(gòu)成的文件,故又稱(chēng)為流式文件。無(wú)結(jié)構(gòu)的文件形式,即流式文件,其長(zhǎng)度以字節(jié)為單位在UNIX系統(tǒng)中,所有的文件都被看作是流式文件7.2.1文件邏輯結(jié)構(gòu)的類(lèi)型7.2.2順序文件1.邏輯記錄的排序文件中的記錄排列可歸納為以下兩種情況:①串結(jié)構(gòu),各記錄之間的順序與關(guān)鍵字無(wú)關(guān)。通常的辦法是由時(shí)間來(lái)決定,即按存入時(shí)間的先后排列②順序結(jié)構(gòu),指文件中的所有記錄按關(guān)鍵字排列。2.順序文件的優(yōu)缺點(diǎn):優(yōu)點(diǎn):

(1)對(duì)順序文件的存取效率是所有邏輯文件中最高的.(2)只有順序文件才能存儲(chǔ)在磁帶上,并能有效地工作。缺點(diǎn):(1)在交互應(yīng)用的場(chǎng)合,如果用戶(hù)(程序)要求查找或修改單個(gè)記錄,為此系統(tǒng)便要去逐個(gè)地查找諸記錄。(2)如果想增加或刪除一個(gè)記錄,都比較困難。7.2.2順序文件1)定長(zhǎng)記錄的順序文件如果已知當(dāng)前記錄的邏輯地址,便很容易確定下一個(gè)記錄的邏輯地址。在讀一個(gè)文件時(shí),可設(shè)置一個(gè)讀指針Rptr。令它指向下一個(gè)記錄的首地址,每當(dāng)讀完一個(gè)記錄時(shí),便執(zhí)行:Rptr:=Rptr十L(L為記錄長(zhǎng)度)7.2.3記錄尋址2)變長(zhǎng)記錄的順序文件在每次讀或?qū)懲暌粋€(gè)記錄后,須將讀或?qū)懼羔樇由螸i Wptr:=Wptr十Li(Li是剛讀或剛寫(xiě)完的記錄的長(zhǎng)度)7.2.4索引文件對(duì)于定長(zhǎng)記錄,可方便地實(shí)現(xiàn)直接存取。對(duì)于變長(zhǎng)記錄就較難實(shí)現(xiàn)直接存取,為了解決這一問(wèn)題,為變長(zhǎng)記錄文件建立一張索引表,索引表是按鍵排序的,可以方便地實(shí)現(xiàn)直接存取。7.2.5索引順序文件索引順序文件:將順序文件中的所有記錄分為若干個(gè)組,為順序文件建立一張索引表,在索引表中為每組中的第一個(gè)記錄建立一個(gè)索引項(xiàng),其中含有該記錄的鍵值和指向該記錄的指針。索引順序文件文件檢索在對(duì)索引順序文件進(jìn)行檢索時(shí),首先也是利用用戶(hù)(程序)所提供的關(guān)鍵字以及某種查找算法去檢索索引表,找到該記錄所在記錄組中第一個(gè)記錄的表項(xiàng),從中得到該記錄組第一個(gè)記錄在主文件中的位置;然后,再利用順序查找法去查找主文件,從中找到所要求的記錄。文件檢索效率如果在一個(gè)順序文件中所含有的記錄數(shù)為N,則為檢索到具有指定關(guān)鍵字的記錄,平均須查找N/2個(gè)記錄;但對(duì)于索引順序文件,則為能檢索到具有指定關(guān)鍵字的記錄,平均只要查找個(gè)記錄數(shù)。例如,有一個(gè)順序文件含有10000個(gè)記錄,平均須查找的記錄數(shù)為5000個(gè)。但對(duì)于索引順序文件,則平均只須查找100個(gè)記錄??梢?jiàn),它的檢索效率是順序文件的50倍.7.2.6直接文件和哈希文件1.直接文件

對(duì)于直接文件,可根據(jù)給定的記錄鍵值,直接獲得指定記錄的物理地址。換言之,記錄鍵值本身就決定了記錄的物理地址。這種由記錄鍵值到記錄物理地址的轉(zhuǎn)換被稱(chēng)為鍵值轉(zhuǎn)換

。7.2.6直接文件和哈希文件2.哈希(Hash)文件:利用Hash函數(shù),可將記錄鍵值轉(zhuǎn)換為相應(yīng)記錄的地址。為了能實(shí)現(xiàn)文件存儲(chǔ)空間的動(dòng)態(tài)分配,通常由Hash函數(shù)所求得的并非是相應(yīng)記錄的地址,而是指向一目錄表相應(yīng)表目的指針,該表目的內(nèi)容指向相應(yīng)記錄所在的物理塊。本章內(nèi)容7.1文件和文件系統(tǒng)7.2文件的邏輯結(jié)構(gòu)7.3文件目錄7.4文件共享7.5文件保護(hù)7.3文件目錄對(duì)目錄管理的要求如下:(1)實(shí)現(xiàn)“按名存取”。(2)提高對(duì)目錄的檢索速度。(3)文件共享。(4)允許文件重名。

7.3.1文件控制塊和索引結(jié)點(diǎn)1、文件控制塊為了能對(duì)一個(gè)文件進(jìn)行正確的存取,必須為文件設(shè)置用于描述和控制文件的數(shù)據(jù)結(jié)構(gòu),稱(chēng)之為“文件控制塊(FCB)”

把文件控制塊的有序集合稱(chēng)為文件目錄。一個(gè)文件目錄也被看作是一個(gè)文件,稱(chēng)為目錄文件。1、文件控制塊(1)文件控制塊的基本信息①文件名;②文件物理位置;③文件邏輯結(jié)構(gòu)(表明文件是流式還是記錄式,定長(zhǎng)還是變長(zhǎng)等);④文件物理結(jié)構(gòu)(順序文件,鏈?zhǔn)竭€是索引文件)。(2)存取控制信息類(lèi)存取權(quán)限(3)使用信息類(lèi)文件的建立日期和時(shí)間等。(1)索引結(jié)點(diǎn)的引入文件描述信息單獨(dú)形成一個(gè)稱(chēng)為索引結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)稱(chēng)為i結(jié)點(diǎn)。在文件目錄中的每個(gè)目錄項(xiàng),僅由文件名和指向該文件所對(duì)應(yīng)的i結(jié)點(diǎn)的指針?biāo)鶚?gòu)成。2.索引結(jié)點(diǎn)(2)磁盤(pán)索引結(jié)點(diǎn)包括以下內(nèi)容:文件主標(biāo)識(shí)符,文件類(lèi)型,存取權(quán)限,文件物理地址,文件長(zhǎng)度,文件連接計(jì)數(shù)(系統(tǒng)中所有指向該文件名的指針計(jì)數(shù)),文件存取時(shí)間。(3)內(nèi)存索引結(jié)點(diǎn)包括以下內(nèi)容:索引結(jié)點(diǎn)編號(hào),狀態(tài),訪問(wèn)計(jì)數(shù),文件所屬文件系統(tǒng)的邏輯設(shè)備號(hào),鏈接指針。2.索引結(jié)點(diǎn)7.3.2目錄結(jié)構(gòu)目錄結(jié)構(gòu)的組織,關(guān)系到文件系統(tǒng)的存取速度,也關(guān)系到文件的共享性和安全性。因此,組織好文件的目錄,是設(shè)計(jì)好文件系統(tǒng)的重要環(huán)節(jié)。目前常用的目錄結(jié)構(gòu)形式有單級(jí)目錄、兩級(jí)目錄和多級(jí)目錄。1.單級(jí)目錄結(jié)構(gòu)單級(jí)目錄的優(yōu)點(diǎn):是簡(jiǎn)單且能實(shí)現(xiàn)目錄管理的基本功能——按名存取。單級(jí)目錄缺點(diǎn):

(1)查找速度慢。(2)不允許重名。(3)不便于實(shí)現(xiàn)文件共享。適合單用戶(hù)環(huán)境。

1.單級(jí)目錄結(jié)構(gòu)2.兩級(jí)目錄

為每一個(gè)用戶(hù)建立一個(gè)單獨(dú)的用戶(hù)文件目錄UFD,再建立一個(gè)主文件目錄MFD。在主文件目錄中,每個(gè)用戶(hù)目錄文件都占有一個(gè)目錄項(xiàng),其目錄項(xiàng)中包括用戶(hù)名和指向該用戶(hù)目錄文件的指針兩級(jí)目錄結(jié)構(gòu)優(yōu)點(diǎn):(1)提高了檢索目錄的速度。(2)在不同的用戶(hù)目錄中,可以使用相同的文件名。(3)不同用戶(hù)還可使用不同的文件名來(lái)訪問(wèn)系統(tǒng)中的同一個(gè)共享文件。

2.兩級(jí)目錄

7.3.3樹(shù)形結(jié)構(gòu)目錄(多級(jí)目錄結(jié)構(gòu))(1)目錄結(jié)構(gòu):主目錄在這里被稱(chēng)為根目錄,把數(shù)據(jù)文件稱(chēng)為樹(shù)葉,其它的目錄均作為樹(shù)的結(jié)點(diǎn)。(2)路徑名從樹(shù)的根(即主目錄)開(kāi)始,把全部目錄文件名與數(shù)據(jù)文件名,依次地用“/”連接起來(lái),即構(gòu)成該數(shù)據(jù)文件的路徑名(pathname)。系統(tǒng)中的每一個(gè)文件都有惟一的路徑名。(3)當(dāng)前目錄為每個(gè)進(jìn)程設(shè)置一個(gè)“當(dāng)前目錄”,又稱(chēng)為“工作目錄”進(jìn)程對(duì)各文件的訪問(wèn)都相對(duì)于“當(dāng)前目錄”而進(jìn)行。7.3.3樹(shù)形結(jié)構(gòu)目錄(多級(jí)目錄結(jié)構(gòu))增加目錄在用戶(hù)要?jiǎng)?chuàng)建一個(gè)新文件時(shí),只需查看在自己的UFD及其子目錄中,有無(wú)與新建文件相同的文件名。若無(wú),便可在UFD或其某個(gè)子目錄中增加一個(gè)新目錄項(xiàng)。目錄刪除采用下述兩種方法處理:(1)不刪除非空目錄。(2)可刪除非空目錄。

(4)增加和刪除目錄7.3.4目錄查詢(xún)技術(shù)★對(duì)目錄進(jìn)行查詢(xún)的方式有兩種:線性檢索法和Hash方法。

1.線性檢索法線性檢索法又稱(chēng)為順序檢索法。①在單級(jí)目錄中,利用用戶(hù)提供的文件名,用順序查找法直接從文件目錄中找到指名文件的目錄項(xiàng)。②在樹(shù)型目錄中,用戶(hù)提供的文件名是由多個(gè)文件分量名組成的路徑名,此時(shí)須對(duì)多級(jí)目錄進(jìn)行查找。1.線性檢索法假定用戶(hù)給定的文件路徑名是/usr/ast/mbox,則查找/usr/ast/mbox文件的過(guò)程如圖7-12所示Hash方法:建立了一張Hash索引文件目錄,系統(tǒng)利用用戶(hù)提供的文件名并將它變換為文件目錄的索引值,再利用該索引值到目錄中去查找。Hash方法將顯著地提高檢索速度。在文件名中使用了通配符“*”、“?”等,系統(tǒng)便無(wú)法利用Hash法檢索目錄,因此,需要利用線性查找法查找目錄。2.Hash方法在進(jìn)行文件名的轉(zhuǎn)換時(shí),有可能把”n個(gè)不同的文件名轉(zhuǎn)換為相同的Hash值,稱(chēng)謂的“Hash沖突”。Hash查找過(guò)程:①在利用Hash值查找目錄時(shí),如果目錄表中相應(yīng)的目錄項(xiàng)是空的,則表示系統(tǒng)中并無(wú)指定文件。②如果目錄項(xiàng)中的文件名與指定文件名相匹配,則表示該目錄項(xiàng)正是所要尋找的文件所對(duì)應(yīng)的目錄項(xiàng),故而可從中找到該文件所在的物理地址。③如果在目錄表的相應(yīng)目錄項(xiàng)中的文件名與指定文件名并不匹配,則表示發(fā)生了“Hash沖突”。2.Hash方法解決Hash沖突的方法:將其Hash值再加上一個(gè)常數(shù)(該常數(shù)應(yīng)與目錄的長(zhǎng)度值互質(zhì)),形成新的索引值,再返回到第一步重新開(kāi)始查找。2.Hash方法本章內(nèi)容7.1文件和文件系統(tǒng)7.2文件的邏輯結(jié)構(gòu)7.3文件目錄7.4文件共享7.5文件保護(hù)7.4文件共享文件共享即指系統(tǒng)應(yīng)允許多個(gè)用戶(hù)(進(jìn)程)共享同一份文件。在系統(tǒng)中只需保留該共享文件的一份副本。當(dāng)前常用的兩種文件共享方法:(1)基于索引結(jié)點(diǎn)的共享方式(2)利用符號(hào)鏈實(shí)現(xiàn)文件共享

7.4.1基于索引結(jié)點(diǎn)的共享方式

7.4.1基于索引結(jié)點(diǎn)的共享方式

7.4.1基于索引結(jié)點(diǎn)的共享方式7.4.2利用符號(hào)鏈實(shí)現(xiàn)文件共享

為使B能共享C的一個(gè)文件F,可以由系統(tǒng)創(chuàng)建一個(gè)LINK類(lèi)型的新文件,也取名為F并將F寫(xiě)入B的目錄中,以實(shí)現(xiàn)B的目錄與文件F的鏈接;在新文件中只包含被創(chuàng)文件F的路徑名。這樣的鏈接方法被稱(chēng)為符號(hào)鏈接.新文件中的路徑名,則只被看作是符號(hào)鏈。當(dāng)B要訪問(wèn)被鏈接的文件F且正要讀LINK類(lèi)新文件時(shí),將被OS截獲,OS根據(jù)新文件中的路徑名去讀該文件,于是就實(shí)現(xiàn)了用戶(hù)B對(duì)文件F的共享。在利用符號(hào)鏈方式實(shí)現(xiàn)文件共享時(shí),只是文件主才擁有指向其索引結(jié)點(diǎn)的指針,而共享該文件的其它用戶(hù),則只有該文件的路徑名,并不擁有指向其索引結(jié)點(diǎn)的指針。符號(hào)鏈方式優(yōu)點(diǎn):能連接任何機(jī)器上的文件。每增加一個(gè)連接,就增加一個(gè)文件名,各用戶(hù)使用自己的名字去共享文件。缺點(diǎn):備份是可能會(huì)產(chǎn)生多個(gè)拷貝。7.4.2利用符號(hào)鏈實(shí)現(xiàn)文件共享

本章內(nèi)容7.1文件和文件系統(tǒng)7.2文件的邏輯結(jié)構(gòu)7.3文件目錄7.4文件共享7.5文件保護(hù)7.5文件保護(hù)影響文件安全性的因素:(1)人為因素。(2)系統(tǒng)因素。(3)自然因素。采取的措施(1)存取控制,防止由人為因素所造成的文件不安全性;(2)系統(tǒng)容錯(cuò)技術(shù),防止系統(tǒng)部分的故障所造成的文件的不安全性;(3)建立后備系統(tǒng),防止由自然因素造成的不安全性。7.5.1保護(hù)域1.訪問(wèn)權(quán)由系統(tǒng)來(lái)控制進(jìn)程對(duì)對(duì)象的訪問(wèn);對(duì)象:硬件,軟件;對(duì)對(duì)象施加的操作:讀,寫(xiě),執(zhí)行。訪問(wèn)權(quán):一個(gè)進(jìn)程能對(duì)某對(duì)象執(zhí)行操作的權(quán)力,用一個(gè)有序?qū)Γ▽?duì)象名,權(quán)集)表示;(F1,{R/W})表示某進(jìn)程

溫馨提示

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

評(píng)論

0/150

提交評(píng)論