版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章文件系統(tǒng)學(xué)習(xí)目標(biāo)<2
>1.掌握文件、文件系統(tǒng)的基本概念2.掌握文件控制塊、目錄項(xiàng)、文件目錄及目錄文件的概念3.理解文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及其適用環(huán)境4.掌握目錄檢索、磁盤(pán)空間管理、記錄的成組與分解等文
件管理方法5.了解文件和目錄的各種操作6.了解文件共享和文件保護(hù)的各種方法6.1文件管理的基本概念6.2文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)6.3文件目錄6.4文件存儲(chǔ)空間管理6.5實(shí)現(xiàn)文件系統(tǒng)的表目6.6文件及文件目錄的操作6.7文件系統(tǒng)的性能6.8文件共享、保護(hù)目錄CONTENTSPART6.1文件管理的基本概念文件管理的基本概念<5
>文件文件可以被解釋為一組帶標(biāo)識(shí)的、在邏輯上有完整意義的信息項(xiàng)的序列文件系統(tǒng)文件系統(tǒng)是操作系統(tǒng)中統(tǒng)一管理信息資源的一種軟件文件管理的基本概念<6
>文件系統(tǒng)的功能:(1)統(tǒng)一管理文件的存儲(chǔ)空間,實(shí)施存儲(chǔ)空間的分配與回收(2)實(shí)現(xiàn)文件從名字到外存地址空間的映射即實(shí)現(xiàn)文件的按名存?。?)實(shí)現(xiàn)文件信息的共享,并提供文件的保護(hù)措施(4)向用戶提供一個(gè)方便使用的接口(5)系統(tǒng)維護(hù)及向用戶提供有關(guān)信息(6)保持文件系統(tǒng)的執(zhí)行效率文件系統(tǒng)在操作系統(tǒng)接口中占的比例最大(7)提供I/O的統(tǒng)一接口文件管理的基本概念<7
>外存儲(chǔ)設(shè)備的特點(diǎn)外存儲(chǔ)設(shè)備通常由驅(qū)動(dòng)部分和存儲(chǔ)介質(zhì)兩部分組成。存儲(chǔ)介質(zhì)又常被稱為卷,“卷”字來(lái)自把存儲(chǔ)介質(zhì)看作“信息容器”的比喻。驅(qū)動(dòng)器的作用是使計(jì)算機(jī)能夠?qū)崿F(xiàn)讀寫(xiě)(及保存、控制、測(cè)試)存儲(chǔ)介質(zhì)上的內(nèi)容外存儲(chǔ)設(shè)備的存儲(chǔ)介質(zhì)(1)磁帶(2)磁盤(pán)(3)光盤(pán)(4)閃存文件管理的基本概念<8
>文件結(jié)構(gòu)、文件存取方式與存儲(chǔ)介質(zhì)文件常用的存取方法有:順序存取和隨機(jī)存取等兩種方式選擇哪一種文件的存取方式,既取決于用戶使用文件的方式,也與文件所使用的存儲(chǔ)介質(zhì)有關(guān)(1)順序存取:按從前到后的次序依次訪問(wèn)文件的各個(gè)信息項(xiàng)(2)隨機(jī)存取:隨機(jī)存取又稱直接存取,即允許用戶按任意的次序、直接存取文件中的任意一個(gè)記錄,或者根據(jù)存取命令把讀寫(xiě)指針移到文件中的指定記錄處讀寫(xiě).文件管理的基本概念<9
>為了有效、方便地管理文件,在文件系統(tǒng)中,常常把文件按其性質(zhì)和用途的不同進(jìn)行分類按文件的用途分類:系統(tǒng)文件、庫(kù)函數(shù)文件、用戶文件
按文件的組織形式分類:普通文件、目錄文件、特殊文件文件管理的基本概念<10
>一些常見(jiàn)的文件分類方式按文件的保護(hù)方式可劃分為:只讀文件、讀寫(xiě)文件、可執(zhí)行文件、無(wú)保護(hù)文件等按信息的流向分類可劃分為:輸入文件、輸出文件和輸入輸出文件等按文件的存放時(shí)限可劃分為:臨時(shí)文件、永久文件和檔案文件等
按文件所使用的介質(zhì)類型分類可劃分為:磁盤(pán)文件、磁帶文件、卡片文件和打印文件等上述種種文件系統(tǒng)的分類,其目的是:對(duì)不同文件進(jìn)行管理,提高系統(tǒng)效率;同時(shí),提高文件系統(tǒng)的用戶界面友好性背景-2:北京大學(xué)圖書(shū)館PART6.2文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)<12
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)設(shè)計(jì)文件邏輯結(jié)構(gòu)的原則與文件的邏輯結(jié)構(gòu)相聯(lián)系的是邏輯文件的存取方式,即用戶如何訪問(wèn)文件在文件系統(tǒng)設(shè)計(jì)時(shí),到底選擇何種邏輯結(jié)構(gòu)才能更有利于用戶對(duì)文件信息的操作呢?這里,我們列出在一般情況下,設(shè)計(jì)文件的邏輯結(jié)構(gòu)時(shí)應(yīng)遵循的一些設(shè)計(jì)原則:(1)易于操作(2)查找快捷(3)修改方便(4)空間緊湊<13
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)文件的邏輯結(jié)構(gòu)就是用戶所看到的文件的組織形式文件邏輯結(jié)構(gòu)是一種經(jīng)過(guò)抽象的結(jié)構(gòu),所描述的是文件中信息的組織形式,與文件在物理介質(zhì)上的具體存儲(chǔ)結(jié)構(gòu)不同。文件劃分成三類邏輯結(jié)構(gòu):無(wú)結(jié)構(gòu)的字符流式文件、定長(zhǎng)記錄文件和不定長(zhǎng)記錄文件構(gòu)成的記錄樹(shù),如圖所示:邏輯文件的種類<14
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)定長(zhǎng)記錄文件和不定長(zhǎng)記錄文件可以統(tǒng)稱為記錄式文件(1)流式文件流式文件是有序字符的集合(2)記錄式文件記錄式文件是一組有序記錄的集合
文件的物理結(jié)構(gòu)從研究文件管理、設(shè)計(jì)文件管理系統(tǒng)的角度來(lái)看,必須研究如何在物理存儲(chǔ)器上存儲(chǔ)文件,這是文件系統(tǒng)實(shí)現(xiàn)的物理基礎(chǔ)常用的文件物理結(jié)構(gòu)有順序結(jié)構(gòu)、鏈接結(jié)構(gòu)、索引結(jié)構(gòu)<15
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)順序結(jié)構(gòu)原理順序結(jié)構(gòu)又稱連續(xù)結(jié)構(gòu),這是一種最簡(jiǎn)單的文件物理結(jié)構(gòu),它把邏輯上連續(xù)的文件信息依次存放在連續(xù)編號(hào)的物理塊中。在順序結(jié)構(gòu)中,一個(gè)文件的目錄項(xiàng)中只要指出該文件占據(jù)的總塊數(shù)和起始?jí)K號(hào)即可順序結(jié)構(gòu)的優(yōu)缺點(diǎn)順序結(jié)構(gòu)的優(yōu)點(diǎn)是,一旦知道了文件在文件存儲(chǔ)設(shè)備上的起始?jí)K號(hào)和文件長(zhǎng)度,就能很快地進(jìn)行存取。這是因?yàn)閺奈募倪壿媺K號(hào)到物理塊號(hào)的變換是非常簡(jiǎn)單的。順序結(jié)構(gòu)支持順序存取和隨機(jī)存取文件的順序結(jié)構(gòu)<16
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)鏈接結(jié)構(gòu)原理文件的鏈接結(jié)構(gòu)的實(shí)質(zhì)就是為每個(gè)文件構(gòu)造所使用磁盤(pán)塊的鏈表文件的鏈接結(jié)構(gòu)<17
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)鏈接結(jié)構(gòu)的優(yōu)缺點(diǎn)鏈接結(jié)構(gòu)的優(yōu)點(diǎn)是,存儲(chǔ)碎片問(wèn)題迎刃而解了,有利于文件動(dòng)態(tài)擴(kuò)充,有利于文件插入和刪除,提高了磁盤(pán)空間利用率鏈接結(jié)構(gòu)的主要缺點(diǎn)是,存取速度慢,不適于隨機(jī)存取文件;磁盤(pán)的磁頭移動(dòng)多,效率相對(duì)較低;存在文件的可靠性問(wèn)題,比如指針出錯(cuò),文件也就出錯(cuò)了;另外,鏈接指針需要占用一定的空間為了提高可靠性,可以采用雙向鏈接,或者在每個(gè)物理塊中存儲(chǔ)文件名稱和相對(duì)塊號(hào)等辦法改進(jìn)。不過(guò)這些辦法只能有限地提高可靠性,并不能從根本解決問(wèn)題,而且需要耗費(fèi)更多的空間,典型的鏈接結(jié)構(gòu)是FAT文件系統(tǒng)<18
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)FAT文件系統(tǒng)的結(jié)構(gòu)<19
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)索引結(jié)構(gòu)原理索引結(jié)構(gòu)的文件把每個(gè)物理盤(pán)塊的指針字,集中存放在稱為索引表的數(shù)據(jù)結(jié)構(gòu)中的內(nèi)存索引表中。在每個(gè)文件相應(yīng)的目錄條目中包括該文件的索引表地址,而索引表中的第i個(gè)條目指向文件的第i塊,如圖所示,要讀某個(gè)文件的第i塊,只需從該文件索引表的第i個(gè)條目中得到該文件塊的地址即可索引文件結(jié)構(gòu)<20
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)索引文件結(jié)構(gòu)的優(yōu)缺點(diǎn)索引文件結(jié)構(gòu)保持了鏈接結(jié)構(gòu)的優(yōu)點(diǎn),又解決了其缺點(diǎn)索引結(jié)構(gòu)文件既適于順序存取,也適用于隨機(jī)存取。索引文件可以滿足文件動(dòng)態(tài)增長(zhǎng)的要求,也滿足了文件插入、刪除的要求索引文件還能充分利用外存空間索引結(jié)構(gòu)的缺點(diǎn)是:會(huì)引起較多的尋道次數(shù)和尋道時(shí)間;索引表本身增加了存儲(chǔ)空間的開(kāi)銷索引表應(yīng)該多大?應(yīng)該定長(zhǎng)還是變長(zhǎng)?解決問(wèn)題的辦法有以下一些種類:①索引表的鏈接模式:一個(gè)索引表通常就是一個(gè)物理盤(pán)塊這樣,讀寫(xiě)索引表比較簡(jiǎn)單對(duì)大文件就用多個(gè)索引表并將之鏈接在一起②多級(jí)索引:這是上述索引表鏈接模式的一種改善變種<21
>文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)UNIX的三級(jí)索引結(jié)構(gòu)i節(jié)點(diǎn)的三級(jí)索引結(jié)構(gòu)背景-3:西門(mén)華表文件目錄PART6.3<23
>文件目錄文件控制塊文件控制塊FCB是系統(tǒng)為管理文件而設(shè)置的一個(gè)數(shù)據(jù)結(jié)構(gòu)FCB是文件存在的標(biāo)志,它記錄了系統(tǒng)管理文件所需要的全部信息FCB通常應(yīng)包括以下內(nèi)容:文件名,文件號(hào),用戶名,文件地址,文件長(zhǎng)度,文件類型,文件屬性,共享計(jì)數(shù),文件的建立日期,保存期限,最后修改日期,最后訪問(wèn)日期,口令,文件邏輯結(jié)構(gòu),文件物理結(jié)構(gòu)等等<24
>文件目錄文件控制塊中主要的欄目
一級(jí)目錄結(jié)構(gòu)<25
>文件目錄文件目錄是實(shí)現(xiàn)用戶按名存取文件的一種手段為了能夠方便用戶的檢索和文件的管理,根據(jù)實(shí)際的需要,一般把文件目錄設(shè)計(jì)成一級(jí)(單級(jí))目錄結(jié)構(gòu)、二級(jí)目錄結(jié)構(gòu)和多級(jí)目錄結(jié)構(gòu)一級(jí)目錄結(jié)構(gòu)在系統(tǒng)中設(shè)置一張線性目錄表,表中包括了所有文件的文件控制塊,每個(gè)文件控制塊指向一個(gè)普通文件,這就是一級(jí)目錄結(jié)構(gòu)<26
>文件目錄二級(jí)目錄結(jié)構(gòu)為克服一級(jí)目錄中文件目錄命名中的可能沖突,并提高對(duì)目錄文件的檢索速度,一級(jí)目錄被改進(jìn)擴(kuò)充成二級(jí)目錄二級(jí)目錄結(jié)構(gòu)多級(jí)目錄結(jié)構(gòu)<27
>文件目錄多級(jí)目錄把二級(jí)目錄的層次關(guān)系加以推廣,就形成了多級(jí)目錄,又稱樹(shù)型目錄結(jié)構(gòu)UNIX系統(tǒng)中的一棵目錄樹(shù)<28
>文件目錄多級(jí)目錄結(jié)構(gòu)的優(yōu)點(diǎn)是便于文件分類,且具有下列特點(diǎn):(1)層次清楚(2)解決了文件重名問(wèn)題(3)查找搜索速度快目前大多數(shù)操作系統(tǒng)如UNIX、Linux類、Windows等都采用多級(jí)目錄結(jié)構(gòu)。在右圖中給出了UNIX操作系統(tǒng)的一棵目錄樹(shù)<29
>文件目錄當(dāng)前目錄與目錄檢索文件系統(tǒng)向用戶提供了一個(gè)當(dāng)前正在使用的目錄,稱為“當(dāng)前目錄”,又稱“工作目錄”如果需要,用戶可隨意更改當(dāng)前目錄用戶在訪問(wèn)文件時(shí),需要進(jìn)行目錄檢索,這時(shí)用戶給出文件名,系統(tǒng)按名尋找目錄項(xiàng)。有兩種根據(jù)路徑名檢索的方法:一種是全路徑名,另一種是相對(duì)路徑<30
>文件目錄目錄項(xiàng)分解法即把目錄項(xiàng)(FCB)分為兩部分,符號(hào)目錄項(xiàng)(次部)和基本目錄項(xiàng)(主部)其中,符號(hào)目錄項(xiàng)包含文件名以及相應(yīng)的文件號(hào);而基本目錄項(xiàng)包含了除文件名外文件控制塊的其他全部信息目錄項(xiàng)分解法目錄項(xiàng)當(dāng)用戶建立一個(gè)新文件時(shí),與該文件有關(guān)的一些信息與屬性記錄在該文件的文件控制塊內(nèi)。為了便于管理,通常將文件控制塊做成定長(zhǎng)數(shù)據(jù)結(jié)構(gòu)的一個(gè)記錄,存放在目錄文件中而這樣的每一個(gè)記錄稱為目錄項(xiàng)目錄文件多個(gè)文件的文件控制塊集中在一起組成了文件的目錄通常,文件目錄以文件的形式保存起來(lái),這個(gè)文件就被稱為目錄文件<31
>文件目錄UNIX的文件目錄實(shí)現(xiàn)V7文件系統(tǒng)中,UNIX目錄中為每個(gè)文件保留了一項(xiàng),如圖中表示每個(gè)目錄項(xiàng)包含了兩個(gè)域,文件名(14個(gè)字節(jié))和i節(jié)點(diǎn)的編號(hào)(2個(gè)字節(jié))UNIX的目錄項(xiàng)<32
>文件目錄系統(tǒng)讀根目錄并且在根目錄中查找路徑的第一個(gè)分量user,以獲取/user目錄的i節(jié)點(diǎn)號(hào)由i節(jié)點(diǎn)號(hào)來(lái)定位i節(jié)點(diǎn)是很直接的,因?yàn)槊總€(gè)i節(jié)點(diǎn)在磁盤(pán)上都有固定的位置根據(jù)這個(gè)i節(jié)點(diǎn),系統(tǒng)定位/user目錄并在其中查找下一個(gè)分量ast一旦找到ast的項(xiàng),便找到了/user/ast目錄的i節(jié)點(diǎn)依據(jù)這個(gè)i節(jié)點(diǎn),可以定位該目錄并在其中查找mbox然后,這個(gè)文件的i節(jié)點(diǎn)被讀入內(nèi)存,并且在文件關(guān)閉之前會(huì)一直保留在內(nèi)存中,如圖闡述了查找的過(guò)程
查找/usr/ast/mbox的過(guò)程<33
>文件目錄FAT文件系統(tǒng)的實(shí)現(xiàn)FAT是FileAllocationTable(文件分配表)的縮寫(xiě)。FAT文件系統(tǒng)總共有三個(gè)版本:FAT-12,F(xiàn)AT-16和FAT-32,取決于用多少二進(jìn)制位表示磁盤(pán)塊地址
下圖說(shuō)明了FAT文件系統(tǒng)是如何組織一個(gè)卷的文件分配表位于卷的開(kāi)頭,為了防止文件系統(tǒng)遭到破壞,F(xiàn)AT文件系統(tǒng)保存了兩個(gè)文件分配表,這樣當(dāng)其中一個(gè)遭到破壞時(shí)可以保護(hù)卷此外,文件分配表和根目錄必須存放在磁盤(pán)上一個(gè)固定的位置,這樣才可以正確地找到啟動(dòng)系統(tǒng)所需要的文件FAT卷的結(jié)構(gòu)<34
>文件目錄引導(dǎo)扇區(qū)引導(dǎo)扇區(qū)(BootSector)包含用于描述卷的各種信息,利用這些信息才可以訪問(wèn)文件系統(tǒng)在基于X86的計(jì)算機(jī)上,主引導(dǎo)記錄(MasterBootRecord)使用系統(tǒng)分區(qū)上的引導(dǎo)扇區(qū)來(lái)加載操作系統(tǒng)的核心文件文件分配表文件分配表包含關(guān)于卷上每個(gè)簇的如下類型的信息,括號(hào)中是FAT16的樣值:未使用(0x0000,被文件所使用的簇,壞簇(0xFFF7),文件中的最后一簇(0xFFF8-0xFFFF)在FAT目錄結(jié)構(gòu)中,每個(gè)文件都給出了它在卷上的起始簇號(hào)起始簇號(hào)是文件所使用的第一個(gè)簇的地址,每個(gè)簇都包含一個(gè)指針,指向文件中的下一簇,或者包含一個(gè)指示符(0xFFFF),表明該簇是文件的結(jié)尾這些鏈接以及文件結(jié)尾指示符如圖所示。
文件分配表的例子<35
>文件目錄根目錄在FAT16文件系統(tǒng)中,位于根目錄下的每個(gè)文件和子目錄在根目錄區(qū)中都包含一個(gè)目錄項(xiàng)。根目錄與其他目錄之間的唯一區(qū)別是,根目錄位于磁盤(pán)上一個(gè)特殊的位置并且具有固定的大小,每個(gè)目錄項(xiàng)的大小為32字節(jié),其內(nèi)容包括:文件名、擴(kuò)展名、屬性字節(jié)、最后一次修改時(shí)間和日期、文件長(zhǎng)度、第一簇的編號(hào)等背景-4:未名湖PART6.4文件存儲(chǔ)空間管理<37
>文件存儲(chǔ)空間管理磁盤(pán)空間的分配回收算法在設(shè)計(jì)空閑空間登記表的數(shù)據(jù)結(jié)構(gòu)時(shí),一般有四種不同的方案可以考慮1.位示圖位示圖法的基本思想是,利用一串二進(jìn)制位(bit)的值來(lái)反映磁盤(pán)空間的分配使用情況在位示圖中,每一個(gè)磁盤(pán)中物理塊用一個(gè)二進(jìn)制位對(duì)應(yīng),如果某個(gè)物理塊為空閑,則相應(yīng)的二進(jìn)制位為0;如果該物理塊已分配了,則相應(yīng)的二進(jìn)位為1,如圖所示圖位示圖<38
>文件存儲(chǔ)空間管理位示圖對(duì)空間分配情況的描述能力強(qiáng),一個(gè)二進(jìn)位就描述一個(gè)物理塊的狀態(tài)。另外,位示圖占用空間較小,因此可以復(fù)制到內(nèi)存,使查找既方便又快速位示圖適用于各種文件物理結(jié)構(gòu)的文件系統(tǒng)使用位示圖能夠簡(jiǎn)單有效地在盤(pán)上找到n個(gè)連續(xù)的空閑塊,很多計(jì)算機(jī)提供了位操作指令,使位示圖的查找能夠高效進(jìn)行例如,Intelx86微處理器系列就有這樣的指令:返回指定寄存器的所有位中值為1的第一位空閑塊表<39
>文件存儲(chǔ)空間管理空閑塊表空閑塊表是專門(mén)為空閑塊建立的一張表,該表記錄外存儲(chǔ)器全部空閑的物理塊:包括每個(gè)空閑塊的第一個(gè)空閑物理塊號(hào)和和該空閑塊中空閑物理塊的個(gè)數(shù)。如圖所示,空閑塊表方式特別適合于文件物理結(jié)構(gòu)為順序結(jié)構(gòu)的文件系統(tǒng)<40
>文件存儲(chǔ)空間管理空閑塊鏈表將外存儲(chǔ)器中所有的空閑物理塊連成一個(gè)鏈表,用一個(gè)空閑塊首指針指向第一個(gè)空閑塊,隨后的每個(gè)空閑塊中都含有指向下一個(gè)空閑塊的指針,最后一塊的指針為空,表示鏈尾,這樣就構(gòu)成了一個(gè)空閑塊鏈表,如圖所示空閑塊鏈表<41
>文件存儲(chǔ)空間管理UNIX系統(tǒng)的空閑塊成組鏈接法
空閑塊成組鏈接表<42
>文件存儲(chǔ)空間管理假設(shè)初始化時(shí)系統(tǒng)已把專用塊讀入主存儲(chǔ)器L單元開(kāi)始的區(qū)域中,分配和回收的算法如下:(1)分配一個(gè)空閑塊查L(zhǎng)單元內(nèi)容(空閑塊數(shù)):查L(zhǎng)單元內(nèi)容(空閑塊數(shù)):當(dāng)空閑塊數(shù)>1,i:=L+空閑塊數(shù);從i單元得到一空閑塊號(hào);把該塊分配給申請(qǐng)者;空閑塊數(shù)減1當(dāng)空閑塊數(shù)=1,取出L+1單元內(nèi)容(一組的第一塊塊號(hào)或0);<43
>文件存儲(chǔ)空間管理(2)歸還一塊查L(zhǎng)單元的空閑塊數(shù);當(dāng)空閑塊數(shù)<100,空閑塊數(shù)加1;j:=L+空閑塊數(shù);歸還塊號(hào)填入j單元當(dāng)空閑塊數(shù)=100,把主存中登記的信息寫(xiě)入歸還塊中;把歸還塊號(hào)填入L+1單元;將L單元置成1背景-5:翻尾石魚(yú)PART6.5實(shí)現(xiàn)文件系統(tǒng)的表目<45
>實(shí)現(xiàn)文件系統(tǒng)的表目系統(tǒng)打開(kāi)文件表系統(tǒng)打開(kāi)文件表專門(mén)用于保存已打開(kāi)文件的文件控制塊,通常放在內(nèi)存除了保存已打開(kāi)文件的文件控制塊之外,在該表格中還保存了共享計(jì)數(shù)、修改標(biāo)志等信息,如下圖所示。其中,由于允許多個(gè)進(jìn)程同時(shí)打開(kāi)同一個(gè)文件,所以共享計(jì)數(shù)標(biāo)出有幾個(gè)進(jìn)程打開(kāi)同一個(gè)文件;修改標(biāo)志是指文件控制塊或i節(jié)點(diǎn)的內(nèi)容是否被修改過(guò),如果修改過(guò),則關(guān)閉文件時(shí)要將文件控制塊寫(xiě)回磁盤(pán)系統(tǒng)打開(kāi)文件表<46
>實(shí)現(xiàn)文件系統(tǒng)的表目用戶打開(kāi)文件表每個(gè)進(jìn)程都有一個(gè)“用戶打開(kāi)文件表”以UNIX為例,該表的內(nèi)容有文件描述符、打開(kāi)方式、讀寫(xiě)指針、系統(tǒng)打開(kāi)文件表入口等等另外在進(jìn)程的進(jìn)程控制塊PCB中,還記錄了“用戶打開(kāi)文件表”的位置用戶打開(kāi)文件表<47
>實(shí)現(xiàn)文件系統(tǒng)的表目在系統(tǒng)打開(kāi)文件表和用戶打開(kāi)文件表之間存在一種關(guān)系實(shí)際上,用戶打開(kāi)文件表指向了系統(tǒng)打開(kāi)文件表如果多個(gè)進(jìn)程共享同一個(gè)文件,則一定有多個(gè)用戶打開(kāi)文件表目對(duì)應(yīng)著系統(tǒng)打開(kāi)文件表的同一入口
打開(kāi)文件表之間關(guān)系背景-1:北京大學(xué)西門(mén)PART6.6文件及文件目錄的操作<49
>文件及文件目錄的操作典型的文件操作1.建立文件用戶首先調(diào)用文件系統(tǒng)的“建立文件”操作,在請(qǐng)求調(diào)用該操作時(shí),提供所要?jiǎng)?chuàng)建的文件的文件名及若干參數(shù):用戶名、文件名、存取方式、存儲(chǔ)設(shè)備類型、記錄格式、記錄長(zhǎng)度,等等系統(tǒng)依據(jù)用戶提供的文件名及若干參數(shù),為這一新創(chuàng)建的文件分配一個(gè)文件控制塊,填寫(xiě)文件控制塊中的有關(guān)項(xiàng)建立文件的實(shí)質(zhì)是建立文件的文件控制塊FCB,并建立必要的存儲(chǔ)空間,分配空的FCB從而建立起系統(tǒng)與文件的聯(lián)系建立文件系統(tǒng)調(diào)用的一般格式為:create(文件名,訪問(wèn)權(quán)限,(最大長(zhǎng)度))建立文件的具體步驟如下:(1)檢查參數(shù)的合法性;(2)檢查同一目錄下有無(wú)重名文件;(3)在目錄中有無(wú)空閑位置;
(4)填寫(xiě)目錄項(xiàng)內(nèi)容;(5)返回<50
>文件及文件目錄的操作2.打開(kāi)文件打開(kāi)文件,是使用文件的第一步,任何一個(gè)文件使用前都要先打開(kāi),即把文件控制塊FCB送到內(nèi)存打開(kāi)文件系統(tǒng)調(diào)用的一般格式為:fd=open(文件路徑名,打開(kāi)方式)打開(kāi)文件時(shí),系統(tǒng)主要完成以下工作:(1)根據(jù)文件路徑名查目錄,找到FCB主部(2)根據(jù)打開(kāi)方式、共享說(shuō)明和用戶身份檢查訪問(wèn)合法性(3)根據(jù)文件號(hào)查系統(tǒng)打開(kāi)文件表,看文件是否已被打開(kāi)(4)在用戶打開(kāi)文件表中取一空表項(xiàng),填寫(xiě)打開(kāi)方式等,并指向系統(tǒng)打開(kāi)文件表對(duì)應(yīng)表項(xiàng)3.讀文件讀文件系統(tǒng)調(diào)用的一般格式為:read(文件名,(文件內(nèi)位置),要讀的長(zhǎng)度,內(nèi)存目的地址),讀寫(xiě)方式可為讀、寫(xiě)和既讀又寫(xiě)等<51
>文件及文件目錄的操作讀文件時(shí),系統(tǒng)主要完成以下工作:(1)檢查長(zhǎng)度是否為正整數(shù)(2)根據(jù)文件名查找目錄,確定該文件在目錄中的位置(3)根據(jù)隱含參數(shù)中的文件主和目錄中該文件的存儲(chǔ)權(quán)限數(shù)據(jù),檢查是否有權(quán)讀:(4)由文件內(nèi)位置與要讀的長(zhǎng)度計(jì)算最末位置,將其與目錄中的文件長(zhǎng)度比較,超過(guò)否?(5)根據(jù)參數(shù)中的位置、長(zhǎng)度和目錄中的映射信息,確定物理塊號(hào)、需要讀出的塊數(shù)等讀盤(pán)參數(shù)(6)根據(jù)下一塊號(hào)讀塊至內(nèi)存緩沖區(qū)(7)取出要讀的內(nèi)容,也許要進(jìn)行成組的分解,將取出的內(nèi)容送至參數(shù)中的內(nèi)存目的地址(8)根據(jù)塊內(nèi)長(zhǎng)度或起始?jí)K號(hào)+塊數(shù),確定還讀下一塊嗎?同時(shí)確定下一塊塊(9)正常返回(10)錯(cuò)誤返回,返回相應(yīng)錯(cuò)誤號(hào)<52
>文件及文件目錄的操作4.寫(xiě)文件寫(xiě)文件系統(tǒng)調(diào)用的一般格式為:write(文件名,記錄鍵,內(nèi)存位置)把內(nèi)存中指定單元的數(shù)據(jù)作為指定的一個(gè)記錄寫(xiě)入指定文件中,系統(tǒng)還將為其分配物理塊,以便把記錄信息寫(xiě)到外存上5.關(guān)閉文件若文件暫時(shí)不用,則應(yīng)將它關(guān)閉文件關(guān)閉后一般不能存取,若要存取,則必須再次打開(kāi)關(guān)閉文件系統(tǒng)調(diào)用的一般格式為:close(文件名)系統(tǒng)根據(jù)用戶提供的文件名或文件描述符,在該文件的文件控制塊上做修改例如,將該文件的共享用戶數(shù)減1,減1后若值為0,則將文件控制塊置上“非活躍”標(biāo)志,若該文件控制塊內(nèi)容被修改過(guò),則要寫(xiě)回外存6.刪除文件刪除文件系統(tǒng)調(diào)用的一般格式為:delete(文件名)系統(tǒng)根據(jù)用戶提供的文件名或文件描述符,檢查此次刪除的合法性,若合法,則收回該文件所占用的文件控制塊及物理塊等資源<53
>文件及文件目錄的操作7.指針定位指針定位的一般格式為:seek(fd,新指針的位置)指針定位時(shí),系統(tǒng)主要完成以下工作:(1)由fd檢查用戶打開(kāi)文件表,找到對(duì)應(yīng)的入口;(2)將用戶打開(kāi)文件表中文件讀寫(xiě)指針位置設(shè)為新指針的位置,供后繼讀寫(xiě)命令存取該指針處文件內(nèi)容典型的目錄操作對(duì)目錄的操作與文件類似,通常由系統(tǒng)調(diào)用實(shí)現(xiàn)在不同系統(tǒng)中,管理目錄的系統(tǒng)調(diào)用是不同的<54
>文件及文件目錄的操作(1)creat,創(chuàng)建目錄在新創(chuàng)建的目錄中,除了目錄項(xiàng)“.”和“..”外,目錄內(nèi)容是空的而目錄項(xiàng)“.”和“..”是系統(tǒng)自動(dòng)放在目錄中的(
有時(shí)通過(guò)mkdir程序完成)(2)delete,刪除目錄只有當(dāng)一個(gè)目錄為空時(shí),該目錄方可刪除所謂空目錄的含義是,在一個(gè)目錄中只有目錄項(xiàng)“.”和“..”“.”和“..”這兩目錄項(xiàng)是不能被刪除的(3)opendir,打開(kāi)目錄,使內(nèi)容可被讀取如,為列出目錄中全部文件,程序須先打開(kāi)該目錄,然后讀其中全部文件的文件名同打開(kāi)和讀文件相同,在讀目錄前,必須打開(kāi)目錄(4)closedir,關(guān)閉目錄,讀目錄結(jié)束后,應(yīng)關(guān)閉目錄以釋放內(nèi)存空間(5)readdir,系統(tǒng)調(diào)用readdir返回打開(kāi)目錄的下一目錄項(xiàng)以前也采用read系統(tǒng)調(diào)用來(lái)讀目錄,但這方法有一缺點(diǎn):程序員須了解和處理目錄的內(nèi)部結(jié)構(gòu)相反,不論采用哪一種目錄結(jié)構(gòu),readdir總是返回目錄項(xiàng)一個(gè)標(biāo)準(zhǔn)格式(6)rename,文件可換名,目錄也可換名(7)link,鏈接技術(shù)允許在多個(gè)目錄中出現(xiàn)同一文件這個(gè)系統(tǒng)調(diào)用指定一個(gè)存在的文件和一個(gè)路徑名,并建立從文件到路徑所指名字的鏈接這樣,可以在多個(gè)目錄中出現(xiàn)同一文件(8)unlink,刪除目錄項(xiàng)如果被解除鏈的文件只出現(xiàn)在一個(gè)目錄中(通常情況),它從文件系統(tǒng)中被刪除如果它出現(xiàn)在多個(gè)目錄中,則只刪除指定路徑名,依然保留其他路徑名在UNIX中,用于刪除文件的系統(tǒng)調(diào)用實(shí)際上就是unlink在UNIX中,最主要的有關(guān)目錄的系統(tǒng)調(diào)用已在上列出當(dāng)然還有其他一些調(diào)用,如與目錄相關(guān)的管理保護(hù)信息的系統(tǒng)調(diào)用背景-1:北京大學(xué)西門(mén)PART6.7文件系統(tǒng)的性能<56
>文件系統(tǒng)的性能文件系統(tǒng)的物理基礎(chǔ)是磁盤(pán)設(shè)備,顯然,磁盤(pán)存儲(chǔ)器的服務(wù)效率,其速度和可靠性,就成為文件系統(tǒng)性能和可靠性的關(guān)鍵設(shè)計(jì)文件系統(tǒng)時(shí)應(yīng)盡可能減少磁盤(pán)訪問(wèn)次數(shù),這樣,可以適當(dāng)減少磁盤(pán)存儲(chǔ)器性能對(duì)文件系統(tǒng)性能的影響除此之外,還應(yīng)該從其他方面考慮,采取有效的措施,提高文件系統(tǒng)的性能常見(jiàn)的技術(shù)措施有如下幾種:磁盤(pán)高速緩存、RAID技術(shù)磁盤(pán)高速緩存緩存的一種應(yīng)用是記錄的成組1.記錄的成組把若干個(gè)邏輯記錄合成一組存放一物理塊的工作稱“記錄的成組”,每塊中的邏輯記錄個(gè)數(shù)稱“塊因子”<57
>文件系統(tǒng)的性能由于信息交換以塊為單位,所以,要進(jìn)行成組操作時(shí)必須使用內(nèi)存的緩沖區(qū)該緩沖區(qū)的長(zhǎng)度等于要進(jìn)行成組的最大邏輯記錄長(zhǎng)度乘以成組的塊因子成組轉(zhuǎn)儲(chǔ)操作如圖所示記錄成組示例<58
>文件系統(tǒng)的性能2.記錄的分解對(duì)應(yīng)前述記錄成組的操作,有必要考慮從一組邏輯記錄中把一個(gè)邏輯記錄分離出來(lái)的操作,這種操作稱為“記錄的分解”定長(zhǎng)記錄格式,只要知道邏輯記錄的長(zhǎng)度就可容易地進(jìn)行分解對(duì)不定長(zhǎng)記錄格式,要根據(jù)說(shuō)明邏輯記錄長(zhǎng)度的控制信息,計(jì)算出用戶所指定的記錄在內(nèi)存緩沖區(qū)中的位置,然后把記錄分解出來(lái)
記錄分解操作示例<59
>文件系統(tǒng)的性能RAID技術(shù)磁盤(pán)是機(jī)械設(shè)備,一方面速度慢,另一方面會(huì)出現(xiàn)故障為解決此問(wèn)題,Raid技術(shù)被提了出來(lái),Raid技術(shù)主要是解決上述二個(gè)問(wèn)題,因此,在組成Raid的結(jié)構(gòu)上有多種方法Raid的各種模式背景-1:北京大學(xué)西門(mén)PART6.8文件共享、保護(hù)<61
>文件共享、保護(hù)文件共享文件的共享是指一個(gè)文件可以允許多個(gè)用戶共同使用文件共享不僅是完成共同任務(wù)所必需,而且還帶來(lái)許多好處:節(jié)省文件所占用的存儲(chǔ)空間;免除系統(tǒng)復(fù)制文件的工作;減少用戶大量重復(fù)性勞動(dòng);減少實(shí)際輸入輸出文件的次數(shù)此外,利用文件共享可以實(shí)現(xiàn)進(jìn)程間相互通信在允許文件共享的系統(tǒng)中,必須對(duì)共享文件進(jìn)行管理從共享的時(shí)間段上看,共享文件的使用有兩種情況:(1)文件可以同時(shí)使用(2)文件不允許同時(shí)使用
在文件共享的具體方式上,有三種文件的共享形式:(1)文件被多個(gè)用戶使用,由存取權(quán)限控制(2)文件被多個(gè)程序使用,但分別用自己的讀寫(xiě)指針
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 拍攝合同范例英文
- 教育行業(yè)并購(gòu)合同范例
- 景區(qū)規(guī)劃服務(wù)合同范例
- 房產(chǎn)證件抵押合同范例
- 土地承包開(kāi)采合同范例
- 公家房屋裝修合同范例
- 從化醫(yī)院食堂承包合同范例
- 家庭團(tuán)聚住家合同范例
- 展板條幅合同范例
- 頭條店鋪轉(zhuǎn)讓合同范例
- 大眾頂級(jí) 輝騰 減振控制的空氣懸架_圖文
- 血液透析專科操作流程及評(píng)分標(biāo)準(zhǔn)
- 電工新技術(shù)介紹(課堂PPT)
- 座板式單人吊具(課堂PPT)
- 托班一日生活情況反饋表
- 機(jī)電設(shè)備維護(hù)保養(yǎng)技術(shù)
- FLAC3D常用命令
- JGJ_T231-2021建筑施工承插型盤(pán)扣式鋼管腳手架安全技術(shù)標(biāo)準(zhǔn)(高清-最新版)
- 畢業(yè)論文(設(shè)計(jì))除雪車工作裝置設(shè)計(jì)
- 鏡片加工知識(shí)之四研磨
- 核電站1E級(jí)電氣設(shè)備鑒定標(biāo)準(zhǔn)技術(shù)經(jīng)驗(yàn)
評(píng)論
0/150
提交評(píng)論