第七章 文件管理

一、概述

文件的邏輯結(jié)構(gòu) ( 順序文件,索引文件,索引順序文件,直接文件和哈希文件 )

外存分配方式

文件目錄管理

文件存儲(chǔ)空間管理

文件系統(tǒng)的可靠性和安全性

文件系統(tǒng)的數(shù)據(jù)一致性控制

文件管理,由于系統(tǒng)的內(nèi)存有限并且不能長(zhǎng)期保存,故平時(shí)總是把它們以文件的形式存放在外存中,需要時(shí)再將它們調(diào)入內(nèi)存。如何高效的對(duì)文件進(jìn)行管理是操作系統(tǒng)實(shí)現(xiàn)的目標(biāo)。

二、文件和文件系統(tǒng)

2.1

  現(xiàn)代OS幾乎都是通過(guò)文件系統(tǒng)來(lái)組織和管理在計(jì)算機(jī)中所存儲(chǔ)的大量程序和數(shù)據(jù)的。文件系統(tǒng)的管理功能是通過(guò)把它所管理的程序和數(shù)據(jù)組織成一系列文件的方法來(lái)實(shí)現(xiàn)的。而文件則是指具有文件名的若干相關(guān)元素的集合。元素通常是記錄,而記錄是一組有意義的數(shù)據(jù)項(xiàng)的集合。可以把數(shù)據(jù)組成分為數(shù)據(jù)項(xiàng)、記錄、文件。

  ①數(shù)據(jù)項(xiàng),數(shù)據(jù)項(xiàng)是最低級(jí)數(shù)據(jù)組織形式。分為基本數(shù)據(jù)項(xiàng)(用于描述一個(gè)對(duì)象某種屬性的字符集,是數(shù)據(jù)組織中可以明明的最小邏輯數(shù)據(jù)單位,即原子數(shù)據(jù),又稱為數(shù)據(jù)元素或字段)和組合數(shù)據(jù)項(xiàng)(由若干個(gè)基本數(shù)據(jù)項(xiàng)組成)

  ② 記錄,是一組相關(guān)數(shù)據(jù)項(xiàng)的集合,用于描述一個(gè)對(duì)象在某方面的屬性,為了能夠唯一標(biāo)識(shí)一個(gè)記錄,需要在一個(gè)記錄的各個(gè)數(shù)據(jù)項(xiàng)中確定一個(gè)或幾個(gè)數(shù)據(jù)項(xiàng),把他們的集合稱為關(guān)鍵字,關(guān)鍵字是能夠唯一標(biāo)識(shí)一個(gè)記錄的數(shù)據(jù)項(xiàng)。

  ③ 文件,文件是具有文件名的一組相關(guān)元素的集合,分為有結(jié)構(gòu)文件(又稱記錄式文件:文件由一組相似記錄組成 。如報(bào)考某學(xué)校的所有考生的報(bào)考信息記錄)和無(wú)結(jié)構(gòu)文件(又稱流式文件:被看成是一個(gè)字符流。比如一個(gè)二進(jìn)制文件或字符文件)。有結(jié)構(gòu)文件由若干個(gè)相關(guān)記錄組成,無(wú)結(jié)構(gòu)文件則被看成一個(gè)字符流。文件是文件系統(tǒng)的最大數(shù)據(jù)單位。文件應(yīng)該具有自己的屬性,包括文件類型(如源文件、目標(biāo)文件、可執(zhí)行文件等),文件長(zhǎng)度(文件的當(dāng)前長(zhǎng)度,也可能是最大允許長(zhǎng)度),文件的物理位置(指示文件在哪一個(gè)設(shè)備上及在該設(shè)備的哪個(gè)位置的指針),文件的建立時(shí)間(文件最后一次修改時(shí)間)。

   一個(gè)文件可對(duì)應(yīng)若干個(gè)記錄,一個(gè)記錄可對(duì)應(yīng)若干個(gè)數(shù)據(jù)項(xiàng)。

  文件系統(tǒng)管理的對(duì)象有:文件(作為文件管理的直接對(duì)象),目錄(為了方便用戶對(duì)文件的存取和檢索,在文件系統(tǒng)中配置目錄,每個(gè)目錄項(xiàng)中,必須含有文件名及該文件所在的物理地址,對(duì)目錄的組織和管理是方便和提高對(duì)文件存取速度的關(guān)鍵),磁盤(文件和目錄必定占用存儲(chǔ)空間,對(duì)這部分空間的有效管理,不僅能提高外存的利用率,而且能提高對(duì)文件的存取速度)。

2.2 文件的屬性、基本操作以及文件的打開(kāi)和關(guān)閉

2.2.1 文件的屬性

①名稱:文件名稱唯一,以容易讀取的形式保存。

②標(biāo)識(shí)符:標(biāo)識(shí)文件系統(tǒng)內(nèi)文件的唯一標(biāo)簽,通常為數(shù)字,它是對(duì)人不可讀的一種內(nèi)部名稱。

③類型:被支持不同類型的文件系統(tǒng)所使用。

④位置:指向設(shè)備和設(shè)備上文件的指針。

⑤大小:文件當(dāng)前大小(用字節(jié)、字或塊表示),也可包含文件允許的最大值。

⑥保護(hù):對(duì)文件進(jìn)行保護(hù)的訪問(wèn)控制信息。

⑦時(shí)間、日期和用戶標(biāo)識(shí):文件創(chuàng)建、上次修改和上次訪問(wèn)的相關(guān)信息,用于保護(hù)、 安全和跟蹤文件的使用。

2.2.2 文件的基本橾作

  ① 創(chuàng)建文件,在創(chuàng)建一個(gè)新文件時(shí),系統(tǒng)首先要為新文件分配必要的外存空間,并在文件系統(tǒng)的目錄中,為之建立一個(gè)目錄項(xiàng),目錄項(xiàng)中應(yīng)該記錄新文件的文件名及其在外存的地址等屬性。

  ② 刪除文件,當(dāng)已不再需要某文件時(shí),可將其從文件系統(tǒng)中刪除,在刪除時(shí),系統(tǒng)應(yīng)先從目錄中找到要?jiǎng)h除文件的目錄項(xiàng),使之成為空項(xiàng),然后回收該文件所占用的存儲(chǔ)空間。

  ③ 讀文件,讀文件時(shí),須在相應(yīng)系統(tǒng)調(diào)用中給出文件名和應(yīng)讀入的內(nèi)存目標(biāo)地址。此時(shí),系統(tǒng)要查找目錄,找到指定目錄項(xiàng),從中得到被讀文件在外存中的位置。在目錄項(xiàng)中,還有一個(gè)指針用于對(duì)文件進(jìn)行讀/寫(xiě)。

  ④ 寫(xiě)文件,寫(xiě)文件時(shí),須在相應(yīng)系統(tǒng)調(diào)用中給出文件名和其在內(nèi)存源地址。此時(shí),系統(tǒng)要查找目錄,找到指定目錄項(xiàng),從再利用目錄中的寫(xiě)指針進(jìn)行寫(xiě)操作。

  ⑤ 截?cái)辔募绻粋€(gè)文件的內(nèi)容已經(jīng)陳舊而需要全部更新時(shí),一種方法是將此文件刪除,再重新創(chuàng)建一個(gè)新文件,但如果文件名和屬性均無(wú)改變,則可采取截?cái)辔募姆椒ǎ鋵⒃械奈募L(zhǎng)度設(shè)置為0,放棄原有文件的內(nèi)容。

  ⑥ 設(shè)置文件的讀/寫(xiě)位置,用于設(shè)置文件讀/寫(xiě)指針的位置,以便每次讀/寫(xiě)文件時(shí),不需要從始端開(kāi)始而是從所設(shè)置的位置開(kāi)始操作。可以改順序存取為隨機(jī)存取。

2.2.3 文件的打開(kāi)和關(guān)閉

來(lái)源:當(dāng)前OS所提供的大多數(shù)對(duì)文件的操作,其過(guò)程大致都是這樣兩步:首先,檢索文件目錄來(lái)找到指定文件的屬性及其在外存上的位置;然后,對(duì)文件實(shí)施相應(yīng)的操作,如讀/寫(xiě)文件等,當(dāng)用戶要求對(duì)一個(gè)文件實(shí)施多次讀/寫(xiě)或其他操作時(shí),每次都要從檢索目錄開(kāi)始,為了避免多次重復(fù)地檢索目錄,在大多數(shù)OS中都引入了打開(kāi)這一文件系統(tǒng)調(diào)用,當(dāng)用戶第一次請(qǐng)求對(duì)某文件系統(tǒng)進(jìn)行操作時(shí),先利用open系統(tǒng)調(diào)用將該文件打開(kāi)。

打開(kāi)是指系統(tǒng)將指名文件的屬性(包括該文件在外存上的物理位置)從外存拷貝到內(nèi)存打開(kāi)文件表的一個(gè)表目中,并將該表目的編號(hào)(索引號(hào))返回給用戶,以后,當(dāng)用戶再要求對(duì)該文件進(jìn)行操作時(shí),便可利用系統(tǒng)所返回的索引號(hào)向系統(tǒng)提出操作請(qǐng)求,系統(tǒng)便可直接利用該索引號(hào)到打開(kāi)文件表中去查找,從而避免了對(duì)該文件的再次檢索,如果用戶不再需要對(duì)該文件實(shí)施操作,可利用關(guān)閉系統(tǒng)調(diào)用來(lái)關(guān)閉此文件,OS將會(huì)把該文件從打開(kāi)文件表中的表目上刪除掉。

三、文件的邏輯結(jié)構(gòu)

文件的邏輯結(jié)構(gòu):從用戶角度看文件的組織形式

文件的物理結(jié)構(gòu):文件在外存上的存儲(chǔ)組織形式

3.1 文件的邏輯結(jié)構(gòu)類型

無(wú)結(jié)構(gòu)文件(流式文件)

1

無(wú)結(jié)構(gòu)文件是最簡(jiǎn)單的文件組織形式。無(wú)結(jié)構(gòu)文件將數(shù)據(jù)按順序組織成記錄并積累保存,它是有序相關(guān)信息項(xiàng)的集合,以字節(jié)(Byte)為單位。由于無(wú)結(jié)構(gòu)文件沒(méi)有結(jié)構(gòu),因而對(duì)記錄的訪問(wèn)只能通過(guò)窮舉搜索的方式,故這種文件形式對(duì)大多數(shù)應(yīng)用不適用。但字符流的無(wú)結(jié)構(gòu)文件管理簡(jiǎn)單,用戶可以方便地對(duì)其進(jìn)行操作。所以,那些對(duì)基本信息單位操作不多的文件較適于釆用字符流的無(wú)結(jié)構(gòu)方式,如源程序、可執(zhí)行文件、庫(kù)函數(shù)等。

有結(jié)構(gòu)文件(記錄式文件)

1

按記錄的組織形式可以分為:

3.1.1 順序文件

文件是記錄的集合,文件中的記錄可以是任意順序的,因此,它可以按照各種不同的順序進(jìn)行排列,一般地,可歸納為以下兩種情況。

  ① 串結(jié)構(gòu),個(gè)記錄之間的順序與關(guān)鍵字無(wú)關(guān),通常按照時(shí)間先后排序,最先存入的記錄作為第一個(gè)記錄,其次,為第二個(gè)記錄,以此類推。

  ② 順序結(jié)構(gòu),文件中所有記錄按照關(guān)鍵字排列,可以按照關(guān)鍵詞長(zhǎng)度從大到小排列。順序結(jié)構(gòu)的檢索效率更高。

  順序文件的最佳應(yīng)用場(chǎng)合是在對(duì)諸記錄進(jìn)行批量存取時(shí),即每次要讀或?qū)懸淮笈涗洉r(shí),此時(shí),對(duì)順序文件的存取效率是所有邏輯文件中最高的,此外,只有順序文件才能存儲(chǔ)在磁帶上,并能有效工作。但是想要增加或刪除一個(gè)文件比較困難。

提問(wèn):為什么增加或刪除一個(gè)文件比較困難?

答:類似于數(shù)組的缺點(diǎn)。

3.1.2 索引文件

  對(duì)于定長(zhǎng)記錄文件,可以方便的實(shí)現(xiàn)順序存取和直接存取,然而,對(duì)于變長(zhǎng)記錄就很難實(shí)現(xiàn)。為了解決變長(zhǎng)記錄檢索問(wèn)題,可為變長(zhǎng)記錄文件建立一張索引表,對(duì)主文件中的每個(gè)記錄,在索引表中設(shè)有一個(gè)相應(yīng)的表項(xiàng),用于記錄該記錄的長(zhǎng)度 L 及指向該記錄的指針(指向該記錄在邏輯地址空間的首址),由于索引表按記錄鍵排序的,因此,索引表本身就是一個(gè)定長(zhǎng)記錄的順序文件。從而可以方便實(shí)現(xiàn)直接存取。

索引表與文件一一對(duì)應(yīng)

1

  由于是按照關(guān)鍵字進(jìn)行建立的索引,所以在對(duì)索引文件進(jìn)行檢索時(shí),首先根據(jù)用戶(程序)提供的關(guān)鍵字,并利用折半查找檢索索引表,從中找到相應(yīng)的表項(xiàng),再利用該表項(xiàng)給出的指向記錄的指針值,去訪問(wèn)所需的記錄。每當(dāng)要向索引文件中增加一個(gè)新紀(jì)錄時(shí),便須對(duì)索引表進(jìn)行修改。索引表的問(wèn)題在于除了有主文件外,還需要配置一張索引表,每個(gè)記錄需要有一個(gè)索引項(xiàng),因此提高了存儲(chǔ)費(fèi)用。優(yōu)點(diǎn)就是擁有較快的檢索速度,適合用于對(duì)及時(shí)性要求比較高的場(chǎng)合。

3.1.3 索引順序文件

其有效克服了變長(zhǎng)記錄不便于直接存取的缺點(diǎn),而且所付出的代價(jià)也不算太大,它是順序文件和索引文件相結(jié)合的產(chǎn)物,它將順序文件中的所有記錄分為若干個(gè)組,為順序文件建立一張索引表,在索引表中為每組中的第一個(gè)記錄建立一個(gè)索引項(xiàng),其中含有該記錄的鍵值和指向記錄的指針。

在對(duì)索引順序文件進(jìn)行檢索時(shí),首先利用用戶(程序)所提供的關(guān)鍵字及某種查找算法去檢索索引表,找到該記錄組中的第一個(gè)記錄的表項(xiàng),從中得到該記錄組第一個(gè)記錄在主文件中的位置,然后,再利用順序查找法去查找主文件,從中找出所要求的記錄。

3.1.4 直接文件

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

3.1.5 哈希(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)記錄所在的物理塊。

emmmmmmm , 這個(gè)所講的意思并不是很懂~_~

四、文件目錄管理

為了能夠?qū)ξ募?shí)施有效的管理,必須對(duì)它們加以妥善組織,這主要是通過(guò)文件目錄實(shí)現(xiàn)的,文件目錄也是一種數(shù)據(jù)結(jié)構(gòu),用于標(biāo)識(shí)系統(tǒng)中的文件及其物理地址,供檢索時(shí)使用,對(duì)目錄的管理要求如下:

  ① 實(shí)現(xiàn)按名存取,即用戶只須向系統(tǒng)提供所需訪問(wèn)的文件的名字,便能夠快速準(zhǔn)確地找到指定文件在外存上的存儲(chǔ)位置,這是目錄管理中最基本的功能。

  ② 提高對(duì)目錄檢索速度,通過(guò)合理地組織目錄結(jié)構(gòu)的方法,可加快對(duì)目錄的檢索速度,從而提高對(duì)文件的存取速度。

  ③ 文件共享,在多用戶系統(tǒng)中,應(yīng)該允許用戶共享一個(gè)文件。

  ④ 允許文件重名,系統(tǒng)應(yīng)允許不同用戶對(duì)不同文件采用相同的名字,以便用戶按照自己的習(xí)慣給文件命名和使用文件。

4.1 文件控制塊

  為了能對(duì)文件進(jìn)行正確的存取,必須為文件設(shè)置用于描述和控制文件的數(shù)據(jù)結(jié)構(gòu),稱之為文件控制塊FCB,文件管理程序可借助于文件控制塊中的信息,對(duì)文件施加各種操作,文件與文件控制塊一一對(duì)應(yīng),而人們把文件控制塊的有序集合稱為文件目錄,一個(gè)文件控制塊就是一個(gè)文件目錄項(xiàng)。通常,一個(gè)文件目錄也可被看成是一個(gè)文件,稱為目錄文件。

    文件控制塊包含基本信息、存取控制信息、使用信息。

  ① 基本信息,包括文件名(標(biāo)識(shí)一個(gè)文件的符號(hào)名,在每個(gè)系統(tǒng)中,每個(gè)文件都有唯一的名字,用戶利用該名字進(jìn)行存取);文件物理位置(指文件在外存上的存儲(chǔ)位置,包括存放文件的設(shè)備名、文件在外村上的起始盤塊號(hào)、指示文件所占用的盤塊數(shù)或字節(jié)數(shù)的文件長(zhǎng)度);文件邏輯結(jié)構(gòu)(指示文件是流式文件還是記錄式文件、記錄數(shù),文件是定長(zhǎng)還是變長(zhǎng)記錄);文件物理結(jié)構(gòu)(指示文件是順序文件、鏈?zhǔn)轿募€是索引文件)

  ② 存取控制信息,包括文件主的存取權(quán)限、核準(zhǔn)用戶的存取權(quán)限及一般用戶的存取權(quán)限。

  ③ 使用信息,包括文件的建立日期和時(shí)間、文件上一次修改的日期和時(shí)間及當(dāng)前使用信息(這項(xiàng)信息包括當(dāng)前已打開(kāi)該文件的進(jìn)程數(shù)、是否被其他進(jìn)程鎖住、文件在內(nèi)存中是否已被修改但尚未拷貝到盤上)

4.2 索引結(jié)點(diǎn)

  文件目錄通常是存放在磁盤上的,當(dāng)文件很多時(shí),文件目錄可能要占用大量的盤塊,在查找的過(guò)程中,先將存放目錄文件的第一個(gè)盤塊中的目錄調(diào)入內(nèi)存,然后把用戶所給定的文件名和目錄項(xiàng)中的文件名逐一對(duì)比。若未找到指定文件,則再將下一個(gè)盤塊中的目錄項(xiàng)調(diào)入內(nèi)存。在檢索目錄文件時(shí),只用到了文件名,僅當(dāng)找到一個(gè)目錄項(xiàng)(即其中的文件名與指定要查找的文件名相匹配)時(shí),才需要從該目錄項(xiàng)中讀出該文件的物理地址,而其他一些對(duì)該文件進(jìn)行描述的信息,在檢索目錄時(shí)一概不用,顯然,這些信息在檢索目錄時(shí)不需要調(diào)入內(nèi)存。為此,在有的系統(tǒng)中,如UNIX系統(tǒng),便采用了把文件名和文件描述信息分開(kāi)的方法,亦即,使文件描述信息單獨(dú)形成一個(gè)稱為索引結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)稱為i結(jié)點(diǎn),在文件目錄中的每個(gè)目錄項(xiàng)由文件名和指向該文件所對(duì)應(yīng)的i結(jié)點(diǎn)的指針?biāo)鶚?gòu)成。

每個(gè)文件都有唯一的磁盤索引結(jié)點(diǎn)(磁盤索引結(jié)點(diǎn)信息與文件名等信息一起構(gòu)成了FCB)

1

4.3 目錄結(jié)構(gòu)

  目錄結(jié)構(gòu)的組織,關(guān)系到文件系統(tǒng)的存取速度,也關(guān)系到文件的共享性和安全性,目前常用的目錄結(jié)構(gòu)形式有單級(jí)目錄、兩級(jí)目錄、多級(jí)目錄。

  ① 單級(jí)目錄結(jié)構(gòu),在整個(gè)系統(tǒng)中只建立一張目錄表,每個(gè)文件占一個(gè)目錄項(xiàng),目錄項(xiàng)中含文件名、文件擴(kuò)展名、文件長(zhǎng)度、文件類型、文件物理地址、狀態(tài)位(表示目錄項(xiàng)是否空閑)等。每當(dāng)要建立一個(gè)新文件時(shí),必須先檢查所有的目錄項(xiàng),以保證新文件名在目錄中是唯一的,然后再?gòu)哪夸洷碇姓业揭粋€(gè)空白目錄項(xiàng),填入新文件的文件名及其他說(shuō)明信息,并置狀態(tài)為1,刪除文件時(shí),先從目錄中找到該文件的目錄項(xiàng),回收該文件所占用的存儲(chǔ)空間,然后再清除該目錄項(xiàng)。單級(jí)目錄的有點(diǎn)是簡(jiǎn)單并且能夠?qū)崿F(xiàn)目錄管理的基本功能-按名存取,但是查找速度慢(查找一個(gè)目錄項(xiàng)要花費(fèi)較多的時(shí)間),不允許重名(在一個(gè)目錄表中的所有文件,都不能與另一個(gè)文件有相同的名字,這是難以避免的),不便于實(shí)現(xiàn)文件共享(每一個(gè)用戶都有自己的名字空間或命名習(xí)慣,因此,應(yīng)該允許不同用戶使用不同的文件名來(lái)訪問(wèn)同一個(gè)文件)

    ② 兩級(jí)目錄結(jié)構(gòu),為每個(gè)用戶建立一個(gè)單獨(dú)的用戶文件目錄UFD(User File Directory),這些文件目錄具有相似的結(jié)構(gòu),由用戶所有文件的文件控制塊組成。此外,系統(tǒng)中還有一個(gè)主文件目錄MFD(Master File Directory),在主文件目錄中,每個(gè)用戶目錄文件都占有一個(gè)目錄項(xiàng),其目錄項(xiàng)包括用戶名和指向用戶目錄文件的指針。

  兩級(jí)目錄結(jié)構(gòu)克服了單級(jí)目錄的缺點(diǎn),具有如下優(yōu)點(diǎn):提高了檢索目錄的速度(如果在主目錄中有n個(gè)子目錄,每個(gè)用戶目錄最多為m個(gè)目錄項(xiàng),則為查找一指定的目錄項(xiàng),最多只需要檢索n+m個(gè)目錄項(xiàng))。在不同的用戶目錄中,可以使用相同的文件名(只要在用戶自己的UFD中,每個(gè)文件名都是唯一的,不同用戶可以有文件名相同的文件)。不同用戶還可使用不同的文件名來(lái)訪問(wèn)系統(tǒng)中同一個(gè)共享文件。但在多個(gè)用戶需要合作完成一個(gè)大任務(wù)時(shí),不便于用戶之間共享文件。

   ③ 多級(jí)目錄結(jié)構(gòu),對(duì)于大型文件系統(tǒng),通常采用三級(jí)或三級(jí)以上的目錄結(jié)構(gòu),以提高對(duì)目錄的檢索速度和文件系統(tǒng)的性能。多級(jí)目錄結(jié)構(gòu)又稱為樹(shù)形目錄結(jié)構(gòu),主目錄被稱為根目錄,把數(shù)據(jù)文件稱為樹(shù)葉,其他的目錄均作為樹(shù)的結(jié)點(diǎn)。

說(shuō)明:方框代表目錄文件,圓圈代表數(shù)據(jù)文件

1. 應(yīng)該允許在一個(gè)目錄文件中的目錄項(xiàng)既是作為目錄文件的FCB,又是數(shù)據(jù)文件的FCB,這一信息可用目錄項(xiàng)中的一位來(lái)指示。如用戶A總目錄中,目錄項(xiàng)A是目錄文件FCB,而目錄項(xiàng)B和D則是數(shù)據(jù)文件的FCB。

2. 系統(tǒng)中的每個(gè)文件都有唯一的路徑名

3. 絕對(duì)路徑與相對(duì)路徑

4.4 目錄查詢技術(shù)

  當(dāng)用戶要訪問(wèn)一個(gè)已存在的文件時(shí),系統(tǒng)首先利用用戶提供的文件名對(duì)目錄進(jìn)行查詢,找出該文件的文件控制塊或?qū)?yīng)索引結(jié)點(diǎn),然后,根據(jù)FCB或索引結(jié)點(diǎn)中所記錄的文件物理地址(盤塊號(hào)),換算出文件在磁盤上的物理位置,最后,再通過(guò)磁盤驅(qū)動(dòng)程序,將所需文件讀入內(nèi)存。目前常用的方式有線性檢索法和Hash方法。

  ① 線性檢索法,其又稱為順序檢索法,在樹(shù)形目錄中,用戶提供的文件名是由多個(gè)文件分量名組成的路徑名,此時(shí)須對(duì)多級(jí)目錄進(jìn)行查找,假定用戶給定的文件路徑名為/usr/ast/mbox,則查找過(guò)程如下。

1. 讀入第一個(gè)文件分量名usr,用它與根目錄文件(或當(dāng)前目錄文件)中各目錄項(xiàng)中的文件名順序地進(jìn)行比較

2. 得到匹配項(xiàng)的索引結(jié)點(diǎn)號(hào)是6

3. 從6號(hào)索引結(jié)點(diǎn)中得到usr目錄文件放在132號(hào)盤塊中,將該盤塊內(nèi)容讀入內(nèi)存

4. 再將路徑名中的第二個(gè)分量名ast讀入,用它與放在132號(hào)盤塊中的第二級(jí)目錄文件中各目錄項(xiàng)的文件名順序進(jìn)行比較

5. 依次類推

  ② Hash方法,系統(tǒng)利用用戶提供的文件名并將它轉(zhuǎn)換為文件目錄的索引值,再利用該索引值到目錄中去查找,這將提高檢索速度。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,237評(píng)論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,957評(píng)論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 177,248評(píng)論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,356評(píng)論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,081評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,485評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,534評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,720評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,263評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,025評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,204評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,787評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,461評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,874評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,105評(píng)論 1 289
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,945評(píng)論 3 395
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,205評(píng)論 2 375

推薦閱讀更多精彩內(nèi)容