1. 程式人生 > >作業系統——第七章筆記

作業系統——第七章筆記

檔案管理
1.檔案和檔案系統
檔案管理:把所管理的程式和資料組織成一系列的檔案,並能進行合理的儲存、使用等操作。
1.1基本概念
1)資料項:描述物件某種屬性的字符集;是資料組織中可以命名的最小邏輯資料單位。
2)記錄:一組相關資料項集合,描述物件某方面的屬性;
3)關鍵字:一個記錄中的一個或幾個資料項的集合,用於唯一的標識一個記錄。
4)檔案:由建立者定義的、具有檔名的一組相關元素的集合。
 有結構:由相關記錄組成
 無結構:字元流的形式
 屬性:型別、長度、物理位置、建立時間
1.2檔案型別
不同的系統對檔案的管理方式不同
1)大多用副檔名標誌檔案型別,按如下幾種方式分類檔案
 按用途:系統、使用者、庫檔案
 按資料形式:原始檔、目標檔案、可執行檔案
 按存取控制屬性:只執行、只讀、讀寫
 按組織和處理方式:普通檔案、目錄檔案、特殊(裝置)檔案
1.3檔案系統模型
系統管理檔案模型
在這裡插入圖片描述


1.3.1檔案管理的核心程式:
 檔案目錄的管理
 檔案共享和保護等
 檔案儲存空間的管理
 檔案邏輯地址轉換
 檔案讀寫管理
1.3.2檔案管理的核心程式的四個層次:
4)邏輯檔案系統 :按名訪問,記錄存取,保護共享等
3)基本I/O管理程式 :與磁碟I/O有關的事務:邏輯塊號到物理塊號的對映;空閒塊管理;指定I/O緩衝
2)基本檔案系統層 :處理記憶體與磁碟間資料塊的交換。
1)I/O控制層 :由磁碟驅動程式等組成的最底層,也稱裝置驅動層。
1.4檔案操作
1)最基本的操作
 建立/刪除檔案:分空間,形成FCB及目錄(名,地址)
 讀、寫:按名檢索目錄,找到檔案地址,開始讀、寫
 設定檔案讀寫位置,實現隨機存取(尤其適用於記錄檔案)
2)還需要:“開啟”與“關閉”:
檔案讀/寫操作 = 檢索 + 讀/寫。
 每次讀寫前都要重複檢索增大開銷。所以為了方便對同一檔案的多次讀寫,一次檢索到檔案後就在記憶體中記錄其位置,避免重複檢索。被記錄下位置的檔案就是“開啟”檔案;
 不需要再操作檔案時,通過“關閉”這個系統呼叫關閉檔案——即從開啟檔案表上刪除其路徑資訊即可。
3)其他操作:改名、改所屬使用者、改訪問許可權等屬性的操作。
2.檔案的邏輯結構
檔案系統設計的關鍵要素:如何構成一個檔案,以及如何儲存在外存。
2.1檔案結構:
1)檔案的邏輯結構file logical structure:按使用者觀點如何組織資料;又稱檔案組織file organization
 基本要求:檢索速度高、方便修改、降低儲存空間費用(不連續)
2)檔案的物理結構:根據外存上的物理塊的分配機制,記錄檔案外存的儲存結構。使用者感知不到的。
2.2檔案邏輯結構的型別
2.2.1有結構檔案(記錄式)
1)定長記錄
2)變長記錄
如何組織記錄:
 順序檔案。系統需按該型別記錄“長度”,通常定長。
 索引檔案。系統需為檔案建立索引表。
 索引順序檔案。建索引表,記錄每組記錄的第一個記錄位置。
2.2.2無結構檔案(字元流式)
1)位元組為單位,利用讀寫指標依次訪問。
2)系統對該類檔案不需格式處理。
2.3檔案分類
2.3.1順序檔案
1)兩種記錄排列方式
 串結構:按記錄形成的時間順序序列排序。記錄順序與關鍵字無關;
 順序結構:按關鍵字排序。
2)檢索方法:
 從頭檢索,順序查詢要找的記錄,定長的計算相對快。
 順序結構,可用折半查詢、插值查詢、跳步查詢等演算法提高效率
3)具體的定址過程:
 第i條記錄地址(定長) :
讀寫指標 + 記錄長度: ptr + iL
 第i條記錄地址(變長) :
掃描或讀取前面0~i-1條記錄
 第i條記錄地址(變長)
變長記錄資料前用1位元組儲存每條記錄長度,順序掃描,但不用把記錄全掃描完
4)順序結構記錄按關鍵字排序,可按關鍵字檢索
 定長:結合折半查詢演算法等提高檢索速度
 變長:從第1個記錄開始順序掃描,直到掃描到要檢索的關鍵字標識的記錄(例如:資料庫、檔案系統的基於檔名排序的目錄檢索)
5)順序檔案的優缺點:
 不方便隨機存取某條記錄,但適用批量存取的場合。
 適合磁帶等特殊介質。
 單記錄的查詢、修改等互動性差;增減不方便(改進辦法:把增刪改的記錄登記在一個事務檔案中,在某段時間間隔後再與原檔案合併更新)。
2.3.2索引檔案
為了方便單個記錄的隨機存取,為檔案建立一個索引表,記錄每項記錄在檔案的邏輯地址及記錄長度;該索引表按關鍵字排序,。
1)索引表內容:索引號、長度、記錄地址指標
2)檢索效率
 索引表本身即是個按記錄鍵排序的定長順序檔案,所以能利用演算法提高索引表檢索速度
3)折半檢索過程舉例
 給出使用者關鍵字
 檢索索引表(設有n條記錄,設一個索引表項佔x位元組),則索引表的x
n/2位元組處記錄著n/2號記錄的地址
 根據第2步的地址,讀一條記錄,若記錄中關鍵字不匹配,再判斷找第n/4還是第n/2+n/4條記錄
4)一個索引檔案可以有多個索引表
為方便使用者根據不同記錄屬性檢索記錄,為順序檔案建立多個索引表,每種能成為檢索條件的域都配備一張索引表。
5)索引檔案的優缺點
 適用於變長記錄,可提高檢索速度,實現直接存取
 索引表增加了儲存開銷
2.3.3索引順序檔案
1)既要方便,又要降低開銷
2)本方式是最常見的一種邏輯檔案形式。
 將順序檔案的所有記錄分組
 還是建立索引表,但每個表項記錄的是每組第1條記錄的鍵值和地址。
 組內記錄仍按順序方式檢索和使用。
3)檢索一條記錄的過程:
 先計算記錄是在第幾組,然後再檢索索引確定組在哪裡後,在組內順序查詢。
4)可利用多級索引,進一步提高檢索效率。
2.3.4直接檔案
1)給定鍵值(如學號)不需順序檢索直接得到記錄的實體地址
2)使用者對檔案的操作由作業系統按檔案結構分析執行
3)而操作歸根到底要到外存中進行實質操作。