天天看點

作業系統學習筆記——第六章 檔案管理

在學習作業系統時總結了筆記,并分享出來,特别是藍色和紅色字型。

參考書:《作業系統》谌衛軍等,清華大學出版社,2012年5月

參考視訊:清航全套計算機專業課視訊

目錄

第六章 檔案管理

1.檔案

2.目錄

3.檔案系統的實作

第六章 檔案管理

可以從兩種不同的觀點來看待檔案系統:

-使用者觀點:關心的是檔案系統所提供的對外的使用者接口,包括檔案如何命名、如何保護、如何通路(建立、打開、關閉、讀、寫等);

-作業系統觀點:關心的是如何來實作與檔案有關的各個功能子產品,包括如何來管理存儲空間、檔案系統的布局、檔案的存儲位置等。

1.檔案

檔案的結構

-指檔案的邏輯結構,即檔案系統提供給使用者的檔案結構形式,它獨立于在外存上的實體存儲結構。

-無結構:整個檔案由一序列無結構的位元組流組成;

作業系統學習筆記——第六章 檔案管理

檔案的分類

普通檔案(regular file):包含使用者資訊的檔案;

-ASCII檔案:由一行行的文本組成;

-二進制檔案:非ASCII檔案,通常具有某種内部的邏輯結構,為相關的應用程式所了解。

目錄檔案(directory):管理檔案系統結構的系統檔案。

作業系統學習筆記——第六章 檔案管理

思考:檔案的屬性資訊存在哪?(後邊講)

2.目錄

-檔案太多了怎麼辦?不同的應用程式有不同類型的檔案,不同的使用者有不同的檔案,如何對它們進行組織、分類?

-如何對檔案進行管理?當使用者需要通路某個檔案時,如何根據這個檔案名迅速地定位到相應的檔案,進而對檔案的屬性和内容進行各種操作?

-解決的辦法就是:目錄。

目錄(directory)也稱檔案夾(folder),它是一張表格,記錄了在該目錄下的每一個檔案的檔案名和其他的一些管理資訊。

一般情況下,每個檔案占用該表格的某一行,即一個目錄項(該表格如何存放?);

這張表格本身是以檔案的形式存放在磁盤上;

在目錄的管理上,也有相關的系統調用,如:

-建立目錄create;

-删除目錄delete;

-修改目錄名rename;

作業系統學習筆記——第六章 檔案管理

思考:如何存放?結構體數組

作業系統學習筆記——第六章 檔案管理

思考:根目錄如何存放?單獨存放

3.檔案系統的實作 

6.1(檔案)和6.2(目錄)是從使用者的角度來看待檔案系統,使用者所關心的問題是檔案如何來命名、可以對檔案進行哪一些操作、目錄的邏輯結構是什麼樣的等各種與使用者接口有關的問題;

從檔案系統的實作來看,實作者更關心的是檔案和目錄是如何存儲的、磁盤空間是如何管理的、如何使整個檔案系統能高效、可靠地運轉。

塊(block)

-檔案的邏輯結構一般是位元組流;

-對于使用者而言,可以在這種位元組流的基礎上,構造自己所需的各種類型的資料結構,如:記錄結構、樹狀結構、線性結構等;

-對于檔案系統而言,必須将這種位元組流(一個連續的邏輯位址空間)儲存在磁盤的某些扇區中;

-通常做法:把磁盤空間劃分為一個個大小相同的塊(block),稱為實體塊;把該邏輯位址空間也分成大小相同的邏輯塊,在檔案系統的内部,以塊為機關來進行操作;

-一個實體塊由一個或多個連續的扇區組成。

小實驗:一個文本十個字元占用(大小)10個位元組,但在磁盤占用空間32KB(塊的大小:32KB)

檔案系統的布局

一個磁盤在低級格式化以後,可以用分區軟體劃分為若幹個分區。在分區以後,磁盤的扇區0稱為主引導記錄(Master Boot Record,MBR),用來啟動計算機,MBR的結尾是一個分區表,記錄了每個分區的起始扇區和大小,其中有一個分區為活動分區;

作業系統學習筆記——第六章 檔案管理

檔案的實作需解決以下兩個問題:

-如何來描述一個檔案,如何來記錄檔案的各種管理資訊?

-如何來存放檔案,即如何把檔案的各個連續的邏輯塊存放在磁盤上的空閑實體塊當中?如何來記錄邏輯塊與實體塊之間的映射關系?

作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理

如何來實作FAT?

-想想在頁式存儲管理當中,如何實作邏輯頁面到實體頁面的映射?

-FAT表的實作方法:在檔案系統中,設定一個維的線性表格,其項數等于磁盤實體塊個數,并按實體塊編号的順序建立索引。對于每一個檔案,在它的FCB中記錄了第一個實體塊編号X1,而在FAT表的第X1項中,記錄了該檔案的第二個實體塊編号X2,…,進而形成一個連結清單。

作業系統學習筆記——第六章 檔案管理

多個檔案如下:

作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理

思考:假設每個實體塊大小為4KB,每個檔案最大為多少?

假設位址為一個整數,四個位元組,最多放:4K/4=1K,一共可放4KB*1K = 4M

若檔案太大,怎麼辦?可指向另一位址映射表。(用二級索引或三級索引)

目錄的實作

目錄的主要功能:根據使用者給出的ASCIⅡ形式的檔案名(路徑名),迅速地定位到相應的檔案控制塊。目錄的實作需解決以下三個問題:

-目錄項的内容;

-長檔案名問題;

-目錄的搜尋方法。

作業系統學習筆記——第六章 檔案管理
作業系統學習筆記——第六章 檔案管理

思考:若隻更改了檔案名,什麼發生了改變?父目錄發生了改變

系統調用的實作

在檔案系統的内部,是如何來實作open、close、read、write等各種系統調用函數的?

1)資料結構

·位于外存上的資料結構:

-目錄結構:用來組織檔案,通過檔案名來尋找其FCB;

-檔案控制塊FCB:記錄了檔案的各種屬性資訊和檔案所在的實體塊資訊;

·位于記憶體中的資料結構:

-系統内打開檔案表:記錄了系統中已打開檔案的FCB和共享計數等資訊;

-程序内打開檔案表:在程序内部打開的檔案所組成的一個表格,包括打開方式、讀寫指針、該檔案在系統打開檔案表中的索引。

繼續閱讀