在使用計算機的過程中,需要大量的程式以及資料,而記憶體的容量有限,並且不能長期儲存資料,於是便將資料以檔案的形式儲存在外存中。隨著而來就又出現了新的問題了,如果直接將資料儲存在外存中,使用者直接面向磁碟進行操作,就會帶來很多的問題,比如:要求使用者熟悉磁碟的結構,了解各種檔案的屬性,在磁碟上的具體位置,在多使用者環境下還必須保持資料的安全性以及一致性,這是非常麻煩的事情,於是,就在作業系統中引入了檔案管理的概念,也就是構建乙個檔案系統,專門用於檔案的管理、組織工作,並且提供簡單、方便的操作給使用者。
檔案可以通俗地理解為就是一堆資料的集合,可以分為有結構檔案以及無結構檔案(流式檔案),檔案自身具有一些屬性,如:檔案型別、檔案長度、檔案的物理位置、建立時間等。
劃分檔案型別的目的是為了更好地管理檔案,按照不同的分類,可以將檔案型別進行不同的劃分
按照檔案中資料的形式劃分
按照訪問控制許可權劃分
按照組織形式和處理方式劃分
檔案系統一般劃分為三個層次:從上到下分別是:檔案系統介面 - 對物件操作和管理的軟體集合 - 物件(檔案、目錄、磁碟)及屬性
建立檔案、刪除檔案、讀檔案、寫檔案、開啟檔案、關閉檔案、對檔案屬性的操作、對目錄的操作等
所謂的檔案的邏輯結構,是指從使用者的觀點出發所看到的檔案的組織形式,是使用者可以直接處理的資料及結構,跟具體的物理儲存結構沒有關係,也稱為檔案的組織,分為有結構檔案(記錄式檔案)、無結構檔案(流式檔案)
對於檔案的邏輯結構,有一些基本的要求
- 能提高檢索速度:在大檔案中檢索資料
- 便於修改:在檔案中增加、刪除、修改記錄
- 降低檔案的儲存費用:減少檔案占用的磁碟空間、不要求大片的連續儲存空間
有結構檔案根據用於和系統管理的需要,根據組織形式的不同,可以分為一下幾種
- 順序檔案:檔案中的記錄按照某種順序排列而成,記錄一般是指定長的記錄,能用較快的速度查詢檔案中的記錄
- 索引檔案:為變長記錄建立索引表,並且為每個記錄設定乙個表項,用於加快檢索速度
- 索引順序檔案:為檔案建立索引表,為每一組記錄中的第乙個記錄設定乙個表項
順序檔案
兩種不同的排序方式:串結構(基本按照時間排序)、順序結構(按照關鍵字進行排序)
順序檔案中,如果是定長記錄,則訪問可以按照頭指標加偏移即可;如果是不定長記錄,則每個記錄需要儲存多乙個指標,用於儲存當前檔案的長度
優點:讀取效率高,尤其是在大檔案的情況下
缺點:檔案比較大是,查詢某幾個記錄速度慢,增加、刪除操作比較困難。可以設定乙個記錄日誌/事務檔案,將具體操作記錄下來,在一定時間內統一處理(延遲操作)
索引檔案
為檔案中的記錄建立索引表,每個表項用於記錄:記錄的長度、指向該記錄的指標。檢索時,先根據關鍵字檢索索引表,然後再根據索引表中的指標讀取對應的檔案
優點:檢索速度快
缺點:增加了乙個索引項,所以增加了費用
索引順序檔案
克服了變長記錄檔案的不便於訪問的缺點,而且付出的代價也不算大
將順序檔案的所有記錄進行分組:為順序檔案建立一張索引表,索引表中為每組的第乙個記錄建立乙個索引項,含有該記錄的鍵值和指向該記錄的指標。在檢索時,先利用關鍵字在索引表中進行檢索,然後找到該記錄所在記錄組中第乙個記錄的表項,從而得到該記錄組的位址,然後再用順序索查詢方式在主檔案中進行查詢,對於大檔案,更是可以建立多級索引從而提高檢索速度
常見用外存分配方式有連續分配、鏈結分配、索引分配
連續分配即為每個檔案分配一組連續/相鄰接的磁碟塊,保證了邏輯檔案中的記錄順序與儲存中所占用的盤塊順序一致
優點:順序訪問容易、訪問速度快
缺點:要求有連續的儲存空間、必須事先知道檔案的大小
鏈結分配採用離散的分配方式,消除了碎片問題,提高了利用率,同時也適應檔案的動態增長、刪除、修改等
隱式鏈結
顯式鏈結
把鏈結各個物理盤塊的指標,顯示地存放在記憶體中的乙個鏈結表(fat file allocation table)上,將鏈首指標所對應的盤塊存放在fcb中
缺點:fat需要占用比較大的記憶體空間
索引分配為每個檔案分配乙個索引塊,再把分配給該檔案的所有盤塊號都記錄在該索引塊中,在建立乙個檔案時,只需要為之建立的目錄項中填入指向該索引塊的指標
缺點:對於小檔案來說,索引塊的利用率比較低
常見分配方式:單級索引、多級索引、混合索引(多種索引分配方式混合而成)
對目錄的要求
- 實現按名訪問:提供名字即可快速找到檔案所在磁碟
- 提高對目錄的檢索速度
- 檔案共享
- 允許檔案重新命名
檔案控制塊中的資訊
- 基本資訊:檔名、檔案物理位置、檔案邏輯結構、檔案的物理結構
- 訪問控制資訊:檔案主的許可權、核准使用者的許可權以及一般使用者的許可權
- 使用資訊:檔案的建立時間、修改時間等
乙個檔案控制塊就是乙個目錄項,檔案控制塊的集合就是乙個目錄
索引節點:將檔案描述資訊與檔名分離,使檔案描述資訊單獨形成乙個資料結構
檔案系統中每個目錄項僅由檔名和指向檔案所對應的inode節點的指標
單級結構、兩級結構、多級結構
用於記錄磁碟空間的使用情況,便於更好地進行分配
空閒表法
空閒表法屬於連續分配,系統為外存上的所有空間建立一張空閒表,每個空閒區對應乙個空閒表項
分配時採用首次適應演算法、迴圈首次適應演算法等
空閒鍊錶法
將空閒鏈分為:空閒盤塊鏈、空閒盤區鏈
通過位圖(二進位制的乙個位)來表示磁碟使用情況
作業系統之 檔案管理 1
檔案系統的管理功能是將其管理的程式和資料通過組織為一系列檔案的方式實現的。檔案則是指具有檔名的若干相關元素的集合。元素通常是記錄 記錄是一組有意義的資料項的集合。可以把資料組成分為資料項 記錄和檔案 在檔案系統中,資料項是最低階的資料組織形式,可把它分成以下兩種型別 1 基本資料項。2 組合資料項。...
作業系統 檔案管理
使用者作業中要用到各種各樣的資訊,如源程式 目標程式 資料 各種語言的編譯程式等。有的資訊需要長期儲存,而有的只是臨時使用。計算機系統經常把資訊儲存在磁碟等儲存介質上,也要利用輸入級 印表機等裝置進行資訊的輸入或輸出。啟動外圍裝置訪問資訊時一項相當複雜 繁瑣的工作。為減輕使用者的負擔和保證系統的安全...
作業系統 檔案管理
檔案系統是用來管理計算機內部儲存的程式和資料。陣列組成可分為 資料項 記錄和檔案。資料項可以組成記錄,記錄可以組成檔案。屬性 檔案具有以下屬性 檔案型別 檔案長度 檔案物理位置 檔案的建立時間。型別 檔案型別可分為普通檔案 目錄檔案 特殊檔案。為了方便統一管理,系統將所有的輸入輸出裝置都視為檔案。檔...