2017年全國計(jì)算機(jī)等級考試四級復(fù)習(xí)綱要:文件管理

字號:


     六、文件管理
     1.引言
     計(jì)算機(jī)系統(tǒng)中還有另一類資源是軟資源。軟資源包括各種系統(tǒng)程序、各種實(shí)用程序、各種應(yīng)用程序、各種應(yīng)用領(lǐng)域的程序,也包括大量的文檔材料。每一種資源本身都是具有一定邏輯意義的、相關(guān)信息的集合。在操作系統(tǒng)中它們以文件形式存儲。大多數(shù)應(yīng)用中,文件是最重要的元素,每個(gè)應(yīng)用總要使用和產(chǎn)生數(shù)據(jù)。一般從文件中輸入數(shù)據(jù),其產(chǎn)生的數(shù)據(jù)也存入文件而長期儲存,供以后使用。系統(tǒng)的重要作用之一是能快速處理大量信息,因此數(shù)據(jù)的組織、存取和保護(hù)是操作系統(tǒng)必須提供的一個(gè)重要的功能。文件系統(tǒng)是操作系統(tǒng)中組織、存取和保護(hù)數(shù)據(jù)的一個(gè)重要部分。
     (1)文件的概念文件是信息的一種組織形式,是存儲在輔助存儲器上的具有標(biāo)識名的一組信息集合。它可以是有格式的,也可以是無格式的。與文件相關(guān)的概念有:數(shù)據(jù)項(xiàng)、記錄、文件和數(shù)據(jù)庫。數(shù)據(jù)項(xiàng)是數(shù)據(jù)的基本單位,一個(gè)數(shù)據(jù)項(xiàng)有一個(gè)值,數(shù)據(jù)項(xiàng)可能是定長的也可能是可變長度的。記錄是相關(guān)數(shù)據(jù)項(xiàng)的集合,與數(shù)據(jù)項(xiàng)類似,記錄的長度可能是定長的,也可能是可變長度的。文件是記錄的集合,文件是一個(gè)實(shí)體,被用戶或應(yīng)用程序按名字訪問,為了安全,每一文件都有訪問控制約束。數(shù)據(jù)庫是相關(guān)數(shù)據(jù)的集合,數(shù)據(jù)元素之間有直接的聯(lián)系,這些聯(lián)系是在設(shè)計(jì)時(shí)為若干個(gè)不同的應(yīng)用而設(shè)計(jì)的。數(shù)據(jù)庫本身可由若干文件組成。
     (2)文件系統(tǒng)操作系統(tǒng)的文件系統(tǒng)包括兩個(gè)方面:一方面包括負(fù)責(zé)管理文件的一組系統(tǒng)軟件,另一方面包括被管理的對象———文件。文件系統(tǒng)的主要目標(biāo)是提高存儲器的利用率,接受用戶的委托實(shí)施對文件的操作。為此要解決的主要問題是:管理輔助存儲器,實(shí)現(xiàn)文件從名字空間到輔存地址空間的轉(zhuǎn)換,決定文件信息的存放位置、存放形式和存取權(quán)限,實(shí)現(xiàn)文件和目錄的操作,提供文件共享能力和安全設(shè)施,提供友好的用戶接口。
     (3)文件類型文件有多種分類方法,這是根據(jù)文件的性質(zhì)和用途區(qū)分的。①按文件的用途可以分為系統(tǒng)文件、庫文件和用戶文件等。②按文件的信息流向可以分為輸入文件、輸出文件和輸入輸出文件等。③按文件的組織形式可以分為普通文件、目錄文件和特殊文件等。特殊文件是UNIX系統(tǒng)采用的技術(shù),是把所有的輸入輸出設(shè)備都視作文件(特殊文件)。特殊文件的使用形式是與普通文件相似的。④按文件的安全屬性可分為只讀文件、讀寫文件、可執(zhí)行文件和不保護(hù)文件等。
     2.文件的結(jié)構(gòu)和組織
     文件的結(jié)構(gòu)是指文件的組織形式,從用戶觀點(diǎn)所看到的文件組織形式,稱為文件的邏輯結(jié)構(gòu);從實(shí)現(xiàn)觀點(diǎn)考察文件在輔助存儲器上的存放方式,常稱為文件的物理結(jié)構(gòu)。
     (1)文件的邏輯結(jié)構(gòu)文件的邏輯組織是為了方便用戶的使用,一般文件的邏輯結(jié)構(gòu)可以分為兩種:無結(jié)構(gòu)的字符流文件和有結(jié)構(gòu)的記錄文件,后者也稱為有格式文件。記錄文件由記錄組成,即文件內(nèi)的信息劃分成多個(gè)記錄,以記錄為單位組織和使用信息。記錄文件有順序文件、索引順序文件、索引文件和直接文件。
     ①順序文件:許多文件是順序文件。順序文件的記錄定長,記錄中的數(shù)據(jù)項(xiàng)的類型長度與次序固定,一般還有一個(gè)可以惟一標(biāo)識記錄的數(shù)據(jù)項(xiàng),稱為鍵(key),記錄是按鍵值的約定次序組織。順序文件常用于批處理應(yīng)用,對于查詢或更新某個(gè)記錄的請求的處理性能不佳。
     ②索引順序文件:索引順序文件是基于鍵的約定次序組織的,而且維護(hù)鍵的索引和溢出區(qū)域。鍵的索引也可以是多級索引。索引順序文件既適用于交互方式應(yīng)用,也適用于批處理的方式應(yīng)用。
     ③索引文件:索引順序文件是基于記錄的一個(gè)鍵數(shù)據(jù)項(xiàng)組織的,而許多應(yīng)用需按照別的數(shù)據(jù)項(xiàng)訪問文件,為此,常采用索引文件方法,即對主文件中的記錄按需要的數(shù)據(jù)項(xiàng)(一個(gè)或幾個(gè))建索引,索引文件本身是順序文件組織。
     ④直接文件:直接文件又稱哈希(Hash)文件,記錄以它們在直接訪問存儲設(shè)備(DASD)上的物理地址直接(隨機(jī))訪問。直接文件常用于需要高速訪問文件而且每次訪問一條記錄的應(yīng)用中。
     (2)文件的物理結(jié)構(gòu)文件的物理結(jié)構(gòu)側(cè)重于提高存儲器的利用效率和降低存取時(shí)間。文件的存儲設(shè)備通常劃分為大小相同的物理塊,物理塊是分配和傳輸信息的基本單位。文件的物理結(jié)構(gòu)是指文件在存儲設(shè)備上的存儲方法。文件的物理結(jié)構(gòu)涉及文件存儲設(shè)備的組塊策略和文件分配策略,決定文件信息在存儲設(shè)備上的存儲位置,常用的文件分配策略有:
     ①順序分配(連續(xù)分配)。這是最簡單的分配方法,在文件建立時(shí)預(yù)先分配一個(gè)連續(xù)的物理塊集,然后,按照邏輯文件中的信息(或記錄)順序,依次把信息(或記錄)順序存儲到物理塊中。這樣,只需知道文件在文件存儲設(shè)備上的起始位置和文件長度,就能進(jìn)行存取,這種分配方法適合于順序存取,在連續(xù)存取相鄰信息時(shí),存取速度快。其缺點(diǎn)是在文件建立時(shí)必須指定文件的信息長度,以后不能動態(tài)增長,一般不宜用于需要經(jīng)常修改的文件。
     ②鏈接分配(串聯(lián)分配)。這是按單個(gè)物理塊逐個(gè)進(jìn)行的。每個(gè)物理塊中(一般是最后一個(gè)單元)設(shè)有一個(gè)指針,指向下一個(gè)物理塊的地址,這樣,所有的物理塊都被鏈接起來,形成一個(gè)鏈接隊(duì)列。在建立鏈接文件時(shí),不須指定文件的長度,在文件的說明信息中,只需指出該文件的第一個(gè)物理塊塊號,鏈接文件的文件長度可以動態(tài)的增長,只需調(diào)整物理塊間的指針就可以插入或刪除一個(gè)信息塊。鏈接分配的優(yōu)點(diǎn)是可以解決存儲器的碎片問題,提高存儲空間利用率。由于鏈接文件只能按照隊(duì)列中的鏈接指針順序查找,因此,搜索效率低,一般只適用于順序訪問,不適用于隨機(jī)存取。
     ③索引分配。這是另一種對文件存儲不連續(xù)分配的方法。采用索引分配方法的系統(tǒng),系統(tǒng)為每個(gè)文件建立一張索引表,索引表中每一表項(xiàng)指出文件信息所在的邏輯塊號和與之對應(yīng)的物理塊號。索引分配既可以滿足文件動態(tài)增長的要求,又可以方便而迅速地實(shí)現(xiàn)隨機(jī)存取。這是因?yàn)樗饕碇泻腥窟壿媺K號和物理塊號之間的對應(yīng)關(guān)系。對一些大的文件,索引表的大小會超過一個(gè)物理塊,就會發(fā)生索引表的分配問題。一般采用多級(間接索引)技術(shù),這時(shí)在由索引表指出的物理塊中存放的不是文件信息,而是存放文件信息的物理塊地址。這樣,如果一個(gè)物理塊能存儲n個(gè)物理塊地址,則一次間接索引,可尋址的文件長度將變成n×n塊,對于更大的文件可以采用二級間接索引,甚至三級間接索引技術(shù)(如UNIX系統(tǒng))。索引分配既適用于順序存取,也適用于隨機(jī)存取。索引分配的缺點(diǎn)是索引表增加了存儲空間的開銷。另外,在存取文件時(shí)需要訪問存儲設(shè)備兩次,一次是訪問索引表,另一次是根據(jù)索引表提供的物理塊號訪問文件信息,為了提高效率,一種改進(jìn)的方法是,在對某個(gè)文件進(jìn)行操作之前,預(yù)先把索引表調(diào)入主存(如Open命令),這樣,文件的存取就能直接從在主存的索引表中確定相應(yīng)的物理塊號,從而只需要訪問一次磁盤來源:www.examda.com
     3.文件訪問方法
     用戶**對文件的訪問(讀寫)來完成對文件的查找、修改、刪除和添加等操作。常用的訪問方法有兩種,順序訪問和隨機(jī)訪問。
     (1)順序訪問順序訪問是按照文件的邏輯地址順序訪問。對無結(jié)構(gòu)的字符流文件,順序訪問反映當(dāng)前讀寫指針的變化,在訪問完一段信息之后,讀寫指針自動加上這段信息的長度。
     (2)隨機(jī)訪問隨機(jī)訪問方法又分成兩種:①一是根據(jù)記錄的編號訪問文件中的記錄,或者根據(jù)讀寫命令把讀寫指針移到所需要的信息段開始處。②另一種是按鍵訪問文件中的記錄。文件的訪問依賴于存放文件的存儲設(shè)備的特性,也依賴于文件的分配策略。例如,磁帶是典型的順序訪問設(shè)備,磁盤則是典型的隨機(jī)訪問設(shè)備。
     4.文件存儲設(shè)備管理
     文件存儲設(shè)備管理也就是操作系統(tǒng)的輔存管理,是要有效的進(jìn)行存儲空間的管理。由于文件存儲設(shè)備是分成許多大小相同的物理塊,并以塊為單位交換信息,因此,文件存儲設(shè)備的管理實(shí)質(zhì)上是對空閑塊的組織和管理問題。有3種不同的空閑塊管理方法,它們是位圖法、鏈接法和索引法。
     (1)位圖法位圖法使用一個(gè)向量描述整個(gè)磁盤,向量的每一位表示一個(gè)物理塊的狀態(tài),如0表示空閑塊,而1表示該塊已使用。位圖法易于找到一個(gè)或連續(xù)幾個(gè)空閑塊,此法適合每一種文件分配方法,另外,位圖法本身很小,易于全部放入主存。
     (2)鏈接法鏈接法使用鏈表把空閑塊組織在一起,當(dāng)申請者需要空閑塊時(shí),分配程序從鏈?zhǔn)组_始摘取所需的空閑塊。反之,管理程序把回收的空閑塊逐個(gè)的掛入隊(duì)尾,這個(gè)方法適用于每一種文件分配方法。空閑塊的鏈接方法可以是如上述的按釋放的先后順序鏈接,也可以是按空閑塊區(qū)(連續(xù)n個(gè)空閑塊)的大小順序鏈接。后者有利于獲得連續(xù)的空閑塊的請求,但在分配請求和回收空閑塊時(shí)系統(tǒng)開銷多一點(diǎn)。
     (3)索引法類似于文件分配方法,索引法把空閑塊作為一個(gè)文件并采用索引技術(shù)。為了提高效率,索引可以基于空閑塊區(qū)而不是僅僅基于單個(gè)物理塊。這樣,磁盤上每一個(gè)空閑塊區(qū)都對應(yīng)于索引表中一個(gè)條目,這個(gè)方法能有效地支持每一種文件分配方法。
     5.文件控制塊和文件目錄
     (1)文件控制塊文件控制塊是系統(tǒng)在管理文件時(shí)所必需的控制信息的數(shù)據(jù)結(jié)構(gòu),是文件存在的惟一標(biāo)志,也稱文件描述詞,簡記為FCB。FCB的內(nèi)容包括相應(yīng)文件的基本屬性,大致可以分成4個(gè)部分:①基本信息:如文件名、文件類型、文件組織等;②保護(hù)信息:如口令、所有者名、保存期限、訪問權(quán)限等;③位置信息:如存儲位置、文件長度等;④使用信息:如時(shí)間信息、最遲使用者等。
     (2)文件目錄文件控制塊的集合稱為文件目錄,文件目錄也被組織成文件,常稱為目錄文件。文件目錄結(jié)構(gòu)形式有一級目錄結(jié)構(gòu)、二級目錄結(jié)構(gòu)和多級目錄結(jié)構(gòu)。
     ①一級目錄結(jié)構(gòu):文件系統(tǒng)中只有一個(gè)目錄文件的目錄結(jié)構(gòu)稱為一級目錄結(jié)構(gòu)。其中,每一表項(xiàng)是一個(gè)文件控制塊,對應(yīng)于一個(gè)文件。一級目錄結(jié)構(gòu)易于實(shí)現(xiàn),管理簡單。但當(dāng)系統(tǒng)中文件數(shù)增多時(shí),查找時(shí)間較長,也會發(fā)生文件名重復(fù)(重名)的問題。
     ②二級目錄結(jié)構(gòu):文件系統(tǒng)將目錄分為兩級,就形成了二級目錄結(jié)構(gòu)。這時(shí),第一級目錄稱為主目錄,主目錄表項(xiàng)記錄用戶名及相應(yīng)用戶目錄的存儲位置。第二級是用戶目錄,以順序表形式存放該用戶文件的文件控制塊。二級目錄雖然都組織成順序表,由于都不會很長,查找時(shí)間快,而且各個(gè)用戶只要**自己的文件名稱不重復(fù)就不會發(fā)生重名問題。對文件的共享和文件的保護(hù)也比一級目錄結(jié)構(gòu)好。
     ③多級目錄結(jié)構(gòu):如果將二級目錄的級數(shù)增加,就形成了多級目錄。也稱為樹型目錄結(jié)構(gòu)。在多級目錄結(jié)構(gòu)中,常常將第一級目錄作為系統(tǒng)目錄,稱為根目錄(樹的根節(jié)點(diǎn))。目錄樹中的非葉節(jié)點(diǎn)指出目錄文件,非目錄文件一定由葉節(jié)點(diǎn)指出。葉節(jié)點(diǎn)也可能指出目錄文件,即空目錄。在多級目錄結(jié)構(gòu)中,從根出發(fā)到任何一個(gè)葉節(jié)點(diǎn)有且只有一條路徑,該路徑的全部節(jié)點(diǎn)名構(gòu)成一個(gè)全部路徑名,又稱絕對路徑名。為查找一個(gè)非目錄文件就使用它的全路徑名,多級目錄結(jié)構(gòu)更加完善了文件結(jié)構(gòu)的查找范圍,更好地解決了文件的重名問題,增強(qiáng)了文件的共享和保護(hù)措施。
     6.文件的使用
     (1)工作目錄也稱當(dāng)前目錄。在多級目錄結(jié)構(gòu)的文件系統(tǒng)中,文件的全路徑名可能較長,也會涉及多次磁盤訪問,為了提高效率,操作系統(tǒng)提供設(shè)置工作目錄的機(jī)制,每個(gè)用戶都有自己的工作目錄,任一目錄節(jié)點(diǎn)都可以被設(shè)置為工作目錄。一旦某個(gè)目錄節(jié)點(diǎn)被設(shè)置成工作目錄,相應(yīng)的目錄文件有關(guān)內(nèi)容就會被調(diào)入主存,這樣,對以工作目錄為根的子樹內(nèi)任一文件的查找時(shí)間會縮短,從工作目錄出發(fā)的文件路徑名稱為文件的相對路徑名。文件系統(tǒng)允許用戶隨時(shí)改變自己的工作目錄(如命令CD)。
     (2)文件的使用一般文件系統(tǒng)提供一組專門用于文件、目錄的管理。如目錄管理、文件控制和文件存取等命令。①目錄管理命令:如建立目錄、顯示工作目錄、改變目錄、刪除目錄(一般只可刪除空目錄);②文件控制命令:如建立文件、刪險(xiǎn)文件、打開文件、關(guān)閉文件、改文件名、改變文件屬性;③文件存取命令:如讀寫文件、顯示文件內(nèi)容、復(fù)制文件等。
     (3)文件共享和安全文件的共享是指不同的用戶使用同一文件。文件的安全是指文件的保密和保護(hù),即限制未授權(quán)用戶使用或破壞文件。文件的共享可以采用文件的絕對路徑名(或相對路徑名)共享同一文件。一般的文件系統(tǒng),要求用戶先打開文件,再對文件進(jìn)行讀寫,不再使用時(shí)關(guān)閉文件。若兩個(gè)用戶可以同時(shí)打開文件,對文件進(jìn)行存取,這稱為動態(tài)文件共享。文件的安全管理措施常常在系統(tǒng)級、用戶級、目錄級和文件級上實(shí)施。①系統(tǒng)級:用戶需注冊登記、并配有口令,每次使用系統(tǒng)時(shí),都需要進(jìn)行登錄(login),然后輸入用戶口令(password),方能進(jìn)入系統(tǒng);②用戶級:系統(tǒng)對用戶分類并限定各類用戶對目錄和文件的訪問權(quán)限;③目錄級:系統(tǒng)對目錄的操作權(quán)限作限定,如讀(R)、寫(W)、查找(X)等;④文件級:系統(tǒng)設(shè)置文件屬性來控制用戶對文件的訪問,如只讀(RO)、執(zhí)行(X)、讀寫(RW)、共享(Sha)、隱式(H)等。對目錄和文件的訪問權(quán)限可以由建立者設(shè)置。除了限定訪問權(quán)限,還可以**加密等方式進(jìn)行保護(hù)。