第5章文件管理綜述_第1頁(yè)
第5章文件管理綜述_第2頁(yè)
第5章文件管理綜述_第3頁(yè)
第5章文件管理綜述_第4頁(yè)
第5章文件管理綜述_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章文件管理5.1文件和文件系統(tǒng)5.2文件的存儲(chǔ)介質(zhì)5.3文件的存取方式5.4文件目錄5.5文件的組織5.6硬盤(pán)存儲(chǔ)空間的管理5.7基本文件操作及其使用5.8文件的安全性5.1文件和文件系統(tǒng)——文件

用戶作業(yè)中用到的源程序、目標(biāo)程序、數(shù)據(jù)、各種語(yǔ)言的編譯程序都是在邏輯上獨(dú)立的具有完整意義的信息集合。我們把邏輯上具有完整意義的信息集合稱(chēng)為文件。每個(gè)文件都要用一個(gè)名字作標(biāo)識(shí),稱(chēng)為文件名。例如,一個(gè)源程序、一個(gè)目標(biāo)程序、一批數(shù)據(jù)、一個(gè)編譯程序以及各種實(shí)用程序都可自成一個(gè)文件。每個(gè)文件可用由字符和數(shù)字組成的“字符數(shù)字串”作為文件名,如Al、BC、F2G34等。一個(gè)文件可以是一系列的二進(jìn)制數(shù)、字符或記錄,它們的含義和命名都由文件的建立者定義。一個(gè)文件被命名后,就可以被獨(dú)立處理。文件系統(tǒng)在管理文件時(shí)還要識(shí)別和區(qū)分文件的類(lèi)型。如果是文件系統(tǒng)所確認(rèn)的文件類(lèi)型,則可根據(jù)類(lèi)型對(duì)文件進(jìn)行合理的操作。通常,可把文件類(lèi)型包含在文件名中。例如,Windows操作系統(tǒng)中的文件名由兩部分組成:文件名和擴(kuò)展名,其中擴(kuò)展名有“COM”(可執(zhí)行的二進(jìn)制代碼文件)、“EXE”(可執(zhí)行的代碼文件、“BAT”(可執(zhí)行的批處理文件)和“SYS”(系統(tǒng)文件)等。文件的分類(lèi)(按用途分類(lèi))文件的分類(lèi)(按保護(hù)分類(lèi))文件的分類(lèi)(按存放時(shí)限分類(lèi))文件的分類(lèi)(按文件組織形式分類(lèi))文件的分類(lèi)(按文件的物理結(jié)構(gòu)分類(lèi))文件的分類(lèi)(按文件的邏輯存儲(chǔ)結(jié)構(gòu)分類(lèi))文件的分類(lèi)(按文件中的數(shù)據(jù)形式分類(lèi))文件的分類(lèi)(UNIX的文件類(lèi)型)5.1文件和文件系統(tǒng)——文件系統(tǒng)夾文件系統(tǒng)對(duì)文件統(tǒng)一管理,目的是方便用戶且保證文件的安全可靠。面向用戶,文件系統(tǒng)主要是實(shí)現(xiàn)“按名存取”。為此,文件系統(tǒng)應(yīng)由如下一些部分組成:

(1)文件目錄文件目錄是實(shí)現(xiàn)按名存取的一種手段。對(duì)用戶要求建立的每一個(gè)新文件都要把與該文件有關(guān)的一些屬性登記在文件目錄中。用戶要求讀一個(gè)文件時(shí),應(yīng)從文件目錄中查找指定文件是否存在,并核對(duì)是否有權(quán)使用。一個(gè)好的目錄結(jié)構(gòu)應(yīng)既能方便檢索,又能保證文件的安全。

(2)文件的組織用戶按信息的使用和處理方式來(lái)組織文件。把用戶組織好的文件保存到存儲(chǔ)介質(zhì)上的工作是由文件系統(tǒng)來(lái)完成的,這樣可以減輕用戶的負(fù)擔(dān)。文件系統(tǒng)要從系統(tǒng)效率和方便檢索的角度來(lái)考慮如何保存文件。通常文件在存儲(chǔ)介質(zhì)上可以有多種組織形式。

(3)文件存儲(chǔ)空間的管理把文件保存到存儲(chǔ)介質(zhì)上時(shí),必須要記住哪些存儲(chǔ)空間已經(jīng)被占用,哪些存儲(chǔ)空間是空閑的。文件只能保存到空閑的存儲(chǔ)空間中,否則會(huì)破壞已保存的信息。當(dāng)文件因沒(méi)有必要再保留而被刪除時(shí),該文件所占的存儲(chǔ)空間應(yīng)成為空閑空間。

5.1文件和文件系統(tǒng)——文件系統(tǒng)(4)文件操作為了保證文件系統(tǒng)能正確地存儲(chǔ)和檢索文件,系統(tǒng)規(guī)定了在一個(gè)文件上可執(zhí)行的操作,這些可執(zhí)行的操作統(tǒng)稱(chēng)為文件操作。文件系統(tǒng)提供的基本文件操作有建立文件、打開(kāi)文件、讀文件、寫(xiě)文件、關(guān)閉文件和刪除文件等。文件操作是文件系統(tǒng)提供給用戶使用文件的一組接口。用戶調(diào)用文件操作提出對(duì)文件的使用要求。(5)文件的安全措施在多道程序設(shè)計(jì)系統(tǒng)中,有些文件是可以共享的,如編譯程序、庫(kù)文件。實(shí)現(xiàn)文件共享既可節(jié)省文件的存放空間,又可減少傳送文件的時(shí)間,但必須對(duì)文件采取安全保護(hù)措施。既要防止有意或無(wú)意地破壞文件,又要不讓他人剽竊文件。5.2文件的存儲(chǔ)介質(zhì)用來(lái)記錄信息的磁帶、硬磁盤(pán)組、軟磁盤(pán)片、光盤(pán)、卡片等稱(chēng)為存儲(chǔ)介質(zhì)。目前大量使用的文件存儲(chǔ)介質(zhì)是磁盤(pán)和磁帶。

卷和塊:

存儲(chǔ)介質(zhì)的物理單位為“卷”,如一盤(pán)磁帶、一張軟盤(pán)、一個(gè)磁盤(pán)組都可以稱(chēng)為一個(gè)卷。根據(jù)卷中的文件數(shù),可分為單文件卷、多文件卷、多卷文件和多卷多文件。存儲(chǔ)介質(zhì)上由連續(xù)的信息所組成的區(qū)域稱(chēng)為塊,塊是存儲(chǔ)設(shè)備與主存儲(chǔ)器之間進(jìn)行信息交換的物理單位。一般情況下,塊的長(zhǎng)度在32~4096B之間。在MS_DOS和UNIX系統(tǒng)中,磁盤(pán)塊的長(zhǎng)度均為512B。如圖為磁帶上塊的劃分示意。5.2文件的存儲(chǔ)介質(zhì)

磁盤(pán)機(jī)是一種按地址直接存取的存儲(chǔ)設(shè)備。它把信息記錄在盤(pán)片上。每個(gè)盤(pán)片有正反兩面。若干個(gè)盤(pán)片可組成一個(gè)盤(pán)組。盤(pán)組中的盤(pán)片都被固定在一根軸上,沿一個(gè)方向高速旋轉(zhuǎn)。每個(gè)盤(pán)面有一個(gè)讀寫(xiě)磁頭。所有的讀寫(xiě)磁頭都被固定在唯一的移動(dòng)臂上同時(shí)移動(dòng)。把所有的讀寫(xiě)磁頭按從上到下的次序進(jìn)行編號(hào),稱(chēng)其為磁頭號(hào)。在磁頭位置下的各個(gè)盤(pán)面上的磁道在同一個(gè)圓柱面上,我們稱(chēng)這些磁道組成了一個(gè)柱面。每個(gè)盤(pán)面上有許多磁道,按由外向里的順序編號(hào)。移動(dòng)臂可移動(dòng)讀寫(xiě)磁頭訪問(wèn)所有的磁道。當(dāng)移動(dòng)臂移到某一位置時(shí),所有的讀寫(xiě)磁頭都在同一柱面上,我們把盤(pán)面上磁道的編號(hào)作為柱面號(hào)。每個(gè)盤(pán)面被劃分成若干相等的扇區(qū),每個(gè)扇區(qū)中的各個(gè)磁道都是圖5—12盤(pán)組結(jié)構(gòu)示意可存放相等字節(jié)數(shù)的一個(gè)塊,沿與磁盤(pán)旋轉(zhuǎn)相反的方向給各扇區(qū)編號(hào),稱(chēng)為扇區(qū)號(hào)。所以,磁盤(pán)存儲(chǔ)空間中的每一塊的位置可以由三個(gè)參數(shù)決定,它們是柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào)。每個(gè)參數(shù)均從“O”開(kāi)始編號(hào)。為了減少移動(dòng)臂移動(dòng)花費(fèi)的時(shí)間,存放信息時(shí),不是按盤(pán)面上的磁道順序存放滿一個(gè)盤(pán)面后再存放到下一個(gè)盤(pán)面上,而是按柱面存放,同一柱面上的磁道放滿后,再放到下一個(gè)柱面上。存取信息時(shí)按給定的柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào),先由磁盤(pán)機(jī)根據(jù)柱面號(hào)控制移動(dòng)臂做機(jī)械的橫向運(yùn)動(dòng),帶動(dòng)所有的讀寫(xiě)磁頭到達(dá)指定柱面,由于每次只允許一個(gè)磁頭進(jìn)行讀或?qū)?,所以必須再按磁頭號(hào)確定信息所在的盤(pán)面,然后等到待訪問(wèn)的扇區(qū)旋轉(zhuǎn)到讀寫(xiě)磁頭下時(shí),由指定的磁頭進(jìn)行存取。5.2文件的存儲(chǔ)介質(zhì)5.3文件的存取方式

從對(duì)文件信息的存取次序考慮,存取方式可以分成兩種:順序存取和隨機(jī)存取。

順序存取是指對(duì)文件中的信息按順序依次進(jìn)行讀寫(xiě)的存取方式。

隨機(jī)存取是指對(duì)文件按任意的次序隨機(jī)地讀寫(xiě)的存取方式。采用哪種存取方式,主要取決于兩個(gè)方面的因素:

(1)與文件的使用方式有關(guān)文件的性質(zhì)決定了文件的使用,也就決定了存取方式的選擇。例如,一個(gè)源程序文件,它由一連串的順序字符組成,編譯程序在對(duì)源程序進(jìn)行編譯時(shí),必須按字符順序進(jìn)行存取。又如,要對(duì)一個(gè)文件進(jìn)行編輯時(shí),也總是按照順序存取的方式進(jìn)行。但是對(duì)于數(shù)據(jù)庫(kù)的訪問(wèn),經(jīng)常要采取隨機(jī)存取方式。例如,對(duì)于職工的工資文件、學(xué)生成績(jī)檔案文件等,應(yīng)允許方便地查找任何一個(gè)職工的工資情況和任何一個(gè)學(xué)生的學(xué)習(xí)成績(jī)。于是應(yīng)選擇隨機(jī)存取方式。

5.3文件的存取方式(2)與存儲(chǔ)介質(zhì)的特性有關(guān)目前常用的存儲(chǔ)設(shè)備是磁帶機(jī)和磁盤(pán)機(jī)。磁帶機(jī)是一種適合順序存取的存儲(chǔ)設(shè)備。它總是從磁頭的當(dāng)前位置開(kāi)始讀寫(xiě)磁帶上的信息。當(dāng)磁頭讀了第i塊的信息后,走過(guò)其后的間隙就到達(dá)了第i+1塊的位置。當(dāng)磁帶機(jī)繼續(xù)工作時(shí),一定是讀寫(xiě)第H一1塊的信息。所以對(duì)存儲(chǔ)在磁帶上的文件,一般均采用順序存取的方式。如果想隨機(jī)地讀磁帶上的某一塊信息,則必須讓磁頭先定位到磁帶的始端,然后才能正確定位到指定塊的位置。例如,為了讀第100塊上的信息,就必須讓磁頭從頭開(kāi)始走過(guò)99個(gè)間隙,才能讀到第100塊上的信息。這樣花費(fèi)在定位上的時(shí)間就非常多,影響系統(tǒng)效率。因此對(duì)組織在磁帶上的文件很少采用隨機(jī)存取方式。磁盤(pán)機(jī)是一種可按指定的塊地址進(jìn)行信息存取的設(shè)備。磁盤(pán)機(jī)上的每一個(gè)塊都有確定的位置和一個(gè)唯一的地址。磁盤(pán)機(jī)能根據(jù)給定的地址帶動(dòng)讀寫(xiě)磁頭到達(dá)指定的柱面后,讓搟定的磁頭存取指定扇區(qū)上的信息。所以磁盤(pán)機(jī)能隨機(jī)讀寫(xiě)磁盤(pán)機(jī)上任何一塊的信息,具有隨機(jī)存取功能。于是對(duì)存儲(chǔ)在磁盤(pán)上的文件,既可采取順序存取方式,又可采用隨機(jī)存取方式。但是在建立文件時(shí),應(yīng)定義好存取方式,使用文件時(shí)必須與定義好的存取方式一致。5.4文件目錄文件目錄用于檢索文件的,它是文件系統(tǒng)實(shí)現(xiàn)按名存取的重要手段。文件目錄由若干目錄項(xiàng)組成,每一個(gè)目錄項(xiàng)記錄一個(gè)文件的有關(guān)的信息。一般來(lái)說(shuō),目錄項(xiàng)應(yīng)包含如下內(nèi)容:(1)有關(guān)文件存取控制的信息例如,用戶名,文件名,文件的類(lèi)型,文件屬性(可讀寫(xiě)、只能讀、只可執(zhí)行等)。(2)有關(guān)文件結(jié)構(gòu)的信息

例如,文件的邏輯結(jié)構(gòu),文件的物理結(jié)構(gòu),記錄個(gè)數(shù),文件在存儲(chǔ)介質(zhì)上位置。(3)有關(guān)文件管理的信息

例如,文件的建立日期,文件被修改的日期,文件保留期限,記賬信息。有了文件目錄后,當(dāng)用戶要求使用某個(gè)文件時(shí),文件系統(tǒng)順序查找目錄項(xiàng)并比較文件名,就可找到指定文件的目錄項(xiàng),根據(jù)該目錄項(xiàng)中給出的有關(guān)信息可對(duì)使用權(quán)限等工作進(jìn)行核對(duì),并讀出文件供用戶使用。因此,文件目錄的組織和管理應(yīng)便于檢索和防止沖突。

5.4文件目錄——一級(jí)目錄一級(jí)目錄是最簡(jiǎn)單的文件目錄結(jié)構(gòu)。這種目錄結(jié)構(gòu)是把一卷存儲(chǔ)介質(zhì)上的所有文件都登記在一個(gè)文件目錄中。一級(jí)目錄結(jié)構(gòu)簡(jiǎn)單,管理方便。每當(dāng)建立一個(gè)新文件時(shí),就在文件目錄中增加一個(gè)目錄項(xiàng)。每當(dāng)刪去一個(gè)文件時(shí),就在文件目錄中抹去該文件的目錄項(xiàng)。一級(jí)目錄結(jié)構(gòu)要求在文件目錄中登記的各個(gè)文件都有不同的文件名。如果有重名,則在進(jìn)行按名存取時(shí)就可能出錯(cuò)。對(duì)一個(gè)用戶來(lái)說(shuō),當(dāng)要為一個(gè)新文件命名時(shí),必須記住原有文件的文件名,對(duì)自己的所有文件都應(yīng)定義成不同的文件名。一個(gè)用戶是可以做到將自己的所有文件都定義成不同的名字,但在多道程序設(shè)計(jì)系統(tǒng)中,若要求所有的用戶定義的文件名都不相同是很困難的。所以一級(jí)目錄結(jié)構(gòu)一般只適用于微型計(jì)算機(jī)的單用戶系統(tǒng)。5.4文件目錄——二級(jí)目錄結(jié)構(gòu)

一級(jí)目錄的主要問(wèn)題是:當(dāng)不同的用戶定義了相同的文件名時(shí),會(huì)引起文件的混淆。解決重名問(wèn)題的一種辦法是采用二級(jí)目錄結(jié)構(gòu)或多級(jí)目錄結(jié)構(gòu)。二級(jí)目錄結(jié)構(gòu)是為每個(gè)用戶設(shè)置一張目錄表,稱(chēng)為用戶文件目錄。用戶文件目錄為本用戶的每一個(gè)文件設(shè)置一個(gè)目錄項(xiàng)。再用一張總的目錄表來(lái)登記各個(gè)用戶的目錄表存放地址,這張總的目錄表稱(chēng)為主文件目錄。當(dāng)用戶需要訪問(wèn)某個(gè)文件時(shí),系統(tǒng)根據(jù)用戶名從主文件目錄中找出該用戶的文件目錄的存放地址,然后根據(jù)該地址找到該用戶的文件目錄,再按指定的文件名查這張用戶文件目錄表,從用戶文件目錄表中找出對(duì)應(yīng)的目錄項(xiàng)就可找到文件存放的物理位置。5.4文件目錄——二級(jí)目錄結(jié)構(gòu)示意圖5.4文件目錄——樹(shù)型目錄結(jié)構(gòu)

有的文件系統(tǒng)允許用戶為自己的不同類(lèi)型的文件建立子目錄,再把子目錄登記在用戶文件目錄中。同樣地,又可把子目錄中的文件細(xì)分后建立再下一級(jí)的目錄。這樣就逐漸形成了多層次的目錄,稱(chēng)為多級(jí)目錄結(jié)構(gòu)。在UNIX系統(tǒng)和Windows系統(tǒng)中都采用了多級(jí)目錄結(jié)構(gòu)。這種目錄結(jié)構(gòu)像一棵倒置的有根樹(shù),故也稱(chēng)為樹(shù)形目錄結(jié)構(gòu)。在樹(shù)形目錄結(jié)構(gòu)中,每一個(gè)節(jié)點(diǎn)都是一個(gè)目錄或一個(gè)文件,主文件目錄是樹(shù)根,常常稱(chēng)它為根目錄。允許用戶在根目錄下建立子目錄和組織文件,子目錄可以是多層次的,就像是樹(shù)枝。最末一個(gè)節(jié)點(diǎn)是文件就像是樹(shù)葉。

在樹(shù)形目錄結(jié)構(gòu)中,根目錄或子目錄中的目錄項(xiàng)可能指向文件,也可能指向下一級(jí)子目錄。由于每個(gè)目錄項(xiàng)都有相同的形式,那么怎樣才能區(qū)分出它指向的是文件還是子目錄呢?這可以在目錄項(xiàng)中設(shè)置一個(gè)二進(jìn)制位,用該位的值O或1來(lái)區(qū)分所指向的是文件還是子目錄。5.4文件目錄——樹(shù)型目錄結(jié)構(gòu)5.4文件目錄——樹(shù)型目錄結(jié)構(gòu)

在樹(shù)形目錄結(jié)構(gòu)中,每一個(gè)文件都有一個(gè)從根到葉的路徑。要訪問(wèn)一個(gè)文件時(shí),必須指出文件所在的路徑名。路徑名可以由從根目錄開(kāi)始到該文件的通路上所有各級(jí)子目錄名及該文件名順序拼起來(lái)組成,各子目錄名與文件名之間用“\”隔開(kāi),稱(chēng)為絕對(duì)路徑。例如,在上圖結(jié)構(gòu)中,訪問(wèn)文件f1和f7時(shí)的絕對(duì)路徑名分別為:\A\A1\f1和\C\C1\C12\f7。但每次都從根目錄開(kāi)始搜索文件需耗費(fèi)很多時(shí)間。事實(shí)上,用戶在一段時(shí)間內(nèi)會(huì)經(jīng)常訪問(wèn)一個(gè)子目錄下的文件,因此在采用樹(shù)形目錄結(jié)構(gòu)的系統(tǒng)中引入了當(dāng)前目錄的概念。每個(gè)用戶都可把某級(jí)目錄設(shè)置為當(dāng)前工作目錄。當(dāng)要訪問(wèn)文件時(shí),就可從當(dāng)前目錄開(kāi)始設(shè)置路徑,稱(chēng)為相對(duì)路徑。用相對(duì)路徑可縮短搜索路徑,提高搜索速度。例如,當(dāng)前目錄是C1,則要訪問(wèn)文件f7時(shí)可用如下的相對(duì)路徑:C1\C12\f7

用戶總是使用指定的路徑名請(qǐng)求存取文件。如果文件就在當(dāng)前目錄中,則存取文件時(shí)只需要指出文件名,文件系統(tǒng)就在當(dāng)前目錄中尋找該文件。如果文件不在當(dāng)前目錄中,但在當(dāng)前目錄的下級(jí)目錄中,則可用相對(duì)路徑指定文件,文件系統(tǒng)就從當(dāng)前目錄開(kāi)始沿著指定的路徑名檢索各級(jí)目錄,從而確定文件所在的物理位置。5.4文件目錄——文件目錄的管理

文件系統(tǒng)要管理許多用戶的大量文件,因此系統(tǒng)中的文件目錄也很龐大。如果把文件目錄都存放在主存儲(chǔ)器中,則會(huì)占去大量的主存空間。事實(shí)上,任何一個(gè)用戶在一段時(shí)間里只使用少數(shù)文件,故可以只把當(dāng)前正在使用的文件目錄存放在主存儲(chǔ)器中。由于文件目錄也是在邏輯上有完整意義的信息集合,因此為了對(duì)文件目錄進(jìn)行管理,通常把文件目錄也作為文件保存在存儲(chǔ)介質(zhì)上。由文件目錄組成的文件稱(chēng)為目錄文件。目錄文件可以像其他文件一樣進(jìn)行讀寫(xiě)等處理。當(dāng)需要時(shí)可把目錄文件中的有關(guān)文件目錄讀到主存儲(chǔ)器進(jìn)行檢索或修改,也可把主存儲(chǔ)器中的文件目錄寫(xiě)回到存儲(chǔ)介質(zhì)上的目錄文件中。所以文件系統(tǒng)可以根據(jù)用戶的要求從目錄文件中找出用戶的當(dāng)前目錄,把當(dāng)前目錄讀入主存儲(chǔ)器。這樣既不占用太多的主存空間,又可減少搜索目錄的時(shí)間。5.5文件的組織

文件的組織是指文件的構(gòu)造方式。由用戶構(gòu)造的文件稱(chēng)為文件的邏輯結(jié)構(gòu)(或稱(chēng)邏輯文件),存儲(chǔ)介質(zhì)上的文件構(gòu)造方式稱(chēng)為文件的物理結(jié)構(gòu)(或稱(chēng)物理文件)。用戶按邏輯結(jié)構(gòu)使用文件,文件系統(tǒng)按物理結(jié)構(gòu)管理文件。當(dāng)用戶請(qǐng)求讀寫(xiě)文件時(shí),文件系統(tǒng)必須實(shí)現(xiàn)文件的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)之間的轉(zhuǎn)換。5.5文件的組織——文件的邏輯結(jié)構(gòu)

(1)流式文件流式文件是指用戶對(duì)文件內(nèi)的信息不再劃分可獨(dú)立的單位,整個(gè)文件是由依次的一串信息組成。

(2)記錄式文件記錄式文件是由若干個(gè)邏輯記錄組成的文件。邏輯記錄是用戶對(duì)文件內(nèi)的信息按邏輯上獨(dú)立的含義再劃分后的信息單位,簡(jiǎn)稱(chēng)記錄。一個(gè)邏輯文件由若干個(gè)邏輯記錄組成,每個(gè)邏輯記錄又由若干個(gè)數(shù)據(jù)項(xiàng)組成。但在記錄式文件中,邏輯記錄(而不是數(shù)據(jù)項(xiàng))是文件內(nèi)可以獨(dú)立存取的最小信息單位。為正確和快速地存取邏輯記錄,可把記錄中的數(shù)據(jù)項(xiàng)設(shè)置為主鍵和次鍵,能惟一地標(biāo)志某個(gè)邏輯記錄的數(shù)據(jù)項(xiàng)稱(chēng)為記錄的主鍵,其他數(shù)據(jù)項(xiàng)都稱(chēng)做次鍵。5.5文件的組織——文件的存儲(chǔ)結(jié)構(gòu)

文件的物理結(jié)構(gòu)和存儲(chǔ)設(shè)備的類(lèi)型與用戶采用的存取方式有關(guān)。把存放在存儲(chǔ)介質(zhì)上的文件稱(chēng)為物理文件。目前,用戶主要采用磁盤(pán)與磁帶存取文件。因此,我們將專(zhuān)門(mén)討論記錄文件在磁帶和磁盤(pán)上的組織結(jié)構(gòu)。(1)磁帶上文件的組織形式5.5文件的組織——磁盤(pán)文件的組織(1)順序結(jié)構(gòu)順序結(jié)構(gòu)把一個(gè)文件邏輯上連續(xù)的信息存放到磁盤(pán)上相鄰的塊中,或者說(shuō),順序結(jié)構(gòu)是一種邏輯記錄順序與磁盤(pán)塊的順序相一致的文件結(jié)構(gòu)。具有順序結(jié)構(gòu)的文件稱(chēng)為順序文件或連續(xù)文件。采用順序結(jié)構(gòu)的文件順序存取時(shí)速度比較快,但不適用于隨機(jī)存取。采用順序結(jié)構(gòu)時(shí)存在一些問(wèn)題:磁盤(pán)存儲(chǔ)空間利用率不高,對(duì)輸出到磁盤(pán)上的文件很難估計(jì)需要分配多少個(gè)連續(xù)的磁盤(pán)塊,且影響文件的擴(kuò)展。5.5文件的組織——磁盤(pán)文件的組織(2)鏈接結(jié)構(gòu)把順序的邏輯記錄存放在不連續(xù)的磁盤(pán)塊上,并用指針把這些磁盤(pán)塊按邏輯記錄的順序鏈接起來(lái),便形成文件的鏈接結(jié)構(gòu)。具有這種結(jié)構(gòu)的文件稱(chēng)為鏈接文件或串聯(lián)文件。鏈接結(jié)構(gòu)解決了順序結(jié)構(gòu)中存在的問(wèn)題。采用順序存取時(shí),鏈接結(jié)構(gòu)的效率很高,但采用隨機(jī)存取則效率很低。

鏈接結(jié)構(gòu)的特點(diǎn)是每個(gè)磁盤(pán)塊中必須留出若干單元用來(lái)存放磁盤(pán)塊之間的鏈接指針。文件信息占用的第一個(gè)磁盤(pán)塊的塊號(hào)登記在文件目錄中,鏈接結(jié)構(gòu)中每個(gè)磁盤(pán)塊中的鏈接指針指出了文件信息存放的下一個(gè)磁盤(pán)塊的塊號(hào)。通常,當(dāng)某塊中鏈接指針為“O”時(shí),表示文件信息至本塊結(jié)束。圖5—8指出了文件的鏈接結(jié)構(gòu)。5.5文件的組織——磁盤(pán)文件的組織(鏈接結(jié)構(gòu))5.5文件的組織——磁盤(pán)文件的組織(鏈接結(jié)構(gòu))5.5文件的組織——磁盤(pán)文件的組織(索引結(jié)構(gòu))

索引結(jié)構(gòu)為每個(gè)文件建立一張索引表,并把指示每個(gè)邏輯記錄存放位置的指針集中在索引表中。采用索引結(jié)構(gòu)的文件稱(chēng)為索引文件。索引結(jié)構(gòu)既適合順序存取記錄,又可方便地按任意次序隨機(jī)地存取記錄,且容易實(shí)現(xiàn)記錄的增、刪和插入。但是,采用索引結(jié)構(gòu)將會(huì)增加索引表占用的空間和讀寫(xiě)索引表的時(shí)間。5.5文件的組織5.5文件的組織——記錄的成組與分解邏輯記錄的大小往往與存儲(chǔ)介質(zhì)分塊的大小不一致,因此,當(dāng)邏輯記錄比塊長(zhǎng)小得多時(shí),一個(gè)塊中僅放一個(gè)記錄就會(huì)造成空間的浪費(fèi),為此可采用記錄成組和分解技術(shù)解決這個(gè)問(wèn)題。

1.記錄的成組把若干個(gè)邏輯記錄合成一組存人一個(gè)塊中的工作稱(chēng)為記錄的成組,每個(gè)塊中的邏輯記錄個(gè)數(shù)稱(chēng)為“塊因子”。進(jìn)行成組操作時(shí)必須使用主存緩沖區(qū),緩沖區(qū)的長(zhǎng)度等于最大邏輯記錄長(zhǎng)度乘以成組的塊因子。記錄的成組不僅可以提高存儲(chǔ)空間的利用率,而且還可以減少啟動(dòng)外設(shè)的次數(shù),提高系統(tǒng)的工作效率。在記錄式文件中,若每個(gè)記錄的長(zhǎng)度一致,則這種記錄格式就稱(chēng)為定長(zhǎng)記錄格式;若記錄長(zhǎng)度不相同,則稱(chēng)為變長(zhǎng)記錄格式。在實(shí)現(xiàn)記錄成組時(shí),需要在文件目錄或記錄塊中說(shuō)明記錄的長(zhǎng)度和塊因子信息。

2.記錄的分解從一組邏輯記錄中把一個(gè)邏輯記錄分離出來(lái)的操作稱(chēng)為記錄的分解。記錄的成組和分解都要付出一定的代價(jià),即要設(shè)立主存緩沖區(qū),并在操作系統(tǒng)中增加成組和分解操作的功能。5.5文件的組織——記錄的成組與分解示例

假設(shè)磁帶的記錄密度為1600bpi(字節(jié)/英寸),每個(gè)邏輯記錄長(zhǎng)為200B,塊與塊之間的間隔為O.5英寸,請(qǐng)回答下列問(wèn)題:①不采用成組操作時(shí),磁帶空間的利用率是多少?②采用塊因子6作成組操作時(shí),磁帶空間的利用率為百分之幾?③為了使磁帶空間的利用率大于80%,采用記錄成組時(shí)其塊因子至少為多少?

①間隔=1600×0.5=800(字符)200÷(200+800)=20%這說(shuō)明不采用成組操作時(shí)磁帶空間的利用率為20%。②(200×6)÷(200×6+800)=60%采用成組操作時(shí)磁帶空間的利用率為60%。③設(shè)塊因子為X,則200X÷(200X+800)>O.8250X>200X+80050X>800

X>16說(shuō)明塊因子至少為17。5.6磁盤(pán)空間的存儲(chǔ)管理

文件系統(tǒng)對(duì)磁盤(pán)空間進(jìn)行管理,當(dāng)用戶存儲(chǔ)文件時(shí)就要為文件分配空間,當(dāng)用戶刪除文件時(shí)又要回收文件占用的存儲(chǔ)空間。實(shí)現(xiàn)存儲(chǔ)空間的分配和回收取決于空閑塊的管理方法。常用的管理方法有位示圖、空閑塊表和空閑塊鏈。

1、位示圖位示圖中的每一位與一個(gè)磁盤(pán)塊相對(duì)應(yīng),指示磁盤(pán)空間的使用情況。一般情況下,位示圖中的“1”表示相應(yīng)塊已被占用;“0”表示對(duì)應(yīng)塊是空閑塊。磁盤(pán)空間的塊數(shù)=每盤(pán)面扇區(qū)數(shù)×每柱面磁道數(shù)×柱面數(shù)位示圖常用若干字組成,假設(shè)字長(zhǎng)為n位,由m個(gè)字組成位示圖,則:

m×n=磁盤(pán)空間的塊數(shù)

5.6磁盤(pán)空間的存儲(chǔ)管理——位示圖法

假定一個(gè)盤(pán)組共有l(wèi)00個(gè)柱面,編號(hào)為O~99。每個(gè)柱面上有8個(gè)磁道,編號(hào)為0~7。每個(gè)盤(pán)面分成4個(gè)扇區(qū),編號(hào)為O~3。則整個(gè)磁盤(pán)空間共有4×8×100=3200個(gè)存儲(chǔ)塊。如果用字長(zhǎng)為32位的字來(lái)構(gòu)造位示圖,共需100個(gè)字,如圖所示:第i個(gè)字的第j位對(duì)應(yīng)的塊號(hào)為:塊號(hào)=i×32(字長(zhǎng))+j5.6磁盤(pán)空間的存儲(chǔ)管理——位示圖法確定空閑塊地址的通用公式為:

塊號(hào)=字號(hào)×字長(zhǎng)+位號(hào)柱面號(hào)=[塊號(hào)/柱面上的塊數(shù)]

磁頭號(hào)=[(塊號(hào)mod柱面上的塊數(shù))/盤(pán)面上的扇區(qū)數(shù)]

扇區(qū)號(hào)=(塊號(hào)mod柱面上的塊數(shù))mod盤(pán)面上的扇區(qū)數(shù)歸還一塊時(shí),尋找位示圖中位置的通用公式為:塊號(hào)=柱面號(hào)×柱面上的塊數(shù)+磁頭號(hào)×盤(pán)面上的扇區(qū)數(shù)+扇區(qū)號(hào)字號(hào)=[塊號(hào)/字長(zhǎng)]

位號(hào)=塊號(hào)mod字長(zhǎng)5.6磁盤(pán)空間的存儲(chǔ)管理——位示圖法示例假設(shè)一個(gè)磁盤(pán)組共有100個(gè)柱面,每柱面有8個(gè)磁道,每個(gè)盤(pán)面被分成4個(gè)扇區(qū)。若邏輯記錄的大小與扇區(qū)大小一致,柱面、磁道和扇區(qū)的編號(hào)均從“O”開(kāi)始,現(xiàn)用字長(zhǎng)為16位的200個(gè)字(第0字~第199字)組成位示圖來(lái)指示磁盤(pán)空間的使用情況。請(qǐng)問(wèn):①文件系統(tǒng)發(fā)現(xiàn)位示圖中第15字第7位為O而準(zhǔn)備分配給某一記錄時(shí),該記錄會(huì)存放到磁盤(pán)的哪一塊上?此塊的物理位置(柱面號(hào)、磁頭號(hào)和扇區(qū)號(hào))如何?②刪除文件時(shí)要?dú)w還存儲(chǔ)空間,第56柱面第6磁道第3扇區(qū)的塊就變成了空閑塊,此時(shí),位示圖中第幾字第幾位應(yīng)由1改為O?5.6磁盤(pán)空間的存儲(chǔ)管理——位示圖法示例5.6磁盤(pán)空間的存儲(chǔ)管理——空閑塊表法系統(tǒng)為每個(gè)磁盤(pán)建立一張空閑塊表,表中每個(gè)登記項(xiàng)記錄一組連續(xù)空閑塊的首塊號(hào)和塊數(shù)。空閑塊數(shù)為“0”的登記項(xiàng)為無(wú)效登記項(xiàng)。這種管理方式適合采用順序結(jié)構(gòu)的文件。存儲(chǔ)文件時(shí)從空閑塊表中找一組連續(xù)的空閑塊,刪除文件時(shí)把歸還的一組連續(xù)塊登記到空閑塊表中??臻e塊的分配和回收算法類(lèi)似主存儲(chǔ)器的可變分區(qū)管理方式中采用的最先適應(yīng)、最優(yōu)適應(yīng)和最壞適應(yīng)算法。同樣地,對(duì)分配和歸還的塊要進(jìn)行塊號(hào)與柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào)之間的換算。5.6磁盤(pán)空間的存儲(chǔ)管理——空閑塊鏈法

把所有的磁盤(pán)空閑塊用指針連接在一起構(gòu)成空閑塊鏈。分配空間時(shí)從鏈中取出空閑塊,歸還空間時(shí)把歸還塊加入到鏈中。這種管理方式不需要外加專(zhuān)門(mén)記錄空閑塊分配情況的表格。

對(duì)磁盤(pán)空閑塊可用單塊連接法連接起來(lái)。每一個(gè)空閑塊中都設(shè)置一個(gè)指向另一個(gè)空閑塊的指針,最后一個(gè)空閑塊中的指針為“0”。這樣,所有空閑塊就構(gòu)成了一個(gè)空閑塊鏈。系統(tǒng)設(shè)置一個(gè)鏈?zhǔn)字羔?,指向鏈中的第一個(gè)空閑塊。分配一塊時(shí),根據(jù)鏈?zhǔn)字羔槹焰滎^的一塊分配給申請(qǐng)者,并修改鏈?zhǔn)字羔槪蛊渲赶蚝罄^的空閑塊。歸還一塊時(shí),把歸還塊加入到鏈頭,并使鏈?zhǔn)字羔樦赶驓w還塊。這種方法效率較低,每分配一塊時(shí)都要啟動(dòng)磁盤(pán)讀出空閑塊后才能取得其中的指針,把該指針作為鏈?zhǔn)字羔?。每歸還一塊時(shí)也要啟動(dòng)磁盤(pán)把原鏈?zhǔn)字羔槍?xiě)到歸還塊中,新鏈?zhǔn)字羔樦赶驓w還塊。為了分配或回收一塊,增加了啟動(dòng)磁盤(pán)進(jìn)行讀寫(xiě)的工作,這是非常麻煩和費(fèi)時(shí)的。作為改進(jìn),可把空閑塊分成若干組,把指向一組中各空閑塊的指針集中在一起,這樣既可方便查找,又可減少為修改指針而啟動(dòng)磁盤(pán)的次數(shù)。UNIX系統(tǒng)就是采用空閑塊成組連接的方法。5.7基本文件操作及其使用——基本操作用戶可以通過(guò)訪管指令調(diào)用文件操作功能模塊,實(shí)現(xiàn)對(duì)文件的存取要求。(1)建立文件在用戶把一個(gè)新文件存放到存儲(chǔ)介質(zhì)上之前,首先要調(diào)用文件系統(tǒng)的“建立文件”操作。(2)打開(kāi)文件用戶要求使用已經(jīng)存放在存儲(chǔ)介質(zhì)上的文件時(shí),首先要調(diào)用文件系統(tǒng)的打開(kāi)文件操作,該操作將在系統(tǒng)設(shè)置的“已打開(kāi)文件表

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論