1. 程式人生 > >第六章:檔案管理

第六章:檔案管理

計算機的主要功能之一就是對資料進行數值或非數值計算。

  • OS的系統軟體必須提供資料儲存、資料處理、資料庫管理的基本功能。

  • 資料儲存是通過檔案管理完成的,檔案管理是通過目錄來完成的,而目錄又是建立在分割槽或卷的基礎上的。

  • 作業系統中與檔案和目錄相關的子系統稱為檔案系統。

6.1 概述

計算機資訊儲存的三點基本要求是:

  • 1、能夠儲存大量資訊

  • 2、長期儲存資訊

  • 3、可以共享資訊

檔案管理的內容包括:

  • 結構
  • 命名
  • 存取
  • 使用
  • 保護
  • 實現方法
    作業系統為系統管理者和使用者提供了對檔案的透明存取
    透明存取:不必瞭解檔案存放的物理機制和查詢方法,只需給定一個代表某段程式或資料的檔名稱,檔案系統就自動完成對給定檔名稱相對應的檔案的有關操作

6.1.1 檔案和檔案系統

檔案的定義:

  • 檔案:一組帶標識的、在邏輯上有完整意義的資訊項的序列

  • 標識:檔名

  • 資訊項:檔案內容的基本單位,是一組有序序列

  • 讀寫指標:讀指標用來記錄檔案當前的讀取位置,它指向下一個將要讀取的資訊項;寫指標用來記錄檔案當前的寫入位置,下一個將要寫入的資訊項被寫到該處。

  • 檔案長度:可以是單位元組或多位元組;位元組可以是字元,也可以組成記錄。

  • 各種檔案系統的檔案命名不盡相同

    • FAT12:MS-DOS的8.3命名規則,8個字元外加句點和3個字元的副檔名,不區分大小寫

    • NTFS:多達255個字元

    • EXT2:多達255個字元,區分大小寫


檔案系統:

  • 定義:
    作業系統中統一管理資訊資源的一種軟體。
  • 管理:
    它管理檔案的儲存、檢索、更新,提供安全可靠的共享和保護手段,並且方便使用者使用
  • 作用
    • 從使用者角度看,檔案系統負責為使用者建立檔案、讀寫檔案、修改檔案、複製檔案和撤銷檔案。檔案系統還負責完成對檔案的按名存取和對檔案進行存取控制。
    • 檔案系統的作用是很多的
      • 在多使用者系統中,可以保證各個使用者檔案的存放位置不衝突,還能防止任一使用者對儲存存空間的佔而不用。
      • 檔案系統既可保證任一使用者的檔案不被未經授權的使用者竊取、破壞,又能允許在一定條件下由多個使用者共享某些檔案
    • 檔案系統使用磁碟、磁帶和光碟等大容量儲存器作為儲存介質。因此,檔案系統可儲存大量的資訊。

6.1.2 檔案分類

一.按檔案的用途分類:

  • 系統檔案:
    作業系統和各種系統應用程式及資料所組成的檔案,可執行但不可讀寫和修改

  • 庫函式檔案:
    標準子程式及常用應用程式組成的檔案。允許使用者讀取、執行人,但不允許對其修改。如C語言庫函式庫等

  • 使用者檔案:
    使用者委託系統儲存的檔案。可以由源程式、目標程式、使用者資料檔案、使用者資料庫等組成。

二.按檔案的組織形式分類:

  • 普通檔案:指檔案的組織格式為檔案系統中所規定的最一般格式的檔案。
    包括系統檔案、使用者檔案、庫函式檔案和使用者實用程式檔案等。

  • 目錄檔案:由檔案的目錄構成的特殊檔案。
    含有檔案目錄資訊的一種特定檔案。主要用來檢索檔案的目錄資訊

  • 特殊檔案:操作轉成為對應裝置的操作特殊檔案。

三.一些常見的檔案分類格式:

  • 按檔案保護方式劃分:只讀檔案、讀寫檔案、可執行檔案、無保護檔案等

  • 按資訊流向分類劃分:輸入檔案、輸出檔案和輸入輸出檔案等

  • 按檔案存放時限劃分:臨時檔案、永久檔案和檔案檔案等

  • 按所使用的介質劃分:磁碟檔案、磁帶檔案、卡片檔案和列印檔案等

  • 按檔案組織結構劃分:由使用者組織的檔案稱邏輯檔案,邏輯檔案可採用流式檔案和記錄式檔案兩種組織方式

四.UNIX類作業系統中檔案的分類:

  • 普通檔案:內部無結構的一串平滑的字元所組成的檔案

  • 目錄檔案:由檔案目錄項所構成的檔案

  • 特殊檔案:把I/O裝置也看成是一種檔案

6.1.3 檔案系統的功能

  • 統一管理檔案的儲存空間,實施儲存空間的分配與回收

  • 實現檔案從名字空間到外存地址空間的對映

  • 實現檔案資訊的共享,並提供檔案的保護和保密措施

  • 向用戶提供一個方便使用的介面

  • 系統維護及向用戶提供有關資訊

  • 保持檔案系統的執行效率

  • 提供與I/O的統一介面

6.2 檔案的結構

6.2.1 檔案的邏輯結構

一.設計檔案邏輯結構的原則

1)易於操作

2)查詢快捷

3)修改方便

4)空間緊湊

二.檔案的邏輯結構

  • 定義:檔案的邏輯結構是使用者所看到的檔案的組織形式。
  • 劃分:
    • 無結構的字元流式檔案
    • 定長記錄檔案
    • 不定長記錄檔案構成的記錄樹

記錄式檔案:包括定長記錄檔案和不定長記錄檔案

  • 定義: 記錄式檔案就是一組有序記錄的集合。基本單位是記錄。

  • 定長記錄檔案:各個記錄長度相等。
    在檢索時可以根據記錄號i及記錄長度L就可以確定該記錄的邏輯地址。

  • 不定長記錄檔案:各個記錄的長度不等
    在查詢時,必須逐條記錄查詢,直到找到所需的記錄。

檔案的邏輯結構是使用者所看到的檔案的組織形式。

無結構的字元流式檔案:有序字元的集合,其長度為該檔案所包含的字元個數,是一串有開頭和結尾的連續字元。

構成檔案的基本單位是字元。

源程式、目的碼等檔案屬於流式檔案。

UNIX類系統採用的是流式檔案結構。

6.2.2 檔案的物理結構

一.順序結構

1)順序結構原理

順序結構又稱連續結構,最簡單的檔案物理結構,把邏輯上連續的檔案資訊依次存放在連續編號的物理塊中。

在順序結構中,一個檔案的目錄項中只要指出該檔案佔據的總塊數和起始塊號即可。

2)順序結構的優缺點

優點:一旦知道檔案在檔案儲存裝置上的起始塊號和檔案長度,就能很快進行存取。

缺點:檔案不能動態增長。

二.連結結構

1)連結結構原理

為每個檔案構造所使用磁碟塊的連結串列。使用這種連結結構的檔案,將邏輯上連續的檔案分散存放在若干不連續的物理塊中。

如網站地圖

如Windows的FAT檔案系統採用的就是連結結構,但鏈指標集中存放

2)連結結構的優缺點

優點:儲存碎片問題解決,有利於檔案動態擴充,有利於檔案插入和刪除,提高了磁碟空間利用率。

缺點:存取速度慢,不適於隨機存取檔案;磁頭移動多,效率相對較低 ;存在檔案的可靠性問題,如指標出錯等;連結指標佔用一定空間。

三.索引結構

1)索引結構

索引結構原理:把每個物理盤塊的指標字集中存放在被稱為索引表的資料結構中的記憶體索引表中。

2)索引檔案結構的優缺點

優點:順序存取和隨機存取都適用,可以滿足檔案動態增長的要求,也滿足了檔案插入、刪除的要求,還充分利用外存空間。

缺點:引起較多尋道次數和尋道時間;索引表本身增長儲存空間開銷。

1)索引結構

間接索引是在索引表所指的物理塊中不存放檔案的資訊,而是裝有存放這些資訊的物理塊地址,方便擴充索引。

索引結構檔案中要存取檔案時,需要至少訪問兩次以上儲存裝置,一次是訪問索引表,另一次是根據索引表訪問在儲存裝置上的檔案資訊。

(1)索引表的連結模式:一個索引表通常就是一個物理塊。對大檔案就用多個索引表並將之連結在一起。

(2)多級索引:將一個大檔案所有索引表(二級索引)的地址放在另一個索引表(一級索引)中。

四.索引結構的例項----I節點

I節點的基本思想:給每個檔案賦予一張稱為I節點的小表,在這張小表中列出檔案屬性和檔案中各塊在磁碟上的地址。

直接盤塊:資料塊地址、一重間接盤塊(再連線資料塊地址)

地址指標:一重間接盤塊、二生間接盤塊、三重間接盤塊

俗稱I節點及檔案的三級索引結構示意圖

2.3、檔案的儲存介質

沒有儲存裝置就沒有檔案系統

1、儲存介質的特點

外儲存同記憶體相比,一般有容量大、斷電後仍可儲存資訊、速度較慢、成本較低等特點。

  • 外儲存裝置:通常由驅動部分和儲存介質兩部分組成。儲存介質稱為卷。

驅動器作用是使用計算機實現讀寫(儲存、控制、測試)儲存介質上的內容。

1、儲存介質的特點

儲存裝置各類很多,磁碟、磁帶、磁鼓、紙帶、光碟、快閃記憶體等,計算機可連線多種儲存裝置。

儲存介質可重用重寫,如磁記錄類、光記錄類和電記錄類

儲存介質不可重用重寫,寫了不可再寫,如早期的紙帶卡片等

磁碟空間由盤面、柱面、磁軌和扇區組成

外存存取過程:讀狀態-置資料-置地址-置控制-讀狀態等等

2、使用者對外儲存裝置的要求:方便、效率、安全

在讀寫外存裝置時不涉及硬體細節,使用者直接使用邏輯地址和邏輯操作

外存裝置存取速度儘可能快,容量大且空間利用率高

外存裝置上存放的資訊保安可靠,防止來自硬體的故障和他人侵權

方便共享,儲存空間可動態擴大、縮小、拆卸,隨時瞭解情況

以儘可能小的代價完成上述要求

3、檔案在儲存裝置中的存取

1)順序存取裝置

磁帶是最早使用的磁記錄儲存介質。是標誌性的順序存取裝置。

優點是儲存容量大

缺點是存取速度慢且只能順序存取

2)隨機儲存裝置

磁碟是典型的隨機存取裝置。磁碟由若干磁碟片組成,每個磁碟片對應兩個讀/寫磁頭,分別對磁碟片的上下兩面進行讀寫。各個磁頭與碰頭臂相連。

系統在對磁碟初始化時,將盤面劃出一些同心圓,作為儲存介質,稱為磁軌。每個磁碟又分為若干段,稱為扇區。每個扇區構成了一個物理塊。整個磁碟所有扇區統一編號,從0開始。所有磁碟片相同磁軌稱為柱面。

零磁軌處於硬碟上一個非常重要的位置,硬碟的主引導記錄區(MBR)就在這個位置上。MBR位於硬碟的0磁頭0柱面1扇區,其中存放著硬碟主載入程式和硬碟分割槽表。在總共512位元組的硬碟主引導記錄扇區中,446位元組屬於硬碟主載入程式,64位元組屬於硬碟分割槽表(DPT),兩個位元組(55 AA)屬於分割槽結束標誌。
  在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

3、檔案在儲存裝置中的存取

2)隨機儲存裝置

磁碟上每個物理塊的位置可用柱面號(磁軌號)、磁頭號和扇區號表示

(1)已知物理塊號,則磁碟地址:

柱面號=[ 物理塊號/(磁頭數*扇區數 )]

磁頭號=[ (物理塊號 mod (磁頭數*扇區數))/扇區數 ]

扇區號=(物理塊號 mod (磁頭數*扇區數)) mod 扇區數

3、檔案在儲存裝置中的存取

2)隨機儲存裝置

磁碟上每個物理塊的位置可用柱面號(磁軌號)、磁頭號和扇區號表示

(2)已知磁碟地址:

物理塊號=柱面號*(磁頭數扇區數)+磁頭號扇區數+扇區號

3、檔案在儲存裝置中的存取

2)隨機儲存裝置

磁碟上每個物理塊的位置可用柱面號(磁軌號)、磁頭號和扇區號表示

(2)已知磁碟地址:

磁頭臂是沿半徑方向移動的。訪問磁碟時,首先要移動磁頭臂到相應柱面(磁軌)(尋道)上,然後旋轉碟片將指定磁頭定位在指定扇區上,最後控制磁頭對扇區中的資料進行讀寫。所

以,一次訪盤時間由尋道時間、旋轉定位時間和資料傳輸時間組成的,由於尋道時間是機械動作,因而所花費時間最長。

3、檔案在儲存裝置中的存取

2)隨機儲存裝置

磁碟上每個物理塊的位置可用柱面號(磁軌號)、磁頭號和扇區號表示

(2)已知磁碟地址:

將所有盤面中的處於同一磁軌號上的所有磁軌組成一個柱面,形成柱面號,讀寫同一柱面內的資料不需要移動磁頭,實際上節省了訪問時間(尋道時間)。

2.4、檔案的存取方式

在使用者面前呈現的是檔案的邏輯結構

在儲存介質呈現的是檔案的物理結構

選擇哪一種檔案的存取方式,取決於使用者使用檔案的方式,也與檔案所使用的儲存介質有關。如資料庫檔案,就適用採用隨機存取方式。而儲存介質是磁帶,則只能使用順序存取方式。

1、順序存取

按從前到後的次序依次訪問檔案的各個資訊項。

若當前讀取的記錄為Ri,則下一次讀取的記錄被自動確定為Ri+1。

2、隨機存取

隨機存取又稱直接存取,即允許使用者按任意次序直接存取檔案中的任意一個記錄,或根據命令把讀寫指標稱到檔案中的指定記錄處讀寫。
第3節 檔案目錄

3.1、檔案目錄的組成

檔案系統的特點是按名存取,即使用者只要給出檔案的符號名就能方便地存取在外存空間的該檔案的資訊,而不必瞭解和處理檔案的具體實體地址。

在作業系統中,為了管理大量檔案,為每個檔案都設定一個描述性資料結構----檔案控制塊FCB(File Control Block),把所有檔案的檔案控制塊有機地組織起來,就構成了檔案控制塊的一個有序集合,稱為檔案目錄。

檔案目錄實際就是檔案符號名到檔案實體地址之間的一種對映機制。

1、檔案控制塊FCB結構

檔案控制塊FCB是系統為管理檔案而設定的一個數據結構。FCB是檔案存在的標誌,它記錄了系統管理檔案所需要的全部資訊。,通常包括以下內容:檔名、檔案號、使用者名稱、檔案地址、檔案長度、檔案型別、檔案屬性、共享計數、檔案的建立日期、儲存期限、最後修改日期、最後訪問日期、口令、檔案邏輯結構、檔案物理結構等。

檔名:使用者給檔案取的名稱

檔案號:系統在檔案建立時所指定的一個編號,檔案號唯一地標識一個檔案,即在一個檔案系統中檔案號是不重複的。

使用者名稱:記錄了該檔案建立者的名稱。一般而言一個檔案的建立者就是所有者

檔案物理結構:標識了該檔案內部的物理結構是順序、連結還是索引結構

檔案邏輯結構:指出該檔案是流式檔案還是記錄式檔案

檔案物理位置:記錄了與檔案在儲存介質中的物理位置有關的資訊。

檔案長度和記錄大小:分別儲存了檔案的長度和每個物理塊的大小。

檔案型別:與該檔案系統的檔案型別的劃分方法有關。

檔案屬性:指出檔案是隻讀檔案、可讀寫檔案還是隻可執行檔案。

共享說明:指出該檔案是否允許其它使用者使用,是僅允許組內使用者使用還是允許系統中所有使用者使用等。

口令:指為了檔案安全和檔案資訊的保密所設定的訪問檔案的密碼

儲存期限:預計該檔案的保管時間。有臨時檔案或只使用一次等。

2、目錄檔案

當用戶建立一個新檔案時,與該檔案有關的一些資訊與屬性記錄在該檔案的檔案控制塊內。多個檔案的檔案控制塊集中在一起組成了檔案的目錄。

目錄檔案是長度固定的記錄式檔案。

檔案目錄以檔案的形式儲存起來,稱為目錄檔案。

在目錄檔案中,每個檔案的檔案控制塊又稱為目錄檔案中的目錄項。

3.2、檔案目錄結構

1、一級目錄結構

最簡單、最原始的檔案目錄結構。該目錄表存放在儲存裝置的某個固定區域,在系統初啟時或需要時,系統將該目錄表調入記憶體或部分調入。檔案系統通過該目錄表提供的資訊,對檔案進行建立、搜尋、讀寫和刪除等操作。

在一級目錄表中。各個檔案說明項都處於平等地位,只能按連續結構或順序結構存放,檔名與檔案必須一一對應,限制了使用者對檔案的命名,不能重名,否則視為同一檔案。

一級目錄對一級目錄表所有檔案資訊項搜尋,搜尋效率低,檢索時間長

2、二級目錄結構

在二級目錄中目錄被分為兩級。第一級稱為主檔案目錄(Main File Directory,MFD),給出了使用者名稱和使用者子目錄所在的物理位置;第二級稱為使用者檔案目錄(User File Directory,UFD),又稱使用者子目錄,給出了該使用者所有檔案的FCB。

3.3、樹形目錄

把二級目錄的層次關係加以推廣,就形成了多級目錄,又稱樹形目錄結構。
在這裡插入圖片描述

樹形目錄結構優點是便於檔案分類,且具有下列特點:

(1)層次清楚

(2)解決了檔案重名問題

(3)查詢搜尋速度快

UNIX系統的根目錄由bin、etc、lib、tmp和usr構成。

LINUX系統的根目錄由bin、boot、dev、etc、home、lib等構成

缺點是逐層檢查,多次訪盤影響速度,結構相對比較複雜。

3.4、路徑名

1、當前目錄與目錄檢索

檔案系統向用戶提供了一個當前正在使用的目錄,稱為當前目錄或工作目錄。

全路徑名,又稱絕對路徑,從根目錄開始,列出由根到使用者指定檔案的全部有關子目錄,目錄層次多檢索耗費時間多。

相對路徑:用於檢索的路徑名只是從當前目錄開始到所要訪問檔案的一段路徑,即以當前目錄作為路徑的相對參照點。檢索路徑縮短,檢索速率高

2、檔案目錄的改進

為加快目錄檢索可採用目錄項分解法,即把目錄項FCB分為符號目錄項(次部)和基本目錄項(主部)兩部分。其中,符號目錄項包含檔名以及相應的檔案號,而基本目錄項包含了除檔名外檔案控制塊的其它全部資訊。
在這裡插入圖片描述

假設一個檔案控制塊有48位元組,符號目錄項佔8位元組,其中檔名佔6位元組,檔案號佔2位元組;基本目錄項佔48-8=40位元組。設物理塊大小為512位元組。

在目錄項分解前,一個物理塊可以存放512/48≈10個檔案控制塊。在進行目錄項分解後,一個物理塊可以存放512/8=64個符號目錄項,或512/40≈12個基本目錄項。

3.5、目錄操作

在UNIX中,

“.”代表當前目錄

“…”代表根目錄

在MS-DOS系統中

表示一樣

演示用WIN7命令列