湘潭大學(xué)操作系統(tǒng)第7章課件ppt_第1頁(yè)
湘潭大學(xué)操作系統(tǒng)第7章課件ppt_第2頁(yè)
湘潭大學(xué)操作系統(tǒng)第7章課件ppt_第3頁(yè)
湘潭大學(xué)操作系統(tǒng)第7章課件ppt_第4頁(yè)
湘潭大學(xué)操作系統(tǒng)第7章課件ppt_第5頁(yè)
已閱讀5頁(yè),還剩89頁(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)介

1計(jì)算機(jī)操作系統(tǒng)第7章文件管理2目錄7.1概述7.2文件結(jié)構(gòu)7.3文件目錄7.4文件共享和安全3教學(xué)目的了解文件系統(tǒng)的概念、文件的使用、文件系統(tǒng)的層次模型。掌握文件系統(tǒng)的基本概念和實(shí)現(xiàn)過(guò)程。掌握文件的邏輯結(jié)構(gòu)、物理組織及對(duì)不同類(lèi)型文件的存取方法。掌握文件目錄查詢(xún)方法、文件共享及安全4文件管理計(jì)算機(jī)中使用到的大量數(shù)據(jù)和程序,都以文件的形式存放在外存當(dāng)中,需要使用時(shí)才將其調(diào)入內(nèi)存。要對(duì)外存上的大量文件進(jìn)行有效管理,不僅要熟悉外存的特性,還要了解文件的各種屬性以及它們?cè)谕獯娈?dāng)中的位置,并且在多用戶(hù)環(huán)境下,還要能保證數(shù)據(jù)的安全性和一致性。操作系統(tǒng)為文件管理的承擔(dān)者,專(zhuān)門(mén)負(fù)責(zé)管理在外存上的文件,并把對(duì)文件的存取、共享和保護(hù)等手段提供給用戶(hù)。即方便了用戶(hù)、保證了文件的安全性,還有效的提高了系統(tǒng)資源的利用率。57.1概述文件系統(tǒng)是指計(jì)算機(jī)存儲(chǔ)設(shè)備上組織文件的方法,是操作系統(tǒng)用于明確存儲(chǔ)設(shè)備或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu)。具體地說(shuō),操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件模塊被稱(chēng)為文件管理系統(tǒng),簡(jiǎn)稱(chēng)文件系統(tǒng)。67.1概述文件系統(tǒng)由三部分組成:與文件管理有關(guān)軟件、被管理文件以及實(shí)施文件管理所需數(shù)據(jù)結(jié)構(gòu)。從系統(tǒng)角度來(lái)看,文件系統(tǒng)是對(duì)文件存儲(chǔ)設(shè)備的空間進(jìn)行組織和分配,負(fù)責(zé)文件存儲(chǔ)并對(duì)存入的文件進(jìn)行保護(hù)和檢索的系統(tǒng)。從功能角度來(lái)看,它負(fù)責(zé)為用戶(hù)建立文件,讀出、存入、修改、轉(zhuǎn)存文件,控制文件的存取,當(dāng)用戶(hù)不再使用時(shí)撤銷(xiāo)文件等。77.1.1文件文件系統(tǒng)的管理功能是將其管理的程序和數(shù)據(jù)通過(guò)組織為一系列文件的方式實(shí)現(xiàn)的。而文件則是指具有文件名的若干相關(guān)元素的集合。元素通常是記錄,而記錄又是一組有意義的數(shù)據(jù)項(xiàng)的集合??梢?jiàn),基于文件系統(tǒng)的概念,可以把數(shù)據(jù)組成分為數(shù)據(jù)項(xiàng)、記錄和文件三級(jí)。7.1.1文件

1.數(shù)據(jù)項(xiàng)

在文件系統(tǒng)中,數(shù)據(jù)項(xiàng)是最低級(jí)的數(shù)據(jù)組織形式,可把它分成以下兩種類(lèi)型:

(1)基本數(shù)據(jù)項(xiàng)。用于描述一個(gè)對(duì)象的某種屬性的字符集,是數(shù)據(jù)組織中可以命名的最小邏輯數(shù)據(jù)單位,又稱(chēng)為數(shù)據(jù)元素或字段。例如描述學(xué)生的基本數(shù)據(jù)項(xiàng)有:學(xué)號(hào)、年級(jí)等等。

(2)組合數(shù)據(jù)項(xiàng)。由若干個(gè)基本數(shù)據(jù)項(xiàng)組成,簡(jiǎn)稱(chēng)組項(xiàng)。例如工資這個(gè)組項(xiàng)就由基本工資、績(jī)效工資、獎(jiǎng)勵(lì)工資等組成。7.1.1文件

2.記錄

記錄是一組相關(guān)數(shù)據(jù)項(xiàng)的集合,用于描述一個(gè)對(duì)象在某方面的屬性。一個(gè)記錄應(yīng)包含哪些數(shù)據(jù)項(xiàng),取決于需要描述對(duì)象的哪個(gè)方面。由于對(duì)象所處的環(huán)境不同可把他作為不同的對(duì)象。

在諸多記錄中,為了能唯一地標(biāo)識(shí)一個(gè)記錄,必須在記錄的各個(gè)數(shù)據(jù)項(xiàng)中,確定其中的一個(gè)或幾個(gè)項(xiàng),把他們的集合稱(chēng)為關(guān)鍵字。也即,關(guān)鍵字是能唯一標(biāo)識(shí)一個(gè)記錄的數(shù)據(jù)項(xiàng)集。7.1.1文件

3.文件

文件是指由創(chuàng)建者所定義的、具有文件名的一組相關(guān)元素的集合,可分為有結(jié)構(gòu)文件和無(wú)結(jié)構(gòu)文件兩種。在有結(jié)構(gòu)文件中,文件由若干相關(guān)記錄組成,無(wú)結(jié)構(gòu)文件則被看成是一個(gè)字符流。文件在文件系統(tǒng)中是一個(gè)最大的數(shù)據(jù)單位,描述了一個(gè)對(duì)象集。一個(gè)文件必須要有一個(gè)文件名,用戶(hù)利用文件名來(lái)訪(fǎng)問(wèn)文件。

文件具有自己的屬性,屬性可包括:文件類(lèi)型、文件長(zhǎng)度、文件的物理位置、文件的建立時(shí)間。文件、記錄和數(shù)據(jù)項(xiàng)之間的層次關(guān)系

文件名和擴(kuò)展名

(1)文件名。是一個(gè)字符串,用以標(biāo)識(shí)一個(gè)特定的數(shù)據(jù)集合。不同的OS對(duì)文件名的命名要求不一樣。

(2)擴(kuò)展名。是添加在文件名后面的若干個(gè)附加字符,又稱(chēng)為后綴名,用于指示文件的類(lèi)型,是文件名的組成部分。在大多數(shù)OS中,用“.”將文件名和后綴名分隔開(kāi)。文件類(lèi)型

1)按文件的用途分類(lèi)

(1)系統(tǒng)文件,這是指由系統(tǒng)軟件構(gòu)成的文件。大多數(shù)的系統(tǒng)文件只允許用戶(hù)調(diào)用,但不允許用戶(hù)去讀,更不允許修改;有的系統(tǒng)文件不直接對(duì)用戶(hù)開(kāi)放。

(2)用戶(hù)文件,指由用戶(hù)的源代碼、目標(biāo)文件、可執(zhí)行文件或數(shù)據(jù)等所構(gòu)成的文件。用戶(hù)將這些文件委托給系統(tǒng)保管。

(3)庫(kù)函數(shù)文件,這是由標(biāo)準(zhǔn)子例程及常用的例程等所構(gòu)成的文件。這類(lèi)文件允許用戶(hù)調(diào)用,但不允許修改。文件類(lèi)型

2)按文件的組織形式分類(lèi)

(1)普通文件。普通文件主要是指文件的組織格式為文件系統(tǒng)所規(guī)定的最一般格式的文件,例如由字符流組成的文件。

(2)目錄文件。目錄文件是由文件的目錄構(gòu)成的特殊文件,是用來(lái)管理和實(shí)現(xiàn)文件系統(tǒng)功能的系統(tǒng)文件。

(3)特殊文件。特指系統(tǒng)中的各類(lèi)I/O設(shè)備。這些特殊文件的使用是和設(shè)備驅(qū)動(dòng)程序緊密相連的。操作系統(tǒng)會(huì)把對(duì)特殊文件的操作轉(zhuǎn)成為對(duì)應(yīng)設(shè)備的操作。文件類(lèi)型

3)按文件中數(shù)據(jù)形式分類(lèi)

(1)源文件,這是指由源程序和數(shù)據(jù)構(gòu)成的文件。通常,由終端或輸入設(shè)備輸入的源程序和數(shù)據(jù)所形成的文件都屬于源文件。它通常是由ASCII碼或漢字所組成的。

(2)目標(biāo)文件,這是指把源程序經(jīng)過(guò)編譯程序編譯過(guò),但尚未經(jīng)過(guò)鏈接程序鏈接的目標(biāo)代碼所構(gòu)成的文件。目標(biāo)文件所使用的后綴名是“.obj”。

(3)可執(zhí)行文件,這是指把編譯后所產(chǎn)生的目標(biāo)代碼經(jīng)過(guò)鏈接程序鏈接后所形成的文件。其后綴名是?.exe。文件類(lèi)型

4)按存取控制屬性分類(lèi)

根據(jù)系統(tǒng)管理員或用戶(hù)所規(guī)定的存取控制屬性,可將文件分為三類(lèi):

(1)只執(zhí)行文件,該類(lèi)文件只允許被核準(zhǔn)的用戶(hù)調(diào)用執(zhí)行,不允許讀和寫(xiě)。

(2)只讀文件,該類(lèi)文件只允許文件主及被核準(zhǔn)的用戶(hù)去讀,不允許寫(xiě)。

(3)讀寫(xiě)文件,這是指允許文件主和被核準(zhǔn)的用戶(hù)去讀或?qū)懙奈募?77.1.2文件系統(tǒng)

操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件模塊被稱(chēng)為文件系統(tǒng)。

文件系統(tǒng)是計(jì)算機(jī)組織、存取和保存信息的重要手段,負(fù)責(zé)文件的創(chuàng)建、撤銷(xiāo)、讀寫(xiě)、修改、復(fù)制和存取控制等,它管理存放文件的各種資源,并且還負(fù)責(zé)對(duì)文件進(jìn)行按名存取控制。18圖7.1文件系統(tǒng)模型7.1.2文件系統(tǒng)19文件系統(tǒng)的層次結(jié)構(gòu)

文件系統(tǒng)是指含有大量的文件及其屬性的說(shuō)明,對(duì)文件進(jìn)行操縱和管理的軟件,以及向用戶(hù)提供使用文件的接口等的集合。文件系統(tǒng)接口邏輯文件系統(tǒng)基本I/O管理程序(文件組織模塊)基本文件系統(tǒng)(物理I/O層)I/O控制層(設(shè)備驅(qū)動(dòng)程序)對(duì)象及其屬性說(shuō)明對(duì)對(duì)象操縱和管理的軟件集合(1)文件,文件管理的直接對(duì)象。(2)目錄,對(duì)目錄的組織和管理,是方便用戶(hù)和提高文件存取速度的關(guān)鍵。(3)磁盤(pán)(帶)存儲(chǔ)空間。文件系統(tǒng)的核心部分。文件系統(tǒng)的大部分功能,都是在這一層實(shí)現(xiàn)。通過(guò)接口提供了一組對(duì)文件和記錄操作的方法和手段,包括命令接口和程序接口兩類(lèi)。文件系統(tǒng)的最底層,主要由磁盤(pán)(磁帶)驅(qū)動(dòng)程序組成。主要用于處理內(nèi)存與磁盤(pán)(帶)機(jī)系統(tǒng)之間數(shù)據(jù)塊的交換。完成與磁盤(pán)I/O有關(guān)的大量事務(wù),有:選擇文件所在設(shè)備;進(jìn)行文件邏輯塊號(hào)到物理塊號(hào)的轉(zhuǎn)換;空閑盤(pán)塊的管理;I/O緩沖的制定。處理文件和記錄的相關(guān)操作。207.1.2文件系統(tǒng)引入文件和文件系統(tǒng)后,所有的程序和信息都以文件的形式存放在計(jì)算機(jī)中。文件系統(tǒng)負(fù)責(zé)管理這些文件,并把對(duì)文件的存取、共享和保護(hù)等手段通過(guò)操作系統(tǒng)提供給用戶(hù)。文件系統(tǒng)的有以下優(yōu)點(diǎn):(1)使用的方便性。文件系統(tǒng)具有按名存取的功能,能夠?qū)ξ募臀募夸泴?shí)施有效的管理,用戶(hù)不再需要考慮文件的存儲(chǔ)空間的分配。(2)較強(qiáng)的數(shù)據(jù)安全性。文件系統(tǒng)提供各種文件保護(hù)和共享措施,防止對(duì)文件的意外或有意的破壞。(3)接口的統(tǒng)一性。文件系統(tǒng)具有統(tǒng)一的接口,用戶(hù)可以利用統(tǒng)一的廣義指令和系統(tǒng)調(diào)用存取各種介質(zhì)上的文件,對(duì)文件的操作簡(jiǎn)單、直觀,脫離了對(duì)存儲(chǔ)介質(zhì)的依賴(lài)。文件操作

1.最基本的文件操作

最基本的文件操作包含下述內(nèi)容:

(1)創(chuàng)建文件。

(2)刪除文件。

(3)讀文件。

(4)寫(xiě)文件。

(5)設(shè)置文件的讀/寫(xiě)位置。文件操作

2.文件的“打開(kāi)”和“關(guān)閉”操作

當(dāng)前OS提供的大多數(shù)對(duì)文件的操作,其過(guò)程大致分為兩步:第一步是通過(guò)檢索文件目錄來(lái)找到指定文件的屬性及其在外存上的位置;第二步是對(duì)文件實(shí)施相應(yīng)的操作。為了避免多次重復(fù)地檢索目錄,引入“打開(kāi)”(open)這一文件系統(tǒng)調(diào)用。

所謂“打開(kāi)”是指在用戶(hù)和指定文件之間建立起一個(gè)鏈接。此后,用戶(hù)可通過(guò)該連接直接得到文件信息,從而避免了再次通過(guò)目錄檢索文件。同樣,如果用戶(hù)已不再需要對(duì)該文件實(shí)施相應(yīng)的操作,可以利用“關(guān)閉”(close)系統(tǒng)調(diào)用關(guān)閉文件,既斷開(kāi)此鏈接,OS將把該文件從打開(kāi)文件表中的表目上刪除掉。237.2文件結(jié)構(gòu)

文件系統(tǒng)的設(shè)計(jì)者從不同的角度研究文件的結(jié)構(gòu),根據(jù)視點(diǎn)的不同將文件的結(jié)構(gòu)分為邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。(1)邏輯結(jié)構(gòu)是指一個(gè)文件在用戶(hù)面前所呈現(xiàn)的形式,它主要為用戶(hù)提供一種邏輯結(jié)構(gòu)清晰、使用簡(jiǎn)便的邏輯文件,用戶(hù)將按這種形式去存取、檢索和加工文件。(2)文件的物理結(jié)構(gòu)是指文件在文件存儲(chǔ)介質(zhì)上的存儲(chǔ)形式,主要研究駐留在存儲(chǔ)介質(zhì)上的文件的存儲(chǔ)結(jié)構(gòu),選擇一些工作性能良好、設(shè)備利用率高的物理結(jié)構(gòu)。247.2.1邏輯結(jié)構(gòu)邏輯文件從結(jié)構(gòu)上分成二種形式:(1)無(wú)結(jié)構(gòu)的字符流式文件。這是一種無(wú)結(jié)構(gòu)文件,構(gòu)成文件的基本單位是字符,文件是有邏輯意義的、無(wú)結(jié)構(gòu)的一串字符的集合,其內(nèi)部不再劃分結(jié)構(gòu)。這可以理解為字符是該文件的基本信息單位,也可以將流式文件看成是記錄式文件的特例。這種文件的優(yōu)點(diǎn)是節(jié)省存儲(chǔ)空間。在這種文件中無(wú)須額外的輔助信息和控制信息。文件的所有意義必須由用戶(hù)層的程序來(lái)定義,這就給用戶(hù)提供了最大的靈活性。257.2.1邏輯結(jié)構(gòu)(2)有結(jié)構(gòu)的記錄式文件。有結(jié)構(gòu)的記錄式文件是一種結(jié)構(gòu)文件。由若干個(gè)記錄組成,用戶(hù)以記錄為單位來(lái)組織信息。每個(gè)記錄都用于描述實(shí)體集中的一個(gè)實(shí)體,各記錄著相同或不同數(shù)目的數(shù)據(jù)項(xiàng)。記錄長(zhǎng)度可以分為定長(zhǎng)和不定長(zhǎng)兩類(lèi)。

①定長(zhǎng)記錄。文件中所有記錄的長(zhǎng)度相同。

②變長(zhǎng)記錄。文件中所有記錄的長(zhǎng)度不同。267.2.1邏輯結(jié)構(gòu)相對(duì)字符流式文件而言,記錄式文件的使用不太方便,尤其是變長(zhǎng)記錄文件。在記錄式文件中還要有說(shuō)明記錄長(zhǎng)度的信息,這就會(huì)產(chǎn)生一些額外的存儲(chǔ)開(kāi)銷(xiāo)。對(duì)于字符流的無(wú)結(jié)構(gòu)文件來(lái)說(shuō),查找文件中的基本信息單位是比較困難的。但是,字符流的無(wú)結(jié)構(gòu)文件管理簡(jiǎn)單,用戶(hù)可以方便地對(duì)其進(jìn)行操作。對(duì)基本信息單位操作不多的文件較適于采用字符流的無(wú)結(jié)構(gòu)方式。除了字符流的無(wú)結(jié)構(gòu)方式外,記錄式的有結(jié)構(gòu)文件可把文件中的記錄按各種不同的方式排列,構(gòu)成不同的邏輯結(jié)構(gòu),以便用戶(hù)對(duì)文件中的記錄進(jìn)行修改、追加、查找和管理等操作。277.2.1邏輯結(jié)構(gòu)選取文件的邏輯結(jié)構(gòu)應(yīng)遵循下述原則:

當(dāng)用戶(hù)對(duì)文件信息進(jìn)行修改操作時(shí),給定的邏輯結(jié)構(gòu)應(yīng)能盡量減少對(duì)已存儲(chǔ)好的文件信息的變動(dòng)。應(yīng)能提高檢索速度,當(dāng)用戶(hù)需要對(duì)文件信息進(jìn)行操作時(shí),給定的邏輯結(jié)構(gòu)應(yīng)使文件系統(tǒng)在盡可能短的時(shí)間內(nèi)查找到需要查找的記錄或基本信息單位。要降低文件信息占據(jù)的存儲(chǔ)空間。要方便用戶(hù)操作。287.2.2物理結(jié)構(gòu)

文件的物理結(jié)構(gòu)又稱(chēng)存儲(chǔ)結(jié)構(gòu),是指文件在存儲(chǔ)器上的存儲(chǔ)組織形式,文件采用怎樣的物理結(jié)構(gòu)與存儲(chǔ)介質(zhì)的存儲(chǔ)特性有關(guān)。

用戶(hù)看到的是邏輯文件,處理的是邏輯記錄,按照邏輯文件形式去存儲(chǔ)、檢索和加工有關(guān)的文件信息,也就是說(shuō)數(shù)據(jù)的邏輯結(jié)構(gòu)和組織是面向應(yīng)用程序的。但這種邏輯上的文件總得以不同方式保存到物理存儲(chǔ)設(shè)備,所以,文件的物理結(jié)構(gòu)和組織是指邏輯文件在物理存儲(chǔ)空間中的存放方法和組織關(guān)系。297.2.2物理結(jié)構(gòu)

文件物理結(jié)構(gòu)一般分為三種:順序結(jié)構(gòu)鏈接結(jié)構(gòu)索引結(jié)構(gòu)307.2.2物理結(jié)構(gòu)

1.順序結(jié)構(gòu)

順序結(jié)構(gòu)又稱(chēng)連續(xù)結(jié)構(gòu),是一種最簡(jiǎn)單的物理文件結(jié)構(gòu)。如果一個(gè)邏輯文件的信息順序存放在文件存儲(chǔ)器上的相鄰物理塊,則稱(chēng)該文件為順序文件或連續(xù)文件,這樣的結(jié)構(gòu)稱(chēng)為順序結(jié)構(gòu)或連續(xù)結(jié)構(gòu)。圖7.2順序結(jié)構(gòu)317.2.2物理結(jié)構(gòu)

順序結(jié)構(gòu)優(yōu)缺點(diǎn):順序文件的最佳應(yīng)用場(chǎng)合是在對(duì)文件中的記錄進(jìn)行批量存取時(shí)(即每次要讀或?qū)懸淮笈涗?。所有邏輯文件中順序文件的存取效率是最高的。此外,對(duì)于順序存儲(chǔ)設(shè)備(如磁帶),也只有順序文件才能被存儲(chǔ)并能有效地工作。

在交互應(yīng)用場(chǎng)合,若用戶(hù)要求查找或修改單個(gè)記錄,這時(shí)順序文件表現(xiàn)出來(lái)的性能可能很差。其另一缺點(diǎn)是,若想要增加或修改一個(gè)記錄,都比較困難。解決的辦法是為順序文件配置一個(gè)運(yùn)行記錄文件,每隔一定時(shí)間就將運(yùn)行記錄文件與原來(lái)的主文件合并,產(chǎn)生一個(gè)按關(guān)鍵字排序的新文件。327.2.2物理結(jié)構(gòu)

2.鏈接結(jié)構(gòu)

鏈接結(jié)構(gòu)又稱(chēng)串聯(lián)結(jié)構(gòu),是一種物理上非連續(xù)的結(jié)構(gòu),它將邏輯上連續(xù)的文件信息存放在外存的不連續(xù)物理塊中。鏈接結(jié)構(gòu)不要求所分配的各物理塊是連續(xù)的,也不必按順序排列。為了使系統(tǒng)能方便地找到邏輯上連續(xù)的下一塊的物理位置,在每個(gè)物理塊中設(shè)置一個(gè)指針,指向該文件的下一個(gè)物理塊號(hào)。圖7.3鏈接結(jié)構(gòu)337.2.2物理結(jié)構(gòu)

鏈接結(jié)構(gòu)優(yōu)缺點(diǎn):

優(yōu)點(diǎn):文件可以方便的動(dòng)態(tài)增加或刪除,新建文件時(shí),不必預(yù)留出文件的最大長(zhǎng)度。由于可以不連續(xù)分配存儲(chǔ)空間,所以不會(huì)造成幾塊連續(xù)區(qū)域的浪費(fèi)。

缺點(diǎn):是只適合順序存取,不便于直接存??;其次,為了找到后面物理塊的信息,必須從文件頭開(kāi)始,逐一查找每個(gè)物理塊的鏈接字,以致降低了信息的查找速度;另外,由于在每個(gè)物理塊中部設(shè)置了鏈接字,破壞了物理信息的完整性。347.2.2物理結(jié)構(gòu)

3.索引結(jié)構(gòu)

索引結(jié)構(gòu)文件的組織方式是將一個(gè)文件的信息存放在若干個(gè)不連續(xù)的物理塊中,并為每個(gè)文件建立一個(gè)專(zhuān)用數(shù)據(jù)結(jié)構(gòu)——索引表,其中每一表目指出文件邏輯記錄所在的物理塊號(hào),并將這些物理塊號(hào)存放在索引表中。圖7.4索引結(jié)構(gòu)357.2.2物理結(jié)構(gòu)

索引結(jié)構(gòu)優(yōu)缺點(diǎn):

一個(gè)索引表事實(shí)上就是磁盤(pán)塊地址數(shù)組,其中第i個(gè)條目指向文件的第i個(gè)物理塊。

優(yōu)點(diǎn):它保持了串聯(lián)結(jié)構(gòu)訪(fǎng)問(wèn)快速的優(yōu)點(diǎn),又解決了串聯(lián)結(jié)構(gòu)要求空間連續(xù)的缺點(diǎn),主要表現(xiàn)為既能順序存取,又能隨機(jī)存取,滿(mǎn)足了文件動(dòng)態(tài)增長(zhǎng)、插入、刪除的要求,能充分地利用存儲(chǔ)空間,避免存儲(chǔ)設(shè)備資源的浪費(fèi)。

缺點(diǎn):在于索引表本身帶來(lái)了系統(tǒng)開(kāi)銷(xiāo),例如為了存儲(chǔ)索引表導(dǎo)致內(nèi)存儲(chǔ)空間開(kāi)銷(xiāo)增加。索引順序文件1.索引順序文件的特征

索引順序文件是對(duì)順序文件的一種改進(jìn),它基本上克服了變長(zhǎng)記錄的順序文件不能隨機(jī)訪(fǎng)問(wèn),以及不便于記錄的刪除和插入的缺點(diǎn)。但它仍保留了順序文件的關(guān)鍵特征,即記錄是按關(guān)鍵字的順序組織起來(lái)的。它又增加了兩個(gè)新特征:一個(gè)是引入了文件索引表,通過(guò)該表可以實(shí)現(xiàn)對(duì)索引順序文件的隨機(jī)訪(fǎng)問(wèn);另一個(gè)是增加了溢出(overflow)文件,用它來(lái)記錄新增加的、刪除的和修改的記錄。一級(jí)索引順序文件

最簡(jiǎn)單的索引順序文件只使用了一級(jí)索引。其具體的建立方法是,首先將變長(zhǎng)記錄順序文件中的所有記錄分為若干個(gè)組,如50個(gè)記錄為一個(gè)組。然后為順序文件建立一張索引表,并為每組中的第一個(gè)記錄在索引表中建立一個(gè)索引項(xiàng),其中含有該記錄的關(guān)鍵字和指向該記錄的指針。

檢索時(shí),首先利用用戶(hù)提供的關(guān)鍵字去檢索索引表,找到該記錄所在記錄組中第一個(gè)記錄的表項(xiàng),從中得到該記錄組第一個(gè)記錄在主文件中的位置;然后再利用順序查找法去查找主文件,從中找到所要求的記錄。一級(jí)索引順序文件圖7-5索引順序文件兩級(jí)索引順序文件對(duì)于一個(gè)非常大的文件,為找到一個(gè)記錄而須查找的記錄數(shù)目仍然很多,例如,對(duì)于一個(gè)含有106個(gè)記錄的順序文件,當(dāng)把它作為索引順序文件時(shí),為找到一個(gè)記錄,平均查找記錄非常大。為了進(jìn)一步提高檢索效率,可以為順序文件建立多級(jí)索引,即為索引文件再建立一張索引表,從而形成兩級(jí)索引表。407.2.4直接文件和哈希結(jié)構(gòu)

1.直接文件:采用前述幾種文件結(jié)構(gòu)對(duì)記錄進(jìn)行存取時(shí),都須利用給定的記錄鍵值,先對(duì)線(xiàn)性表或鏈表進(jìn)行檢索,以找到指定記錄的物理地址。然而對(duì)于直接文件,則可根據(jù)給定的關(guān)鍵字直接獲得指定記錄的物理地址。換而言之,關(guān)鍵字本身就決定了記錄的物理地址。

2.哈希(Hash)文件:利用Hash函數(shù)(或稱(chēng)散列函數(shù))將關(guān)鍵字轉(zhuǎn)換為相應(yīng)記錄的地址。但為了能實(shí)現(xiàn)文件存儲(chǔ)空間的動(dòng)態(tài)分配,通常由Hash函數(shù)所求得的并非是相應(yīng)記錄的地址,而是指向某一目錄表相應(yīng)表目的指針,該表目的內(nèi)容指向相應(yīng)記錄所在的物理塊。417.2.4文件存取方法

用戶(hù)通過(guò)對(duì)文件的存取操作實(shí)現(xiàn)對(duì)文件內(nèi)容的修改、添加和搜索等。常用的存取方法包括:順序存取法隨機(jī)存取法按鍵存取法427.2.3文件存取方法1.順序存取法是最簡(jiǎn)單的存取法,嚴(yán)格按照文件信息單位排列的順序依次存取文件。它是早期的文件存取方式,一個(gè)進(jìn)程只能從頭開(kāi)始順序讀取一個(gè)文件的所有字節(jié)和記錄。當(dāng)打開(kāi)文件時(shí),文件的存取指針指向第一個(gè)信息單位,如第一個(gè)字節(jié)或第一個(gè)記錄,每存取一個(gè)信息單位存取指針加1,指向下一個(gè)信息單位,以此類(lèi)推。順序存取法不便于對(duì)信息項(xiàng)的查找。順序存取是按照文件的邏輯地址順序存取,所以固定長(zhǎng)記錄的順序存取就非常簡(jiǎn)單。讀操作總是讀上一次讀出的文件的下一個(gè)記錄,同時(shí),文件記錄讀指針向前推進(jìn),以指向下一次要讀出的記錄位置。437.2.3文件存取方法1.順序存取法如果文件是可讀可寫(xiě)的,就設(shè)置一個(gè)文件記錄指針,它總指向下一次要寫(xiě)入記錄的存放位置,執(zhí)行寫(xiě)操作時(shí),將一個(gè)記錄寫(xiě)到文件末端。允許對(duì)這種文件進(jìn)行前跳或后退N個(gè)記錄的操作。若當(dāng)前指針為rptr,L為文件記錄的長(zhǎng)度,則前跳或后退N個(gè)記錄的指針計(jì)算公式為:

。對(duì)于可變長(zhǎng)記錄的順序文件,每個(gè)記錄的長(zhǎng)度信息存放于記錄前面一個(gè)單元中,它的存取操作分兩步進(jìn)行。讀出時(shí),根據(jù)指針值得到存放記錄長(zhǎng)度的單元。然后根據(jù)當(dāng)前記錄長(zhǎng)度再把當(dāng)前記錄一起寫(xiě)到指針指向的記錄位置,同時(shí),調(diào)整寫(xiě)指針值。447.2.3文件存取方法2.隨機(jī)存取法隨機(jī)存取法又稱(chēng)直接存取法,每次存取操作必須先確定存取的位置。隨機(jī)存取法允許用戶(hù)根據(jù)記錄的編號(hào)來(lái)存取文件的任一記錄。隨機(jī)存取方式對(duì)于許多應(yīng)用來(lái)說(shuō)是非常重要的,很多應(yīng)用場(chǎng)合要求以任意次序直接讀寫(xiě)某個(gè)記錄。為了實(shí)現(xiàn)直接存取,一個(gè)文件可以看作由順序編號(hào)的物理塊組成的,這些塊通常劃成等長(zhǎng)的物理塊。直接存取文件對(duì)讀或?qū)憠K的次序沒(méi)有限制。457.2.3文件存取方法3.按鍵存取法按鍵存取法是一種在復(fù)雜文件系統(tǒng),特別是數(shù)據(jù)庫(kù)管理系統(tǒng)中的存取方法。在按鍵存取法中,文件的存取是根據(jù)給定的鍵進(jìn)行的。通常記錄按鍵的某種順序存放,例如,按代表健的字母先后次序來(lái)排序。除可采用按鍵存取外,也可以采用順序存取或直接存取的方法。無(wú)論采用哪種存取方法,都要先搜索到操作對(duì)象的邏輯地址,再將邏輯地址映射到相應(yīng)的物理地址,然后對(duì)物理地址中存放的數(shù)據(jù)信息進(jìn)行操作。467.2.5常見(jiàn)的物理存儲(chǔ)設(shè)備

文件的物理結(jié)構(gòu)是指文件在外存上的存儲(chǔ)組織形式,它不僅與存儲(chǔ)介質(zhì)的存儲(chǔ)特性有關(guān),而且與所采用的外存分配方式有關(guān)。

常見(jiàn)的存儲(chǔ)設(shè)備有磁盤(pán)、光盤(pán)、磁帶、U盤(pán)等,其中磁盤(pán)又包括硬盤(pán)和軟盤(pán)。477.2.5常見(jiàn)的物理存儲(chǔ)設(shè)備1.磁帶磁帶可以永久保存大容量的數(shù)據(jù),是典型的順序存取設(shè)備。前面的物理塊被存取訪(fǎng)問(wèn)之后,才能存取后續(xù)物理塊的內(nèi)容,所以磁帶的存取速度較慢,主要用于后備存儲(chǔ)。磁帶設(shè)備的存取速度或傳輸速率與信息密度、磁帶帶速和塊間間隙三個(gè)因素有關(guān)。信息密度大、帶速高、所需塊間間隙小,則磁帶的存取速度或傳輸速率就快。487.2.5常見(jiàn)的物理存儲(chǔ)設(shè)備2.磁盤(pán)磁盤(pán)是典型的隨機(jī)存取設(shè)備,存取磁盤(pán)上任一物理塊的時(shí)間不依賴(lài)于該物理塊所處的位置。磁盤(pán)由多個(gè)盤(pán)片組成,文件信息記錄在各個(gè)盤(pán)片的磁道上,在盤(pán)片的兩面都有磁頭用于讀取磁道上的數(shù)據(jù),磁頭由一動(dòng)臂控制沿半徑方向移動(dòng)經(jīng)過(guò)各條磁道讀取各磁道上的信息。一次讀寫(xiě)操作的完成過(guò)程由三個(gè)動(dòng)作組成。尋道,磁頭移動(dòng)定位到指定磁道。旋轉(zhuǎn)延遲,等待指定扇區(qū)從磁頭下旋轉(zhuǎn)經(jīng)過(guò)。數(shù)據(jù)傳輸,數(shù)據(jù)在磁盤(pán)與內(nèi)存之間的實(shí)際傳輸。497.2.5常見(jiàn)的物理存儲(chǔ)設(shè)備3.光盤(pán)磁帶和磁盤(pán)采用的存儲(chǔ)介質(zhì)都是磁介質(zhì),而光盤(pán)采用的存儲(chǔ)介質(zhì)是光介質(zhì)。光盤(pán)容量大,屬于便攜式的外部存儲(chǔ)設(shè)備。光盤(pán)的存取速度快、價(jià)格便宜,光盤(pán)有只讀、一次寫(xiě)和可讀寫(xiě)光盤(pán)三種。光盤(pán)的空間結(jié)構(gòu)與磁盤(pán)是類(lèi)似的。507.2.5常見(jiàn)的物理存儲(chǔ)設(shè)備4.U盤(pán)U盤(pán),全稱(chēng)USB閃存盤(pán),是基于USB接口、以閃存芯片為存儲(chǔ)介質(zhì)的無(wú)需驅(qū)動(dòng)器的新一代存儲(chǔ)設(shè)備。U盤(pán)體積小,適合隨身攜帶,可以隨時(shí)隨地、輕松交換資料數(shù)據(jù),是理想的移動(dòng)辦公及數(shù)據(jù)存儲(chǔ)交換產(chǎn)品。517.2.5常見(jiàn)的物理存儲(chǔ)設(shè)備U盤(pán)的工作原理:USB端口負(fù)責(zé)連接電腦,是數(shù)據(jù)輸入或輸出的通道;主控芯片負(fù)責(zé)各部件的協(xié)調(diào)管理和下達(dá)各項(xiàng)操作指令,并使計(jì)算機(jī)將U盤(pán)識(shí)別為“可移動(dòng)磁盤(pán)”,是U盤(pán)的“大腦”;FLASH芯片是保存數(shù)據(jù)的實(shí)體,其特點(diǎn)是斷電后數(shù)據(jù)不會(huì)丟失,能長(zhǎng)期保存;PCB底板是負(fù)責(zé)提供相應(yīng)處理數(shù)據(jù)平臺(tái),且將各部件連接在一起。當(dāng)U盤(pán)被操作系統(tǒng)識(shí)別后,USB移動(dòng)存儲(chǔ)盤(pán)的數(shù)據(jù)傳輸工作包含上述幾個(gè)處理過(guò)程。527.3文件目錄對(duì)文件實(shí)施有效的管理主要是通過(guò)文件目錄實(shí)現(xiàn)的。文件目錄管理的主要目標(biāo)是:實(shí)現(xiàn)“按名存取”,即用戶(hù)只須向系統(tǒng)提供所需訪(fǎng)問(wèn)文件的名字,便能快速準(zhǔn)確地找到指定文件在存儲(chǔ)設(shè)備上的存儲(chǔ)位置。提高對(duì)目錄的檢索速度。實(shí)現(xiàn)文件共享。在多用戶(hù)系統(tǒng)中,應(yīng)允許多個(gè)用戶(hù)共享一個(gè)文件。允許文件重名。系統(tǒng)應(yīng)允許不同用戶(hù)對(duì)不同文件采用相同的名字,以便于用戶(hù)按照自己的習(xí)慣命名文件和使用文件。537.3.1文件目錄內(nèi)容

1.文件控制塊FCB(FileControlBlock):FCB是為文件設(shè)置的用于描述和控制文件的數(shù)據(jù)結(jié)構(gòu)。文件與FCB一一對(duì)應(yīng),而把FCB的有序集合稱(chēng)為文件目錄。一個(gè)FCB就是一個(gè)文件目錄項(xiàng)。FCB包含如下三類(lèi)信息:

1)基本信息類(lèi):包括文件名、文件物理位置(其中包括存放文件的設(shè)備名、文件在外存上的盤(pán)塊號(hào)、文件長(zhǎng)度)、文件邏輯結(jié)構(gòu)、文件物理結(jié)構(gòu)。

2)存取控制信息類(lèi):包括文件主的存取權(quán)限、核準(zhǔn)用戶(hù)的存取權(quán)限、一般用戶(hù)的存取權(quán)限。

3)使用信息類(lèi):包括文件的建立日期和時(shí)間、文件上一次修改的日期和時(shí)間、當(dāng)前使用信息。547.3.1文件目錄內(nèi)容

2.索引節(jié)點(diǎn)

1)索引節(jié)點(diǎn)的引入

在檢索目錄文件的過(guò)程中,只需用到文件名,不需文件的描述信息,有些系統(tǒng)如UNIX,就把文件名和文件描述信息分開(kāi)。把文件描述信息單獨(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)成。這樣為找到一個(gè)文件,可大大節(jié)省系統(tǒng)開(kāi)銷(xiāo)。557.3.1文件目錄內(nèi)容2)索引節(jié)點(diǎn)的內(nèi)容

索引節(jié)點(diǎn)是一個(gè)結(jié)構(gòu),它包含了一個(gè)文件的長(zhǎng)度、創(chuàng)建及修改時(shí)間、權(quán)限、所屬關(guān)系、磁盤(pán)中的位置等信息。一個(gè)文件系統(tǒng)維護(hù)了一個(gè)索引節(jié)點(diǎn)的數(shù)組,每個(gè)文件或目錄都與索引節(jié)點(diǎn)數(shù)組中的唯一一個(gè)元素相對(duì)應(yīng)。系統(tǒng)給每個(gè)索引節(jié)點(diǎn)分配了一個(gè)號(hào)碼,也就是該節(jié)點(diǎn)在數(shù)組中的索引號(hào),稱(chēng)為索引節(jié)點(diǎn)號(hào)。567.3.1文件目錄內(nèi)容2)索引節(jié)點(diǎn)的內(nèi)容

磁盤(pán)索引節(jié)點(diǎn)是存放在磁盤(pán)上的索引節(jié)點(diǎn)。每個(gè)文件有唯一的一個(gè)磁盤(pán)索引節(jié)點(diǎn),主要包括:⑴文件主標(biāo)識(shí)符;⑵文件類(lèi)型;⑶文件存取權(quán)限;⑷文件物理地址;⑸文件長(zhǎng)度;⑹文件連接計(jì)數(shù);⑺文件存取時(shí)間。

內(nèi)存索引節(jié)點(diǎn)指存放在內(nèi)存的索引節(jié)點(diǎn)。文件被打開(kāi)時(shí),要將磁盤(pán)索引節(jié)點(diǎn)拷貝到內(nèi)存的索引節(jié)點(diǎn)中,以便于以后使用。其包括的內(nèi)容有:⑴索引節(jié)點(diǎn)編號(hào);⑵狀態(tài);⑶訪(fǎng)問(wèn)計(jì)數(shù);⑷文件所在設(shè)備的邏輯設(shè)備號(hào);⑸鏈接指針。577.3.2目錄結(jié)構(gòu)

文件的目錄結(jié)構(gòu)的組織,關(guān)系到文件系統(tǒng)的存取速度,也關(guān)系到文件的共享性和安全性。

常用的目錄結(jié)構(gòu)形式有單級(jí)目錄、兩級(jí)目錄、多級(jí)目錄和無(wú)環(huán)圖目錄。1.單級(jí)目錄結(jié)構(gòu)這是最簡(jiǎn)單的目錄結(jié)構(gòu)。在整個(gè)系統(tǒng)中只建立一張目錄表,為每個(gè)文件分配一個(gè)目錄項(xiàng)。

目錄項(xiàng)中含文件名、文件擴(kuò)展名、文件長(zhǎng)度、文件類(lèi)型、文件物理地址以及其它文件屬性。587.3.2目錄結(jié)構(gòu)

單級(jí)目錄結(jié)構(gòu)的優(yōu)點(diǎn)是簡(jiǎn)單,缺點(diǎn)則有:查找速度慢、不允許重名、不便于實(shí)現(xiàn)文件共享。只適用于單用戶(hù)環(huán)境。文件名物理地址文件說(shuō)明狀態(tài)位AlphaReportText2.兩級(jí)文件目錄

兩級(jí)目錄結(jié)構(gòu)如圖:用戶(hù)名子目錄指針WangZhangGaoAlphaTestReportTestBetaDeviMisxWang用戶(hù)目錄AlphaTestReportTestBeta優(yōu)點(diǎn)是提高了檢索目錄的速度、在不同的用戶(hù)目錄中可以使用相同的文件名、不同用戶(hù)可使用不同的文件名來(lái)訪(fǎng)問(wèn)系統(tǒng)中的同一個(gè)共享文件。缺點(diǎn)是當(dāng)多個(gè)用戶(hù)之間要相互合作去完成同一個(gè)大任務(wù),且一用戶(hù)又要去訪(fǎng)訪(fǎng)問(wèn)其他用戶(hù)文件時(shí),用戶(hù)目錄之間的隔離使諸用戶(hù)之間不便于共享文件。GaoUFD主文件目錄MFD602.兩級(jí)文件目錄

圖7.7兩級(jí)目錄結(jié)構(gòu)3.多級(jí)目錄結(jié)構(gòu)1)樹(shù)形目錄

通常把三級(jí)及以上的文件目錄結(jié)構(gòu)稱(chēng)為樹(shù)型結(jié)構(gòu)的目錄。它具有檢索效率高、允許重名、便于實(shí)現(xiàn)文件共享等一系列優(yōu)點(diǎn)。

主目錄在樹(shù)型目錄結(jié)構(gòu)中,作為樹(shù)的根節(jié)點(diǎn),稱(chēng)為根目錄。數(shù)據(jù)文件作為樹(shù)葉,其他所有目錄均作為樹(shù)的節(jié)點(diǎn)。樹(shù)形目錄結(jié)構(gòu):ABCABDFEDGAJNKJMKAHFAC123456789101311121415161718192021

為提高文件系統(tǒng)的靈活性,應(yīng)允許把一個(gè)目錄文件中的目錄項(xiàng),既能作為目錄文件的FCB又能作為數(shù)據(jù)文件的FCB,具體是哪一種FCB,可用目錄項(xiàng)中的一位來(lái)表示。例如,在用戶(hù)A的總目錄中,目錄A是目錄文件的FCB,而目錄B和D,則是數(shù)據(jù)文件的FCB。3.多級(jí)目錄結(jié)構(gòu)2)路徑名

在樹(shù)形結(jié)構(gòu)目錄中,從根目錄到任何數(shù)據(jù)文件都只有一條唯一的通路。在該路徑上,從樹(shù)的根(即主目錄)開(kāi)始,把全部目錄文件名與數(shù)據(jù)文件名依次地用“/”連接起來(lái),即構(gòu)成該數(shù)據(jù)文件唯一的路徑名。

3)當(dāng)前目錄

又稱(chēng)為工作目錄,是樹(shù)型目錄結(jié)構(gòu)中的某個(gè)結(jié)點(diǎn)。進(jìn)程對(duì)各文件的訪(fǎng)問(wèn)都是相對(duì)于當(dāng)前目錄進(jìn)行的。此時(shí)對(duì)各文件所使用的路徑名,只需從當(dāng)前目錄開(kāi)始,再逐級(jí)通過(guò)中間的目錄文件,最后達(dá)到所要訪(fǎng)問(wèn)的數(shù)據(jù)文件。將這一路徑上的全部目錄文件名與數(shù)據(jù)文件名用“/”連接而成的路徑名稱(chēng)為相對(duì)路徑名。相應(yīng)地,從樹(shù)根開(kāi)始的路徑名稱(chēng)為絕對(duì)路徑名。643.多級(jí)目錄結(jié)構(gòu)4)增加和刪除目錄

在樹(shù)型目錄中,對(duì)于一個(gè)已不再需要的目錄,應(yīng)如何刪除其目錄項(xiàng),須視情況而定。不刪除非空目錄。當(dāng)目錄不空時(shí),不能將其刪除,而為了刪除一個(gè)非空目錄,必須先刪除目錄中的所有文件,使之先成為空目錄,然后再予以刪除。如果目錄中還包含有子目錄,還必須采取遞歸調(diào)用方式來(lái)將其刪除??蓜h除非空目錄。當(dāng)要?jiǎng)h除一個(gè)目錄時(shí),如果在該目錄中還包含有文件,則目錄中的所有文件和子目錄也同時(shí)被刪除。此操作較危險(xiǎn)。654.無(wú)環(huán)圖目錄結(jié)構(gòu)樹(shù)形目錄結(jié)構(gòu)可便于實(shí)現(xiàn)文件分類(lèi),但不利于實(shí)現(xiàn)文件共享,為此在樹(shù)形目錄結(jié)構(gòu)的基礎(chǔ)上增加了一些指向同一結(jié)點(diǎn)的有向邊,使整個(gè)目錄成為一個(gè)有向無(wú)環(huán)圖。引入無(wú)環(huán)圖目錄結(jié)構(gòu)是為了更好的實(shí)現(xiàn)文件共享。圖7.9無(wú)環(huán)圖目錄結(jié)構(gòu)664.無(wú)環(huán)圖目錄結(jié)構(gòu)當(dāng)某用戶(hù)要求刪除一個(gè)共享結(jié)點(diǎn)時(shí),若系統(tǒng)只是簡(jiǎn)單地將它刪除,則當(dāng)另一共享用戶(hù)需要訪(fǎng)問(wèn)時(shí),就無(wú)法找到這個(gè)文件,導(dǎo)致系統(tǒng)發(fā)生錯(cuò)誤。為每個(gè)共享結(jié)點(diǎn)設(shè)置一個(gè)共享計(jì)數(shù)器,每當(dāng)圖中增加對(duì)該結(jié)點(diǎn)的共享鏈時(shí),計(jì)數(shù)器加1;每當(dāng)某用戶(hù)提出刪除該結(jié)點(diǎn)時(shí),計(jì)數(shù)器減1。僅當(dāng)共享計(jì)數(shù)器為0時(shí),才真正刪除該結(jié)點(diǎn),否則僅刪除請(qǐng)求用戶(hù)的共享鏈。共享文件不同于文件拷貝。如果有兩個(gè)文件拷貝,每個(gè)程序員看到的是拷貝而不是原件;但如果一個(gè)文件被修改,那么另一個(gè)程序員的拷貝不會(huì)有改變。對(duì)于共享文件,只存在一個(gè)真正文件,任何改變都會(huì)為其他用戶(hù)所見(jiàn)。無(wú)環(huán)圖目錄結(jié)構(gòu)方便實(shí)現(xiàn)了文件的共享,但使得系統(tǒng)的管理變得更加復(fù)雜。677.3.3目錄查詢(xún)當(dāng)用戶(hù)要訪(fǎng)問(wèn)一個(gè)已存在文件時(shí):首先,系統(tǒng)利用用戶(hù)提供的文件名對(duì)目錄進(jìn)行查詢(xún),找出該文件的文件控制塊及對(duì)應(yīng)索引結(jié)點(diǎn);其次,根據(jù)文件控制塊或索引結(jié)點(diǎn)中所記錄的文件物理地址,通過(guò)磁盤(pán)驅(qū)動(dòng)程序,將所需文件讀入內(nèi)存。目前對(duì)目錄進(jìn)行查詢(xún)的方式有兩種

線(xiàn)性檢索法

Hash方法

1.線(xiàn)性檢索法線(xiàn)性檢索法又稱(chēng)為順序檢索法。在單級(jí)目錄中,利用用戶(hù)提供的文件名,用順序查找法直接從文件目錄中找到指名文件的目錄項(xiàng)。在樹(shù)形目錄中,用戶(hù)提供的文件名是由多個(gè)文件分量名組成的路徑名,此時(shí)需對(duì)多級(jí)目錄進(jìn)行查找。

假定用戶(hù)給定的文件路徑名是?/usr/ast/mbox,則查找?/usr/ast/mbox文件的過(guò)程如圖所示。1·1‥4Bin7Dev14Lib9Etc6Usr8tmp根目錄132索引結(jié)點(diǎn)6是/usr的目錄6·1‥19Disk30Erik51Jim26Ast45bal132#塊是/usr的目錄

496索引結(jié)點(diǎn)26是/usr/ast目錄26·6‥64Grant92Books60Mbox81Minix17Src496#塊是/usr/ast目錄線(xiàn)性檢索法的例子:查找/usr/ast/mbox的步驟1.線(xiàn)性檢索法線(xiàn)性檢索法的例子:查找/usr/ast/mbox的步驟1.線(xiàn)性檢索法2.Hash方法

在之前介紹了Hash文件。如果我們建立了一張Hash索引文件目錄,便可利用Hash方法進(jìn)行查詢(xún),即系統(tǒng)利用用戶(hù)提供的文件名,并將它變換為文件目錄的索引值,再利用該索引值到目錄中去查找,這樣將顯著地提高檢索速度。722.Hash方法在進(jìn)行文件名的轉(zhuǎn)換時(shí),有可能把n個(gè)不同的文件名轉(zhuǎn)換為相同的Hash值,即出現(xiàn)所謂的“沖突”,處理的規(guī)則:在利用Hash法索引查找目錄時(shí),如果目錄表中相應(yīng)的目錄項(xiàng)是空的,則表示系統(tǒng)中并無(wú)指定文件;如果目錄項(xiàng)中的文件名與指定文件名相匹配,則表示該目錄項(xiàng)正是所要尋找的文件所對(duì)應(yīng)的目錄項(xiàng),故而可從中找到該文件所在的物理地址;如果在目錄表的相應(yīng)目錄項(xiàng)中的文件名與指定文件名并不匹配,則表示發(fā)生了“沖突”,此時(shí)須將其Hash值再加上一個(gè)特定常數(shù),形成新的索引值,再返回到第一步重新開(kāi)始查找。737.4文件共享和安全

文件共享是指多個(gè)用戶(hù)可以共同使用某一個(gè)或多個(gè)文件。文件共享不僅是多個(gè)用戶(hù)共同完成某一任務(wù)所必需的,而且能節(jié)省大量存儲(chǔ)空間,同時(shí)也為用戶(hù)使用文件提供了極大的方便。因此,文件共享是衡量文件系統(tǒng)性能好壞的重要標(biāo)準(zhǔn)之一。

由于文件實(shí)現(xiàn)了共享,文件的安全性就遭到了威脅,因此必須對(duì)文件進(jìn)行保護(hù)。文件保護(hù)是指文件不得被未經(jīng)授權(quán)的任何用戶(hù)存取,對(duì)于授權(quán)用戶(hù)也只能在其允許的存取權(quán)限范圍內(nèi)使用文件。747.4.1文件共享1.利用符號(hào)鏈實(shí)現(xiàn)文件共享2.基于索引節(jié)點(diǎn)的共享方法1.利用符號(hào)鏈接實(shí)現(xiàn)文件共享1)利用符號(hào)鏈接的基本思想

利用符號(hào)鏈接實(shí)現(xiàn)文件共享的基本思想,是允許一個(gè)文件或子目錄有多個(gè)父目錄,但其中僅有一個(gè)作為主(屬主)父目錄,其它的幾個(gè)父目錄都是通過(guò)符號(hào)鏈接方式與之相鏈接的(簡(jiǎn)稱(chēng)鏈接父目錄)。使用符號(hào)鏈接的目錄層次1.利用符號(hào)鏈接實(shí)現(xiàn)文件共享2)如何利用符號(hào)鏈實(shí)現(xiàn)共享

為使鏈接父目錄D5能共享文件F,可以由系統(tǒng)創(chuàng)建一個(gè)LINK類(lèi)型的新文件,也取名為F,并將F寫(xiě)入鏈接父目錄D5中,以實(shí)現(xiàn)D5與文件F8的鏈接。在新文件F中只包含被鏈接文件F8的路徑名。這樣的鏈接方法被稱(chēng)為符號(hào)鏈接。新文件F中的路徑名則只被看做是符號(hào)鏈。當(dāng)用戶(hù)通過(guò)D5訪(fǎng)問(wèn)被鏈接的文件F8,且正要讀LINK類(lèi)新文件時(shí),此要求將被OS截獲,OS根據(jù)新文件中的路徑名去找到文件F8,然后對(duì)它進(jìn)行讀(寫(xiě)),這樣就實(shí)現(xiàn)了用戶(hù)B對(duì)文件F的共享。1.利用符號(hào)鏈接實(shí)現(xiàn)文件共享3)利用符號(hào)鏈實(shí)現(xiàn)共享的優(yōu)點(diǎn)

在利用符號(hào)鏈方式實(shí)現(xiàn)文件共享時(shí),只是文件主才擁有指向其索引節(jié)點(diǎn)的指針;而共享該文件的其他用戶(hù)則只有該文件的路徑名,并不擁有指向其索引節(jié)點(diǎn)的指針。這樣,也就不會(huì)發(fā)生在文件主刪除一共享文件后留下一懸空指針的情況。4)利用符號(hào)鏈的共享方式存在的問(wèn)題

利用符號(hào)鏈的共享方式也存在著一些問(wèn)題:每次訪(fǎng)問(wèn)文件的開(kāi)銷(xiāo)大,增加了磁盤(pán)啟動(dòng)的頻率,LINK類(lèi)型文件要消費(fèi)一定的磁盤(pán)空間。一個(gè)很大的優(yōu)點(diǎn)是能夠用于鏈接世界上任何地方的機(jī)器中的文件。1.利用符號(hào)鏈接實(shí)現(xiàn)文件共享2.基于索引節(jié)點(diǎn)的共享方式為了解決這個(gè)問(wèn)題,可以引用索引節(jié)點(diǎn),即諸如文件的物理地址及其它的文件屬性等信息,不再是放在目錄項(xiàng)中,而是放在索引節(jié)點(diǎn)中。在文件目錄中只設(shè)置文件名及指向相應(yīng)索引節(jié)點(diǎn)的指針,如圖7-11所示。此時(shí)由任何用戶(hù)對(duì)文件進(jìn)行Append操作或修改,所引起的相應(yīng)索引節(jié)點(diǎn)內(nèi)容的改變,如新增盤(pán)塊號(hào)等,都是其他用戶(hù)可見(jiàn)的,從而也就能提供給其他用戶(hù)共享。在索引節(jié)點(diǎn)中應(yīng)有一個(gè)鏈接計(jì)數(shù),表示鏈接到本索引節(jié)點(diǎn)上的用戶(hù)目錄項(xiàng)的數(shù)目。圖7.11基于索引節(jié)點(diǎn)的共享方式2.基于索引節(jié)點(diǎn)的共享方式進(jìn)程B鏈接前后的情況2.基于索引節(jié)點(diǎn)的共享方式在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,存放了越來(lái)越多的寶貴信息供用戶(hù)使用,給人們帶來(lái)了極大的好處和方便,但同時(shí)也有著潛在的不安全性。影響文件安全性的主要因素有:

(1)

溫馨提示

  • 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)論