作業系統實驗7 檔案結構管理

2021-08-05 20:12:28 字數 1857 閱讀 4703

假定磁碟上共有n個物理塊可供使用,fat就有n項,初始化時為全「0」,表示對應的物理塊均可使用,當要存放檔案時,從fat中尋找為「0」的項,其對應的物理塊用來存放檔案資訊,把檔案的鏈結指標(指出物理塊號)登記在fat中,檔案的第一塊塊號登記在檔案目錄中。例如:

圖7-2 檔案定位表fat

在ms-dos中fat的前兩項用來記錄盤的型別。第2項起表示盤的分配和鏈結情況,在上例中第3項為「0表示對應的第3塊空閒。圖7-2還指出了檔案a依次存放在第2,4,20,21,45,46塊中,指標為fff時表示檔案結束。

可見,ms-dos的fat表起了兩個作用:一是起到位示圖的作用,可從中判別哪些塊被占用,哪些塊是空閒的;二是指出了檔案的鏈結情況。

(3) 假定磁碟儲存空間共有32個物理塊,模擬設計檔案定位表fat。檔案定位表可以用乙個一維陣列fat[031]來定義,其中乙個元素與乙個物理塊對應。當fat[i]=0時,表示第i塊為空閒塊;當fat[i]=fff時,表示鏈結檔案到第i塊結束;當fat[i]0fat[i]fff時,其值指示鏈結檔案中下乙個物理塊號。

(4) 假定磁碟上的每個物理塊只能存放乙個邏輯記錄,設計乙個程式把檔案的邏輯結構模擬轉換成ms-dos的鏈結結構。使用者要求儲存乙個已經在主存中的檔案時,給出檔名和檔案的邏輯記錄長度及個數,對乙個已經儲存的檔案,允許使用者插入新記錄。用鍵盤輸入來模擬使用者的要求,輸入資訊為:

「存」 檔名邏輯記錄長度邏輯記錄個數

「插入」 檔名邏輯記錄號

「插入」要求中的邏輯記錄號是指在該記錄後插入乙個新記錄。模擬程式的演算法如圖7-3。

在設計的模擬程式中可不執行「邏輯記錄存入物理塊」的工作,而用顯示檔案目錄表和fat來代替。

圖7-3 構造鏈結檔案的模擬演算法

(5) 可假設系統中已經有兩個鏈結檔案,其鏈結情況由fat表指出(鏈結情況學生自定),現又要儲存乙個新檔案,然後對已儲存的檔案插入乙個新記錄。執行你所設計的程式,觀察其結果。

第二題:模擬便於直接訪問的索引檔案結構。

[提示]:

(1) 有時使用者希望不按邏輯記錄順序而直接訪問檔案中的任意乙個邏輯記錄。在ms-dos的鏈結結構中只需沿鏈查fat表就可找到指定記錄的實體地址。為了能更快地直接查詢指定記錄,可考慮另一種檔案儲存結構,即索引檔案結構。

索引檔案像鏈結檔案一樣,檔案的邏輯記錄資訊可存放在非連續的磁碟儲存空間中。但這些存放邏輯記錄的儲存空間不是按鍊錶的形式鏈結在一起的,而是採用索引表來指出邏輯記錄存放的物理位置。

假定把檔案中的邏輯記錄按次序1,2,3,4,……編號,且約定乙個物理塊中存放乙個邏輯記錄,那麼,索引表的格式根號圖7-4。檔案中的每乙個邏輯記錄在索引表中都有乙個登記項,登記項指出邏輯記錄號以及該記錄存放在磁碟上的位址(可用物理塊號表示),「最大記錄號」表示檔案中邏輯記錄個數。乙個使用者建立多個檔案時,系統要為每個檔案建立一張索引表,索引表的存放位址登記在使用者檔案目錄表中。

於是當使用者要訪問指定檔案的某個記錄時,系統就能直接查到該記錄的物理位置。檔案目錄與索引表的關係如圖7-4。

圖7-4 索引檔案結構

(2) 一般說來,索引表按記錄順序排列後,既有利於採用順序訪問方式訪問檔案,又便於採用直接訪問方式訪問檔案。

建立索引檔案的過程是:尋找一些空閒物理塊;邏輯記錄存入這些物理塊中;把邏輯記錄與物理塊的對應關係登記在索引表中。

在模擬實驗中可只模擬索引表的構造,要求把第一題中已經建立的若干個鏈結檔案(它們的鏈結情況由fat表指出)變換成索引檔案的結構。請設計乙個檔案儲存結構的轉換程式,要求能顯示轉換前的fat表和轉換後的索引表。

四、實驗報告

(1) 實驗題目。

(2) 程式中使用的資料結構及其說明。

(3) 流程圖(第二題)。

(4) 列印乙份源程式且加上注釋。

(5) 列印出初始的fat表,執行第一題的程式得到的fat表,以及轉換成索引檔案結構後的索引表。

作業系統實驗三檔案與目錄管理

實驗三檔案與目錄管理實驗 實驗名稱 檔案與目錄管理 實驗學時 2 實驗目的 通過執行ls,file,mkdir,rmdir,cd,rm等命令理解作業系統對檔案和目錄的控制和管理 實驗內容 一 檢視目錄與檔案內容 二 檔案與目錄的建立 複製 刪除 實驗環境 linux os fedora 15 實驗步...

作業系統檔案管理系統模擬實驗

檔案管理系統模擬 1.實驗目的 通過乙個簡單多使用者檔案系統的設計,加深理解檔案系統的內部功能及內部實現 2.實驗內容 為linux系統設計乙個簡單的二級檔案系統。要求做到以下幾點 1 可以實現下列幾條命令 至少4條 login 使用者登入 dir 列檔案目錄 create 建立檔案 delete ...

作業系統檔案管理

博文很長,我把一章的內容都總結在這裡了。在現代計算機系統中,要用到大量的程式和資料,因記憶體容量有限,且不能長期儲存,故而平時總是把它們以檔案的形式存放在外存中,需要時再隨時將它們調入記憶體。如果由使用者直接管理外存上的檔案,不僅要求使用者熟悉外存特性,了解各種檔案的屬性,以及它們在外存上的位置,而...