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

下載本文檔

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

文檔簡介

1、第第5 5章章 文件管理文件管理5.1 文件和文件系統(tǒng)5.2 文件的存儲(chǔ)介質(zhì)5.3 文件的存取方式5.4 文件目錄5.5 文件的組織5.6 硬盤存儲(chǔ)空間的管理5.7 基本文件操作及其使用5.8 文件的安全性5.1 5.1 文件和文件系統(tǒng)文件和文件系統(tǒng)文件文件 用戶作業(yè)中用到的源程序、目標(biāo)程序、數(shù)據(jù)、各種語言的編譯程序都是在邏輯上獨(dú)立的具有完整意義的信息集合。我們把邏輯上具有完整意義的信息集合稱為文件。每個(gè)文件都要用一個(gè)名字作標(biāo)識(shí),稱為文件名。例如,一個(gè)源程序、一個(gè)目標(biāo)程序、一批數(shù)據(jù)、一個(gè)編譯程序以及各種實(shí)用程序都可自成一個(gè)文件。每個(gè)文件可用由字符和數(shù)字組成的“字符數(shù)字串”作為文件名,如Al、B

2、C、F2G34等。 一個(gè)文件可以是一系列的二進(jìn)制數(shù)、字符或記錄,它們的含義和命名都由文件的建立者定義。一個(gè)文件被命名后,就可以被獨(dú)立處理。文件系統(tǒng)在管理文件時(shí)還要識(shí)別和區(qū)分文件的類型。如果是文件系統(tǒng)所確認(rèn)的文件類型,則可根據(jù)類型對(duì)文件進(jìn)行合理的操作。通常,可把文件類型包含在文件名中。例如,Windows操作系統(tǒng)中的文件名由兩部分組成:文件名和擴(kuò)展名,其中擴(kuò)展名有“COM”(可執(zhí)行的二進(jìn)制代碼文件)、“EXE”(可執(zhí)行的代碼文件、“BAT”(可執(zhí)行的批處理文件)和“SYS”(系統(tǒng)文件)等。文件的分類文件的分類( (按用途分類按用途分類) )文件的分類文件的分類( (按保護(hù)分類按保護(hù)分類) )文件

3、的分類文件的分類( (按存放時(shí)限分類按存放時(shí)限分類) )文件的分類文件的分類( (按文件組織形式分類按文件組織形式分類) )文件的分類文件的分類( (按文件的物理結(jié)構(gòu)分類按文件的物理結(jié)構(gòu)分類) )文件的分類文件的分類( (按文件的邏輯存儲(chǔ)結(jié)構(gòu)分類按文件的邏輯存儲(chǔ)結(jié)構(gòu)分類) )文件的分類文件的分類( (按文件中的數(shù)據(jù)形式分類按文件中的數(shù)據(jù)形式分類) )文件的分類文件的分類( (UNIXUNIX的文件類型的文件類型) )5.1 5.1 文件和文件系統(tǒng)文件和文件系統(tǒng)文件系統(tǒng)文件系統(tǒng) 夾 文件系統(tǒng)對(duì)文件統(tǒng)一管理,目的是方便用戶且保證文件的安全可靠。面向用戶,文件系統(tǒng)主要是實(shí)現(xiàn)“按名存取”。為此,文件系

4、統(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)文件的組織 用戶按信息的使用和處理方式來組織文件。把用戶組織好的文件保存到存儲(chǔ)介質(zhì)上的工作是由文件系統(tǒng)來完成的,這樣可以減輕用戶的負(fù)擔(dān)。文件系統(tǒng)要從系統(tǒng)效率和方便檢索的角度來考慮如何保存文件。通常文件在存儲(chǔ)介質(zhì)上可以有多種組織形式。 (3)文件存儲(chǔ)空間的管理 把文件保存到存儲(chǔ)介質(zhì)上時(shí),必須要記住哪些存儲(chǔ)空間已經(jīng)

5、被占用,哪些存儲(chǔ)空間是空閑的。文件只能保存到空閑的存儲(chǔ)空間中,否則會(huì)破壞已保存的信息。當(dāng)文件因沒有必要再保留而被刪除時(shí),該文件所占的存儲(chǔ)空間應(yīng)成為空閑空間。 5.1 5.1 文件和文件系統(tǒng)文件和文件系統(tǒng)文件系統(tǒng)文件系統(tǒng)(4)文件操作 為了保證文件系統(tǒng)能正確地存儲(chǔ)和檢索文件,系統(tǒng)規(guī)定了在一個(gè)文件上可執(zhí)行的操作,這些可執(zhí)行的操作統(tǒng)稱為文件操作。文件系統(tǒng)提供的基本文件操作有建立文件、打開文件、讀文件、寫文件、關(guān)閉文件和刪除文件等。文件操作是文件系統(tǒng)提供給用戶使用文件的一組接口。用戶調(diào)用文件操作提出對(duì)文件的使用要求。(5)文件的安全措施 在多道程序設(shè)計(jì)系統(tǒng)中,有些文件是可以共享的,如編譯程序、庫文件。

6、實(shí)現(xiàn)文件共享既可節(jié)省文件的存放空間,又可減少傳送文件的時(shí)間,但必須對(duì)文件采取安全保護(hù)措施。既要防止有意或無意地破壞文件,又要不讓他人剽竊文件。5.2 5.2 文件的存儲(chǔ)介質(zhì)文件的存儲(chǔ)介質(zhì) 用來記錄信息的磁帶、硬磁盤組、軟磁盤片、光盤、卡片等稱為存儲(chǔ)介質(zhì)。目前大量使用的文件存儲(chǔ)介質(zhì)是磁盤和磁帶。 卷和塊: 存儲(chǔ)介質(zhì)的物理單位為“卷”,如一盤磁帶、一張軟盤、一個(gè)磁盤組都可以稱為一個(gè)卷。 根據(jù)卷中的文件數(shù),可分為單文件卷、多文件卷、多卷文件和多卷多文件。 存儲(chǔ)介質(zhì)上由連續(xù)的信息所組成的區(qū)域稱為塊,塊是存儲(chǔ)設(shè)備與主存儲(chǔ)器之間進(jìn)行信息交換的物理單位。 一般情況下,塊的長度在324096B之間。在MS_D

7、OS和UNIX系統(tǒng)中,磁盤塊的長度均為512B。如圖為磁帶上塊的劃分示意。5.2 5.2 文件的存儲(chǔ)介質(zhì)文件的存儲(chǔ)介質(zhì) 磁盤機(jī)是一種按地址直接存取的存儲(chǔ)設(shè)備。它把信息記錄在盤片上。每個(gè)盤片有正反兩面。若干個(gè)盤片可組成一個(gè)盤組。盤組中的盤片都被固定在一根軸上,沿一個(gè)方向高速旋轉(zhuǎn)。每個(gè)盤面有一個(gè)讀寫磁頭。所有的讀寫磁頭都被固定在唯一的移動(dòng)臂上同時(shí)移動(dòng)。把所有的讀寫磁頭按從上到下的次序進(jìn)行編號(hào),稱其為磁頭號(hào)。在磁頭位置下的各個(gè)盤面上的磁道在同一個(gè)圓柱面上,我們稱這些磁道組成了一個(gè)柱面。每個(gè)盤面上有許多磁道,按由外向里的順序編號(hào)。移動(dòng)臂可移動(dòng)讀寫磁頭訪問所有的磁道。當(dāng)移動(dòng)臂移到某一位置時(shí),所有的讀寫磁

8、頭都在同一柱面上,我們把盤面上磁道的編號(hào)作為柱面號(hào)。每個(gè)盤面被劃分成若干相等的扇區(qū),每個(gè)扇區(qū)中的各個(gè)磁道都是圖512盤組結(jié)構(gòu)示意可存放相等字節(jié)數(shù)的一個(gè)塊,沿與磁盤旋轉(zhuǎn)相反的方向給各扇區(qū)編號(hào),稱為扇區(qū)號(hào)。所以,磁盤存儲(chǔ)空間中的每一塊的位置可以由三個(gè)參數(shù)決定,它們是柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào)。每個(gè)參數(shù)均從“O”開始編號(hào)。 為了減少移動(dòng)臂移動(dòng)花費(fèi)的時(shí)間,存放信息時(shí),不是按盤面上的磁道順序存放滿一個(gè)盤面后再存放到下一個(gè)盤面上,而是按柱面存放,同一柱面上的磁道放滿后,再放到下一個(gè)柱面上。存取信息時(shí)按給定的柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào),先由磁盤機(jī)根據(jù)柱面號(hào)控制移動(dòng)臂做機(jī)械的橫向運(yùn)動(dòng),帶動(dòng)所有的讀寫磁頭到達(dá)指定柱面,

9、由于每次只允許一個(gè)磁頭進(jìn)行讀或?qū)?,所以必須再按磁頭號(hào)確定信息所在的盤面,然后等到待訪問的扇區(qū)旋轉(zhuǎn)到讀寫磁頭下時(shí),由指定的磁頭進(jìn)行存取。5.2 5.2 文件的存儲(chǔ)介質(zhì)文件的存儲(chǔ)介質(zhì)5.3 5.3 文件的存取方式文件的存取方式 從對(duì)文件信息的存取次序考慮,存取方式可以分成兩種:順序存取和隨機(jī)存取。 順序存取是指對(duì)文件中的信息按順序依次進(jìn)行讀寫的存取方式。 隨機(jī)存取是指對(duì)文件按任意的次序隨機(jī)地讀寫的存取方式。 采用哪種存取方式,主要取決于兩個(gè)方面的因素: (1)與文件的使用方式有關(guān) 文件的性質(zhì)決定了文件的使用,也就決定了存取方式的選擇。例如,一個(gè)源程序文件,它由一連串的順序字符組成,編譯程序在對(duì)源程

10、序進(jìn)行編譯時(shí),必須按字符順序進(jìn)行存取。又如,要對(duì)一個(gè)文件進(jìn)行編輯時(shí),也總是按照順序存取的方式進(jìn)行。但是對(duì)于數(shù)據(jù)庫的訪問,經(jīng)常要采取隨機(jī)存取方式。例如,對(duì)于職工的工資文件、學(xué)生成績檔案文件等,應(yīng)允許方便地查找任何一個(gè)職工的工資情況和任何一個(gè)學(xué)生的學(xué)習(xí)成績。于是應(yīng)選擇隨機(jī)存取方式。 5.3 5.3 文件的存取方式文件的存取方式(2)與存儲(chǔ)介質(zhì)的特性有關(guān) 目前常用的存儲(chǔ)設(shè)備是磁帶機(jī)和磁盤機(jī)。 磁帶機(jī)是一種適合順序存取的存儲(chǔ)設(shè)備。它總是從磁頭的當(dāng)前位置開始讀寫磁帶上的信息。當(dāng)磁頭讀了第i塊的信息后,走過其后的間隙就到達(dá)了第i+1塊的位置。當(dāng)磁帶機(jī)繼續(xù)工作時(shí),一定是讀寫第H一1塊的信息。所以對(duì)存儲(chǔ)在磁帶

11、上的文件,一般均采用順序存取的方式。如果想隨機(jī)地讀磁帶上的某一塊信息,則必須讓磁頭先定位到磁帶的始端,然后才能正確定位到指定塊的位置。例如,為了讀第100塊上的信息,就必須讓磁頭從頭開始走過99個(gè)間隙,才能讀到第100塊上的信息。這樣花費(fèi)在定位上的時(shí)間就非常多,影響系統(tǒng)效率。因此對(duì)組織在磁帶上的文件很少采用隨機(jī)存取方式。 磁盤機(jī)是一種可按指定的塊地址進(jìn)行信息存取的設(shè)備。磁盤機(jī)上的每一個(gè)塊都有確定的位置和一個(gè)唯一的地址。磁盤機(jī)能根據(jù)給定的地址帶動(dòng)讀寫磁頭到達(dá)指定的柱面后,讓搟定的磁頭存取指定扇區(qū)上的信息。所以磁盤機(jī)能隨機(jī)讀寫磁盤機(jī)上任何一塊的信息,具有隨機(jī)存取功能。于是對(duì)存儲(chǔ)在磁盤上的文件,既可

12、采取順序存取方式,又可采用隨機(jī)存取方式。但是在建立文件時(shí),應(yīng)定義好存取方式,使用文件時(shí)必須與定義好的存取方式一致。5.4 5.4 文件目錄文件目錄 文件目錄用于檢索文件的,它是文件系統(tǒng)實(shí)現(xiàn)按名存取的重要手段。文件目錄由若干目錄項(xiàng)組成,每一個(gè)目錄項(xiàng)記錄一個(gè)文件的有關(guān)的信息。一般來說,目錄項(xiàng)應(yīng)包含如下內(nèi)容: (1)有關(guān)文件存取控制的信息 例如,用戶名,文件名,文件的類型,文件屬性(可讀寫、只能 讀、只可執(zhí)行等)。 (2)有關(guān)文件結(jié)構(gòu)的信息 例如,文件的邏輯結(jié)構(gòu),文件的物理結(jié)構(gòu),記錄個(gè)數(shù),文件在存儲(chǔ)介質(zhì)上位置。 (3)有關(guān)文件管理的信息 例如,文件的建立日期,文件被修改的日期,文件保留期限,記賬信息

13、。 有了文件目錄后,當(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 5.4 文件目錄文件目錄一級(jí)目錄一級(jí)目錄 一級(jí)目錄是最簡單的文件目錄結(jié)構(gòu)。這種目錄結(jié)構(gòu)是把一卷存儲(chǔ)介質(zhì)上的所有文件都登記在一個(gè)文件目錄中。 一級(jí)目錄結(jié)構(gòu)簡單,管理方便。每當(dāng)建立一個(gè)新文件時(shí),就在文件目錄中增加一個(gè)目錄項(xiàng)。每當(dāng)刪去一個(gè)文件時(shí),就在文件目錄中抹去該文件的目錄項(xiàng)。 一級(jí)目錄結(jié)構(gòu)要求在文件目錄中登記的各個(gè)文件都有不同的文件名。如果有重名,則在進(jìn)行

14、按名存取時(shí)就可能出錯(cuò)。對(duì)一個(gè)用戶來說,當(dāng)要為一個(gè)新文件命名時(shí),必須記住原有文件的文件名,對(duì)自己的所有文件都應(yīng)定義成不同的文件名。一個(gè)用戶是可以做到將自己的所有文件都定義成不同的名字,但在多道程序設(shè)計(jì)系統(tǒng)中,若要求所有的用戶定義的文件名都不相同是很困難的。所以一級(jí)目錄結(jié)構(gòu)一般只適用于微型計(jì)算機(jī)的單用戶系統(tǒng)。5.4 5.4 文件目錄文件目錄二級(jí)目錄結(jié)構(gòu)二級(jí)目錄結(jié)構(gòu) 一級(jí)目錄的主要問題是:當(dāng)不同的用戶定義了相同的文件名時(shí),會(huì)引起文件的混淆。解決重名問題的一種辦法是采用二級(jí)目錄結(jié)構(gòu)或多級(jí)目錄結(jié)構(gòu)。 二級(jí)目錄結(jié)構(gòu)是為每個(gè)用戶設(shè)置一張目錄表,稱為用戶文件目錄。用戶文件目錄為本用戶的每一個(gè)文件設(shè)置一個(gè)目錄項(xiàng)

15、。再用一張總的目錄表來登記各個(gè)用戶的目錄表存放地址,這張總的目錄表稱為主文件目錄。當(dāng)用戶需要訪問某個(gè)文件時(shí),系統(tǒng)根據(jù)用戶名從主文件目錄中找出該用戶的文件目錄的存放地址,然后根據(jù)該地址找到該用戶的文件目錄,再按指定的文件名查這張用戶文件目錄表,從用戶文件目錄表中找出對(duì)應(yīng)的目錄項(xiàng)就可找到文件存放的物理位置。5.4 5.4 文件目錄文件目錄二級(jí)目錄結(jié)構(gòu)示意圖二級(jí)目錄結(jié)構(gòu)示意圖5.4 5.4 文件目錄文件目錄樹型目錄結(jié)構(gòu)樹型目錄結(jié)構(gòu) 有的文件系統(tǒng)允許用戶為自己的不同類型的文件建立子目錄,再把子目錄登記在用戶文件目錄中。同樣地,又可把子目錄中的文件細(xì)分后建立再下一級(jí)的目錄。這樣就逐漸形成了多層次的目錄,

16、稱為多級(jí)目錄結(jié)構(gòu)。在UNIX系統(tǒng)和Windows系統(tǒng)中都采用了多級(jí)目錄結(jié)構(gòu)。這種目錄結(jié)構(gòu)像一棵倒置的有根樹,故也稱為樹形目錄結(jié)構(gòu)。在樹形目錄結(jié)構(gòu)中,每一個(gè)節(jié)點(diǎn)都是一個(gè)目錄或一個(gè)文件,主文件目錄是樹根,常常稱它為根目錄。允許用戶在根目錄下建立子目錄和組織文件,子目錄可以是多層次的,就像是樹枝。最末一個(gè)節(jié)點(diǎn)是文件就像是樹葉。 在樹形目錄結(jié)構(gòu)中,根目錄或子目錄中的目錄項(xiàng)可能指向文件,也可能指向下一級(jí)子目錄。由于每個(gè)目錄項(xiàng)都有相同的形式,那么怎樣才能區(qū)分出它指向的是文件還是子目錄呢?這可以在目錄項(xiàng)中設(shè)置一個(gè)二進(jìn)制位,用該位的值O或1來區(qū)分所指向的是文件還是子目錄。5.4 5.4 文件目錄文件目錄樹型目

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

18、,就可從當(dāng)前目錄開始設(shè)置路徑,稱為相對(duì)路徑。用相對(duì)路徑可縮短搜索路徑,提高搜索速度。例如,當(dāng)前目錄是C1,則要訪問文件f7時(shí)可用如下的相對(duì)路徑: C1C12f7 用戶總是使用指定的路徑名請(qǐng)求存取文件。如果文件就在當(dāng)前目錄中,則存取文件時(shí)只需要指出文件名,文件系統(tǒng)就在當(dāng)前目錄中尋找該文件。如果文件不在當(dāng)前目錄中,但在當(dāng)前目錄的下級(jí)目錄中,則可用相對(duì)路徑指定文件,文件系統(tǒng)就從當(dāng)前目錄開始沿著指定的路徑名檢索各級(jí)目錄,從而確定文件所在的物理位置。5.4 5.4 文件目錄文件目錄文件目錄的管理文件目錄的管理 文件系統(tǒng)要管理許多用戶的大量文件,因此系統(tǒng)中的文件目錄也很龐大。如果把文件目錄都存放在主存儲(chǔ)器

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

20、組織文件的組織 文件的組織是指文件的構(gòu)造方式。由用戶構(gòu)造的文件稱為文件的邏輯結(jié)構(gòu)(或稱邏輯文件),存儲(chǔ)介質(zhì)上的文件構(gòu)造方式稱為文件的物理結(jié)構(gòu)(或稱物理文件)。用戶按邏輯結(jié)構(gòu)使用文件,文件系統(tǒng)按物理結(jié)構(gòu)管理文件。當(dāng)用戶請(qǐng)求讀寫文件時(shí),文件系統(tǒng)必須實(shí)現(xiàn)文件的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)之間的轉(zhuǎn)換。5.5 5.5 文件的組織文件的組織文件的邏輯結(jié)構(gòu)文件的邏輯結(jié)構(gòu) (1)流式文件 流式文件是指用戶對(duì)文件內(nèi)的信息不再劃分可獨(dú)立的單位,整個(gè)文件是由依次的一串信息組成。 (2)記錄式文件 記錄式文件是由若干個(gè)邏輯記錄組成的文件。邏輯記錄是用戶對(duì)文件內(nèi)的信息按邏輯上獨(dú)立的含義再劃分后的信息單位,簡稱記錄。 一個(gè)邏輯文件

21、由若干個(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)稱為記錄的主鍵,其他數(shù)據(jù)項(xiàng)都稱做次鍵。5.5 5.5 文件的組織文件的組織文件的存儲(chǔ)結(jié)構(gòu)文件的存儲(chǔ)結(jié)構(gòu) 文件的物理結(jié)構(gòu)和存儲(chǔ)設(shè)備的類型與用戶采用的存取方式有關(guān)。 把存放在存儲(chǔ)介質(zhì)上的文件稱為物理文件。 目前,用戶主要采用磁盤與磁帶存取文件。因此,我們將專門討論記錄文件在磁帶和磁盤上的組織結(jié)構(gòu)。(1)磁帶上文件的組織形式5.5 5.5 文件的組織文件的組織磁盤文件的組

22、織磁盤文件的組織(1)順序結(jié)構(gòu) 順序結(jié)構(gòu)把一個(gè)文件邏輯上連續(xù)的信息存放到磁盤上相鄰的塊中,或者說,順序結(jié)構(gòu)是一種邏輯記錄順序與磁盤塊的順序相一致的文件結(jié)構(gòu)。具有順序結(jié)構(gòu)的文件稱為順序文件或連續(xù)文件。 采用順序結(jié)構(gòu)的文件順序存取時(shí)速度比較快,但不適用于隨機(jī)存取。 采用順序結(jié)構(gòu)時(shí)存在一些問題:磁盤存儲(chǔ)空間利用率不高,對(duì)輸出到磁盤上的文件很難估計(jì)需要分配多少個(gè)連續(xù)的磁盤塊,且影響文件的擴(kuò)展。5.5 5.5 文件的組織文件的組織磁盤文件的組織磁盤文件的組織(2)鏈接結(jié)構(gòu) 把順序的邏輯記錄存放在不連續(xù)的磁盤塊上,并用指針把這些磁盤塊按邏輯記錄的順序鏈接起來,便形成文件的鏈接結(jié)構(gòu)。具有這種結(jié)構(gòu)的文件稱為鏈

23、接文件或串聯(lián)文件。 鏈接結(jié)構(gòu)解決了順序結(jié)構(gòu)中存在的問題。采用順序存取時(shí),鏈接結(jié)構(gòu)的效率很高,但采用隨機(jī)存取則效率很低。 鏈接結(jié)構(gòu)的特點(diǎn)是每個(gè)磁盤塊中必須留出若干單元用來存放磁盤塊之間的鏈接指針。文件信息占用的第一個(gè)磁盤塊的塊號(hào)登記在文件目錄中,鏈接結(jié)構(gòu)中每個(gè)磁盤塊中的鏈接指針 指出了文件信息存放的下一個(gè)磁盤塊的塊號(hào)。通常,當(dāng)某塊中鏈接指針為“O”時(shí),表示文件信息至本塊結(jié)束。圖58指出了文件的鏈接結(jié)構(gòu)。5.5 5.5 文件的組織文件的組織磁盤文件的組織(鏈接結(jié)構(gòu))磁盤文件的組織(鏈接結(jié)構(gòu))5.5 5.5 文件的組織文件的組織磁盤文件的組織(鏈接結(jié)構(gòu))磁盤文件的組織(鏈接結(jié)構(gòu))5.5 5.5 文件

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

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

26、設(shè)立主存緩沖區(qū),并在操作系統(tǒng)中增加成組和分解操作的功能。5.5 5.5 文件的組織文件的組織記錄的成組與分解示例記錄的成組與分解示例 假設(shè)磁帶的記錄密度為1600bpi(字節(jié)英寸),每個(gè)邏輯記錄長為200B,塊與塊之間的間隔為O5英寸,請(qǐng)回答下列問題: 不采用成組操作時(shí),磁帶空間的利用率是多少? 采用塊因子6作成組操作時(shí),磁帶空間的利用率為百分之幾? 為了使磁帶空間的利用率大于80%,采用記錄成組時(shí)其塊因子至少為多少? 間隔=160005=800(字符) 200(200+800)=20 這說明不采用成組操作時(shí)磁帶空間的利用率為20。 (2006)(2006+800)=60 采用成組操作時(shí)磁帶空

27、間的利用率為60。 設(shè)塊因子為X,則200X(200X+800)O8 250X200X+800 50X800 X16說明塊因子至少為17。5.6 5.6 磁盤空間的存儲(chǔ)管理磁盤空間的存儲(chǔ)管理 文件系統(tǒng)對(duì)磁盤空間進(jìn)行管理,當(dāng)用戶存儲(chǔ)文件時(shí)就要為文件分配空間,當(dāng)用戶刪除文件時(shí)又要回收文件占用的存儲(chǔ)空間。實(shí)現(xiàn)存儲(chǔ)空間的分配和回收取決于空閑塊的管理方法。常用的管理方法有位示圖、空閑塊表和空閑塊鏈。 1、位示圖 位示圖中的每一位與一個(gè)磁盤塊相對(duì)應(yīng),指示磁盤空間的使用情況。一般情況下,位示圖中的“1”表示相應(yīng)塊已被占用;“0”表示對(duì)應(yīng)塊是空閑塊。 磁盤空間的塊數(shù)=每盤面扇區(qū)數(shù)每柱面磁道數(shù)柱面數(shù) 位示圖常用

28、若干字組成,假設(shè)字長為n位,由m個(gè)字組成位示 圖,則: mn=磁盤空間的塊數(shù) 5.6 5.6 磁盤空間的存儲(chǔ)管理磁盤空間的存儲(chǔ)管理位示圖法位示圖法 假定一個(gè)盤組共有l(wèi)00個(gè)柱面,編號(hào)為O99。每個(gè)柱面上有8個(gè)磁道,編號(hào)為07。每個(gè)盤面分成4個(gè)扇區(qū),編號(hào)為O3。則整個(gè)磁盤空間共有48100=3200個(gè)存儲(chǔ)塊。 如果用字長為32位的字來構(gòu)造位示圖,共需100個(gè)字,如圖所示: 第i個(gè)字的第j位對(duì)應(yīng)的塊號(hào)為:塊號(hào)=i32(字長)+j5.6 5.6 磁盤空間的存儲(chǔ)管理磁盤空間的存儲(chǔ)管理位示圖法位示圖法確定空閑塊地址的通用公式為: 塊號(hào)=字號(hào)字長+位號(hào) 柱面號(hào)=塊號(hào)柱面上的塊數(shù) 磁頭號(hào)=(塊號(hào)mod柱面上

29、的塊數(shù))盤面上的扇區(qū)數(shù) 扇區(qū)號(hào)=(塊號(hào)mod柱面上的塊數(shù))mod盤面上的扇區(qū)數(shù)歸還一塊時(shí),尋找位示圖中位置的通用公式為: 塊號(hào)=柱面號(hào)柱面上的塊數(shù)+磁頭號(hào)盤面上的扇區(qū)數(shù)+扇區(qū)號(hào) 字號(hào)=塊號(hào)字長 位號(hào)=塊號(hào)mod字長5.6 5.6 磁盤空間的存儲(chǔ)管理磁盤空間的存儲(chǔ)管理位示圖法示例位示圖法示例 假設(shè)一個(gè)磁盤組共有100個(gè)柱面,每柱面有8個(gè)磁道,每個(gè)盤面被分成4個(gè)扇區(qū)。若邏輯記錄的大小與扇區(qū)大小一致,柱面、磁道和扇區(qū)的編號(hào)均從“O”開始,現(xiàn)用字長為16位的200個(gè)字(第0字第199字)組成位示圖來指示磁盤空間的使用情況。請(qǐng)問: 文件系統(tǒng)發(fā)現(xiàn)位示圖中第15字第7位為O而準(zhǔn)備分配給某一記錄時(shí),該記錄會(huì)存

30、放到磁盤的哪一塊上?此塊的物理位置(柱面號(hào)、磁頭號(hào)和扇區(qū)號(hào))如何? 刪除文件時(shí)要?dú)w還存儲(chǔ)空間,第56柱面第6磁道第3扇區(qū)的塊就變成了空閑塊,此時(shí),位示圖中第幾字第幾位應(yīng)由1改為O?5.6 5.6 磁盤空間的存儲(chǔ)管理磁盤空間的存儲(chǔ)管理位示圖法示例位示圖法示例5.6 5.6 磁盤空間的存儲(chǔ)管理磁盤空間的存儲(chǔ)管理空閑塊表法空閑塊表法 系統(tǒng)為每個(gè)磁盤建立一張空閑塊表,表中每個(gè)登記項(xiàng)記錄一組連續(xù)空閑塊的首塊號(hào)和塊數(shù)??臻e塊數(shù)為“0”的登記項(xiàng)為無效登記項(xiàng)。 這種管理方式適合采用順序結(jié)構(gòu)的文件。存儲(chǔ)文件時(shí)從空閑塊表中找一組連續(xù)的空閑塊,刪除文件時(shí)把歸還的一組連續(xù)塊登記到空閑塊表中??臻e塊的分配和回收算法類似

31、主存儲(chǔ)器的可變分區(qū)管理方式中采用的最先適應(yīng)、最優(yōu)適應(yīng)和最壞適應(yīng)算法。 同樣地,對(duì)分配和歸還的塊要進(jìn)行塊號(hào)與柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào)之間的換算。5.6 5.6 磁盤空間的存儲(chǔ)管理磁盤空間的存儲(chǔ)管理空閑塊鏈法空閑塊鏈法 把所有的磁盤空閑塊用指針連接在一起構(gòu)成空閑塊鏈。分配空間時(shí)從鏈中取出空閑塊,歸還空間時(shí)把歸還塊加入到鏈中。這種管理方式不需要外加專門記錄空閑塊分配情況的表格。 對(duì)磁盤空閑塊可用單塊連接法連接起來。每一個(gè)空閑塊中都設(shè)置一個(gè)指向另一個(gè)空閑塊的指針,最后一個(gè)空閑塊中的指針為“0”。這樣,所有空閑塊就構(gòu)成了一個(gè)空閑塊鏈。系統(tǒng)設(shè)置一個(gè)鏈?zhǔn)字羔?,指向鏈中的第一個(gè)空閑塊。分配一塊時(shí),根據(jù)鏈?zhǔn)字羔槹?/p>

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論