第七章 檔案管理
阿新 • • 發佈:2018-11-28
檔案控制塊—FCB
- 為了能對一個檔案進行正確的存取,必須為檔案設定用於描述和控制檔案的資料結構,稱之為“檔案控制塊”(FCB)
- 檔案與檔案控制塊一一對應
- 記錄檔名及其存放地址、檔案的說明和控制資訊。(是誰?在哪裡?什麼權?)
- 檔案管理程式藉助於檔案控制塊中的資訊對檔案施以各種操作。
把檔案控制塊的有序集合稱為檔案目錄,即一個檔案控制塊就是一個目錄項。通常一個檔案目錄也被看作是一個檔案,稱為目錄檔案
5、目錄管理
- 對檔案實施有效的管理,必須對它們加以妥善組織,主要是兩大操作:
- 基本資訊記錄(FCB,目錄項)
- 方便檢索、管理(目錄操作)
- 目錄管理的要求如下:
- 實現“按名存取”;(最基本功能)
- 提高對目錄的檢索速度;
- 檔案共享;
允許檔案重名。
- FCB內容
- 對於連續檔案:檔案起始塊號;
- 對於連結檔案:指向第一個物理塊的指標;
- 對於索引檔案:索引表地址。
- 在檔案控制塊中,通常含有以下三類資訊。
- 基本資訊類
- 包括檔名,檔案物理位置,檔案邏輯結構,檔案的物理結構。
- 存取控制資訊類
- 包括檔案主的存取許可權,核准使用者的存取許可權和一般使用者的存取許可權。
- 使用資訊類
- 建立日期和時間、檔案上次修改的日期和時間
- 當前使用資訊:開啟該檔案的程序數、是否被程序鎖住、是否已修改等。
關於檔案檢索的速度:
- 檔案FCB組成的“目錄”檔案存放於磁碟;需要時,要從磁碟將目錄內容調入記憶體進行檢索和使用。
- 如果目錄佔用5個盤塊,則至多
2)索引結點
- 索引結點的引入
- 檔案目錄佔越大量的盤塊,需進行的磁碟讀寫開銷越大。減少實際檢索的資訊量就減少移動磁頭的開銷,提高速度;
- 目錄一般是按名檢索。而直到找到正確檔案前,只關心檔名,不需要其它的檔案描述資訊,目錄中這部分內容的調入不是必須的。
- 所以:將檔名、檔案具體資訊分開,使檔案描述資訊單獨形成一個索引結點。
索引結點由外存到記憶體的過程中有不同的形式:
- 磁碟索引結點
- 存放在磁碟上的索引結點。主要包括以下內容:檔案主識別符號、檔案型別、檔案存取許可權、檔案實體地址、檔案長度、檔案連線計數、檔案存取時間。
- 記憶體索引結點
- 檔案被開啟後,將磁碟索引結點拷貝到記憶體索引結點中以便使用。比磁碟索引結點增加了以下內容:索引結點編號、狀態、訪問計數、檔案所屬檔案系統的邏輯裝置號、連結指標。
3) 目錄結構
- 目錄結構的組織,關係到檔案系統的存取速度,也關係到檔案的共享性和安全性。
- 組織好檔案的目錄,是設計好檔案系統的重要環節。
- 目前常用的目錄結構形式有
- 單級目錄
- 兩級目錄
- 多級目錄
單級目錄結構(Single-Level Directory)
- 最簡單的目錄結構。
- 整個檔案系統中只建立一張目錄表,每個檔案一個目錄項,含有檔案相關資訊。
每建立一個新檔案:
-
- 先檢索所有的目錄項,保證檔名唯一。
- 獲得一空白目錄項,填入相關資訊,修改狀態位(表明每個目錄項是否空閒)。
刪除一個檔案:
-
- 找到對應目錄項,回收檔案所佔用空間
- 清除目錄項
- 優點:簡單、能實現目錄管理的基本功能——按名存取。
- 缺點:
- 檔案檢索時需搜遍整個目錄檔案,範圍大速度慢。
- 不允許重名。名字過多難於記憶,對於多使用者環境重名難以避免。
- 不便於實現檔案共享(因為不能重名,不同使用者使用的共享檔案必須不同名字,標識哪些使用者共享檔案也不方便),一般只適用單機環境。
②兩級目錄結構( Two-Level Directory )
- 為每一個使用者建立一個單獨的使用者檔案目錄UFD,UFD由使用者所有檔案的檔案控制塊組成。
- 系統建立一個主檔案目錄MFD, MFD中每個使用者目錄檔案都佔有一個目錄項,其中包括使用者名稱和指向UFD的指標。
兩級目錄的特點
- 基本克服了單級目錄的缺點,並具有以下優點:
- 提高了檢索目錄的速度。
- 在不同的目錄中可重名。
- 不同使用者還可以使用相同/不同的檔名來訪問系統中的同一個共享檔案。
不提供子目錄操作,還不方便;各使用者之間被完全隔離的話使用者訪問其他使用者檔案時,不方便合作
③多級目錄結構
- 適用於較大的檔案系統管理。又稱為樹狀目錄(tree-like)
- 在檔案數目較多時,便於系統和使用者將檔案分散管理。
- 層次結構更清晰、提供更靈活的許可權管理等
- 但目錄級別太多時也會增加路徑檢索層次,增加磁碟訪問時間。
- Tree-Structured Directories (樹型目錄)
相關名詞:
- 目錄結構
- 主目錄稱為根目錄,資料檔案為樹葉,其它目錄為結點。多級目錄縮小檢索範圍提高檢索速度和檔案系統的效能。
- 路徑名
- 從根目錄到任何資料檔案都只有一條唯一通路。目錄檔名和資料檔名依次用“/”連線起來,即構成資料檔案的路徑名。
- 當前目錄
- 為每個程序設定一個“當前目錄”,又稱“工作目錄”。
- 從當前目錄開始,逐級經過中間的目錄檔案,最後達到要訪問的資料檔案。這一路徑上的目錄和資料檔名用“/”連線成路徑名,稱為相對路徑名。
- 從根開始的路徑名稱為絕對路徑名
4)目錄查詢技術
- 使用者要訪問一個已存檔案
- 目錄資料調入記憶體;
- 按名檢索:系統利用提供的檔名對目錄(根據目錄層次,需要做的檢索次數也不同)進行查詢
- 找該檔案控制塊
- 讀FCB或對應索引結點;
- 從檔案實體地址換算出檔案在磁碟上的物理位置;
- 最後通過磁碟驅動程式,將所需檔案讀入記憶體。
- 目錄查詢方式:線性檢索法和Hash方法。
線性檢索法
- 又稱為順序檢索法。
- 單級目錄中
- 使用者提供檔名,順序查詢檔案目錄。
- 樹型目錄中
- 使用者提供路徑名,如/user/ast/mbox
- 對多級目錄進行逐層查詢。
*Hash方法
- 曾介紹的Hash檔案。
- 如果建立了一張Hash索引檔案目錄,便可利用Hash方法進行查詢
- 系統將使用者提供的檔名變換為檔案目錄的索引值,再利用該索引值到目錄中去查詢,將顯著的提高檢索速度。
- 對於使用萬用字元的檔案名系統無法利用Hash法檢索目錄,還是需用線性查詢法。
綜合練習
- 有一檔案系統如圖1所示。圖中的框表示目錄,圈表示普通檔案。每個磁碟塊有512個位元組。普通檔案的一頁與盤塊大小等長。
- 根目錄常駐記憶體,目錄檔案物理結構組織成連結檔案,每個目錄檔案磁碟塊最後4個位元組供連結使用。
- 目錄表目指示下一級檔名及其磁碟地址(各佔2個位元組,共4個位元組)。若下級檔案是目錄檔案,指示其第一個磁碟塊地址。若下級檔案是普通檔案,指示其檔案控制塊的磁碟地址。
(一個盤塊可存放127個目錄項)
- 普通檔案組織成索引檔案。
(一個索引盤塊512B,可存放256個盤塊索引2B)
- 下級檔案在上級目錄檔案中的次序在圖中為自左至右。
|
問:
-
- 一個普通檔案最多可有多少個檔案頁?
- 若要讀檔案J中某一頁,最多啟動磁碟多少次?
- 若要讀檔案W中某一頁,最少啟動磁碟多少次?
- 就上一問而言,為最大限度減少啟動磁碟次數,可採用什麼方法?此時,磁碟最多啟動多少次?
- 普通檔案組織成索引檔案,普通檔案的一頁與盤塊大小等長。 C=10+256+256^2+256^3
- 根目錄常駐記憶體,下級檔案在上級目錄檔案中的次序在圖中為自左至右。讀入A,讀入D,讀入J:1+1+c
- 讀入C,I,P,U,W:1+1+1+1+1
- 儘量減少目錄項內容使一塊能存放更多目錄項/常用目錄快取、多級目錄常駐記憶體、則目錄檢索則最多5/0次磁碟操作,啟動次數就決定於檔案佔用的盤塊數
6、檔案共享與保護
1)檔案共享
- 多個使用者共享一份檔案,只保留檔案的一份副本,節約儲存空間
- 共享範圍:單機系統/多主機系統/網路範圍
- 20世紀六七十年代,出現了若干檔案早期共享方法,繞彎路法、連訪法等,逐漸發展為現代一些共享方式
- 索引結點
- 符號鏈
①索引結點法
- 基本FCB法:
- 名+詳細資訊。
- 直接在檔案目錄中包含檔案的實體地址,該方法實現的共享不適用檔案動態變化。一個使用者對檔案的修改(如物理塊號增加),對其他使用者不可見,共享檔案的FCB資訊記錄同步更新困難。
- 檔名+索引結點指標。
- 一個使用者修改指標指向地址裡的內容,指標不變,其他使用者通過指標總能感知索引結點中的最新內容
- 索引結點中增加count計數
- 主人刪除操作問題:
- 刪,共享使用者訪問錯誤;不刪,計費問題。
②符號鏈法
-
- 建立一個link型別的檔案:“檔名+共享檔案路徑”(類似快捷方式)
- 檔案主人刪除檔案,共享者只會出現找不到檔案錯誤。不會發生共享檔案刪除後出現懸空指標的情況。
- 該方法適用於網路檔案共享,但根據路徑檢索共享檔案的目標位置增加了訪問開銷,link檔案獨佔索引結點也耗費一定的空間。
- 無論哪種共享,連結就對應一個檔案,如果遍歷複製整個目錄內的檔案,可能會從多條路徑對共享檔案進行多次訪問
2)磁碟容錯
SFT,system fault tolerance
- 防止磁碟故障造成的檔案不安全
- SFT I:磁碟表面故障
- 雙目錄、雙檔案分配表(空間冗餘)
- 寫後讀校驗、熱修復重定向(時間操作冗餘)
- 寫入磁碟後再讀回記憶體做一致性校驗
- 熱修復寫過程:從壞道重定向到專區並記錄
- SFT II:磁碟驅動器、控制器故障
- 驅動器故障:磁碟映象
- 控制器故障:磁碟雙工——並行控制器,分離搜尋加快讀取
- SFT III:高階容錯技術
- 雙機熱備份
- 雙機互備份
- 公用磁碟模式
*資料一致性
- 一個數據分別儲存到多個檔案中,典型的如資料庫
- 保證資料一致性:
高可靠儲存器(冗餘保證穩定,磁碟雙工)+ 一致性軟體
- 概念
- 事務:對資料各處儲存位置訪問、修改使其維持一致性的一次操作。
- 事務記錄:記錄事務執行時資料項修改全部資訊的資料結構:事務名、資料項名、舊值、新值。
- 恢復演算法:利用事務記錄表處理已完成、未完成事務。
- 檢查點:每隔一段時間,將記憶體中的事務記錄表、已修改資料、檢查點輸出到穩定儲存器,
- 併發控制
- 重複資料的一致性
要點問答
- 存放在磁碟上的檔案訪問順序如何:
既可隨機訪問,又可順序訪問。
- 作業系統中對資訊進行管理的部分叫:
檔案系統。
- 檔案系統是:
檔案、管理檔案的軟體及資料結構的總體。
- 從使用者角度看,檔案系統的主要目的是:
實現對檔案的按名存取。
- 按檔案的邏輯結構將檔案分為兩大類:
記錄式檔案和流式檔案。
- 使用位示圖(20行、30列)表示空閒盤塊狀態。當分配的盤塊號為132號時,其在位示圖中的行、列數為(行為0-19、列為0-29,首盤塊號為1) 4、11。當釋放的盤塊號為318時,其在位示圖中的行、列數為:
B=i*30+j+1; b-1=i*30+j
i=b-1 div 30=10;mod= j=17
- 為了解決不同使用者的檔案“命名衝突”問題,通常在檔案系統中採用:
多級目錄結構。
- 按物理結構劃分,檔案主要有三類:
順序檔案、連結檔案、索引檔案。
- 作業系統實現按名存取的關鍵在於:
解決檔名與檔案儲存地址的轉換。
- 檔案系統提供了哪些基本操作?
- 若有甲乙兩個使用者,甲使用者有兩個檔案A、B,乙使用者有三個檔案A、C、D,甲使用者的檔案A與乙使用者的檔案A不是同一個檔案。甲使用者的檔案B與乙使用者的檔案B是同一個檔案。請設計一個目錄組織方案,並畫圖說明。
- 設某系統磁碟共有1600塊,塊號從0-1599,若用位示圖管理這1600塊的磁碟空間,問位示圖需要多少個位元組?
- 什麼是檔案的物理結構和邏輯結構?
- 檔案順序存取與隨機存取的主要區別是什麼?它們對有結構檔案和無結構檔案有何不同?