1 / 34

Operating System Principles 作業系統原理 Chapter 10 檔案系統

Operating System Principles 作業系統原理 Chapter 10 檔案系統. 著者 ABRAHAM SILBERSCHATZ Yale University PETER BAER GALVIN Corporate Technologies GREG GAGNE Westminster College 譯者 駱詩軒 駱詩富 鄧俊修. 10 . 1 檔案的觀念 10 . 2 存取方法 10 . 3 目錄結構 10 . 4 檔案系統安裝 10 . 5 檔案分享 10 . 6 保護.

lavey
Download Presentation

Operating System Principles 作業系統原理 Chapter 10 檔案系統

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operating System Principles作業系統原理Chapter 10 檔案系統 著者 ABRAHAM SILBERSCHATZ Yale University PETER BAER GALVIN Corporate Technologies GREG GAGNE Westminster College 譯者 駱詩軒 駱詩富 鄧俊修

  2. 10.1 檔案的觀念 10.2 存取方法 10.3 目錄結構 10.4 檔案系統安裝 10.5 檔案分享 10.6 保護 第五篇 儲存裝置 Chapter 10 檔案系統

  3. 第五篇 儲存裝置 • 因為主記憶體通常太小而無法一成不變地配合所有資料和程式,電腦系統必須提供輔助記憶體來備份主記憶體。 • 現代電腦系統使用磁碟當作訊息(程式和資料二者)的主要線上儲存媒體。檔案系統提供線上儲存和存取磁碟上程式和資料的功能。

  4. Chapter 10 檔案系統 • 10.1 檔案的觀念 • 作業系統由它儲存裝置的物理特性很抽象地定義一個在邏輯上的儲存單位,那就是檔案。 • 從使用者的觀點來看,檔案是輔助儲存體中,邏輯上的最小分配單位;換言之,資料必須放入檔案中,否則沒法寫入輔助儲存裝置中。 • 一般來說,檔案代表程式和資料。

  5. 10.1.1 檔案特性 • 檔案的命名是為了方便人類的使用,因此通常以檔案名稱來指定某一檔案 • 檔案還有一些其它特性,這些特性隨著作業系統不同而有所差異,但通常包括了: • 名稱 (name):符號式的檔名是唯一用人看得懂的格式儲存。 • 識別符號 (identifier):獨一無二的標籤,通常是一個數字,用來辨識檔案系統 內的檔案;它是這個檔案之非人類可諳的檔名。 • 型態 (type):這項資訊對於提供不同檔案型態的系統有需要。 • 位置 (location):一個指標指向該檔案所在裝置的位置。 • 大小 (size):該檔案目前容量的大小 (以字元、位元組或區段為單位),以及 允許以後擴增的最大範圍。 • 保護 (Protection):存取控制資訊,控制誰能讀、寫、執行等資料。 • 時問、日期和使用者辨識:這項資訊可以保存產生、上次修改和上次使用資 料,以做為保護、安全,以及使用監督。

  6. 10.1.2 檔案運作 • 檔案是一個抽象的資料形式 (abstract data type)為了適切地定義檔案,我們必須考慮檔案上所表現的操作。 • 建立檔案 建立檔案需要兩個步驟。首先,為了這個檔案,其空間必須在檔案 系統中被找到。其次,必須在目錄中為新檔案做一個項目。 • 寫入檔案 做一次系統呼叫,指定檔案名稱和欲寫入檔案之資訊。系統必須保 持一個寫入指標到檔案的位置,下一個寫入在這個位置發生、當寫入發生時, 寫入指標必須被更新。 • 讀取檔案 一個系統呼叫指定了檔案的名稱和檔案下個區 段被放置的處所 (在記憶體中包括目錄、區段)。一旦那個區段被讀出,此指標即被更新。

  7. 重置擋案 搜尋目錄以找到相關的進入點,然後把目前檔案位置設定成某一固定值。這個檔案操作也稱為檔案搜尋。 • 刪除檔案 搜尋目錄以找此檔案;在找到相關的目錄項目後,我們釋放所有檔案的空間 ,並且將此目錄項目作廢。 • 縮減擋案 有時候使用者希望檔案的特性保持現狀,但希望清除掉檔案的內容。

  8. 對於每一個開啟的檔案都有以下相關的資訊: • 檔案指標 對於read()和write()系統呼叫沒有包含檔案位移的系統而言,它們必須追蹤上一次讀/寫的位置,以做為目前檔案位置的指標。 • 檔案開啟計數 檔案開啟計數器記錄 開啟和關閉的次數,在最後一個關閉動作時就變成零。然後系統就可以把該檔的進入點從表格移去。 • 檔案的磁碟位置 檔案在磁碟位置的資料存放在記憶體中,以避免每一次檔案操作時都必須從磁碟讀出。 • 存取權限 行程以一種存取模式開啟檔案,這個資訊被存放在行程表中,所以作業系統可允許或拒絕輸入/輸出的需求。

  9. 10.1.3 檔案型態

  10. 10.1.4 檔案結構 • 檔案型態也可以用來指出檔案的內部結構。原始檔和目的檔的結構正符合讀取它們的程式之要求。 • 進一步而言,有些檔案必須符合一定的結構,作業系統才能夠瞭解其內容。 • 作業系統可能會要求一個可執行檔有一定的結構,以便決定將檔案載入到記憶體的什麼地方,以及第一個指令的位置。 • 有些作業系統將此觀念延伸到一組系統支援的檔案結構,對於這些檔案結構都有特殊的操作來處理這些檔案。

  11. 10.1.5 內部檔案結構 • 對於一套作業系統而言,找到內部某一特定位置可能十分複雜。磁碟系統通常會有一定義完善的區段大小(sector) ,所有磁碟的輸入/輸出都是以區段為單位來執行,此區段就是實體記錄 (Physical record),所有的區段大小皆相同。實體記錄的大小不太可能會和邏輯記錄 (1ogical record)正好相同。邏輯記錄甚至會有不同的長度。將一些連輯記錄組成實體記錄是常見到的解決方法。

  12. 10.2 存取方法 • 10.2.1 循序存取 • 最簡單的存取方法是循序存取 (sequential access)。檔案中的資訊是依著記錄次序一筆接著一筆處理的,這也是至今最通用的檔案存取模式。

  13. 10.2.2 直接存取 • 另一種存取方法是直接存取 (direct access)(又叫做relative access)。檔案是由固定長度的逞輯記錄 (logical record)所組成,這可以讓程式不必以一定的順序,快速地讀寫記錄。 • 為了要直接存取,檔案被視為一串編有號碼的區段或記錄。

  14. 10.2.3 其它的存取方法 • 其它的存取方法也可以建立在一個直接存取方法的基礎上。這些方法一般都包含了對檔案所設的索引結構。索引(index),就像書本後面的索引一樣,包含了指向不同區段的指標(Pointer)。 • 要找檔案中某個單元,我們先在目錄中尋找,然後使用指標去直接存取檔案和找出所要的單元。

  15. 10.3 目錄結構 • 10.3.1 儲存裝置

  16. 10.3.2 目錄概觀 • 目錄可以視為是一個把檔名轉換成目錄進入點的符號表 • 可對目錄的操作 • 搜尋 • 必須能搜尋一個目錄結構以找出某個檔案中的某個單元。 • 建檔 • 需要建一些檔案並且加到目錄中 • 刪除檔案 • 一個檔案已不再需要時,我們將會想要把他從目錄中刪除。 • 更改檔名 • 追蹤(traverse)檔案系統 • 提供一份拷貝以仿系統故障。

  17. 10.3.3 單層目錄 • 最簡單的目錄結構就是單層目錄。所有的檔案都裝在同一目錄中,非常容易瞭解與使用。

  18. 10.3.4 雙層目錄 • 在雙層目錄結構中,每個使用者擁有自己的使用者檔案目錄 (user file directory, UFD)。每個UFD都有一個相似的結構,但是只列出單一使用者的檔案。當一個使用者的任務開始了或是一個使用者簽到(login)之後,系統的主檔案目錄 (master file directory, MFD)就被搜尋一遍。主檔案目錄是用使用者姓名或是帳號來索引,並且其中每單元都指向一個使用者的使用者檔案目錄

  19. 10.3.5 樹狀目錄

  20. 10.3.6 非循環圖型目錄 • 一個非循環圖型 (acyclic graph)則允許目錄中的副目錄或檔案被共用

  21. 10.3.7 一般圖型的目錄 • 使用非循環圖型結構時最嚴重的問題就是如何保證沒有循環存在。如果我們以雙層目錄開始,並且允許使用者建立子目錄,一個樹狀結構的目錄就形成了。我們很容易看出來加入新的檔案和子目錄到現有的樹狀目錄上仍可保持它的樹狀結構特性。但是,當我們將鏈加到現有樹狀結構的目錄上時,樹狀結構就被破壞了,造成了一個單調圖型結構 。

  22. 10.4 檔案系統安裝 • 正如同一個檔案必須先開啟才可以使用,一個檔案系統必須先安裝才可以被系統的行程取得。更特別的是,目錄系統可以由許多分割區建立起來,此種目錄必須被安裝才可以讓它們在檔案系統的命名空間中取得。

  23. 10.5 檔案分享 • 10.5.1 多使用者 • 當作業系統容納多位使用者時,檔案分享、檔案命名和檔案保護等事項變得很重要。對於檔案可以被使用者分享的目錄,系統必須調解檔案的分享。在預設情況下,系統可以允許使用者存取其它使用者的檔案,或是它可能要求使用者獲得該檔案的存取權。

  24. 10.5 檔案分享 • 10.5.2 遠端檔案系統 • 網路允許遠端的電腦間彼此通信。網路允許資源的分享散佈在校園或甚至於整個世界。一種明頓的分享資源是資料 (以檔案的型式)。經由網路和檔案技術的演進,檔案分享的方法也已經改變。 • 在最先製作的方法中,使用者以人工的方式經由類似 ftp的程式在機器之間傳送檔案。 • 第二種主要的方法是一種分散式的檔案系統 (distributed file system, DFS),這種方法讓遠端的目錄在本地端可以看得見。 • 第三種方法 (全球資訊田,World Wide Web)是第一種方法的reversion。網頁瀏覽器需要用來取得遠端檔案的存取權,而其它的操作(主要是 ftp的包裝版)則被用來傳輸檔案。

  25. 10.5.2.1 客戶-伺服器模型 • 遠端檔案系統允許電腦從一台或多台遠端機器安裝一個或多個檔案系統。,包含檔案的機器是伺服器,希望存取檔案的機器是客戶。 • 10.5.2.2 分散式資訊系統 • 為了使客戶伺服器的管理更簡單,分散式資訊系統(distributed information system,也稱為分散式命名服務,distributed naming services)已經被發明用來提供遠端計算所需之資訊的一致性存取。 • 領域名稱系統 (domain name system, DNS)提供整體網際網路的主機名稱到網路位址的轉換(包括全球資訊網)。

  26. 10.5.2.3 失效模式 • 區域檔案系統可能因一些不同的原因而失效,逼包括了存放檔案系統之磁碟的失效、目錄結構或其它磁碟管理資訊(統稱為metadata)的損毀、磁碟控制器的失效、纜線失效或主機轉接器失效。 • 使用者或系統管理者的失效可能也會造成檔案遺失或者整個目錄或分割區被刪除。許多這種失效將造成主機毀損和錯誤情況顯示出來,並且要求人為介入做修復。

  27. 10.5.3 一致性語意 • 一致性語意 (consistency semantics)為評估任何支援共用檔案系統的一項重要判斷標準。它是一項系統特性,該特性規定多個使用者同時存取一個共同檔案的語意。這些語法在由一使用者修改資料且該資料可被其它使用者看到時更當明白規定。 • 10.5.3.1 UNIX語意 • UNIX檔案系統 使用下列一致性語意 • 一位使用者對一已開啟檔案進行寫入的動作時,可被其它也開啟該檔案的使用者立即看見。 • 具有共用的模式,在該模式下使用者共同指向檔案目前位置的指標。因此,一 位使用者前進該指標會影響所有共用的使用者。此處一個檔案僅有單一之映像 交叉在所有存取動作之間,不論其原來為何種檔案。

  28. 10.5.3.2 會議語意(session semantic) • Andrew file system, AFS檔案系統 使用下列一致性語意: • 一位使用者對一已開啟檔案進行寫入之動作時,無法被其它也開啟該檔案的使用者立即看見。 • 一旦關閉一個檔案,其所做之改變只能在下一次會議中看見。已開啟該檔案的其它使用者無法察覺這些改變。

  29. 10.5.3.3 不變共用檔案之語意 • 一種不同而相當特殊的方法是不變共用檔案 (immutable shared files)。一旦檔案由其建檔者宣告成共用,則它便不能再做任何修改。一個不變檔案有兩個重要性質: 其名稱不能重複使用以及其內容不可更動。

  30. 10.6 保護 • 當資訊保存在電腦中,我們主要關切的就是它的保護問題,無論是實體上的損毀(可靠度, reliability)或是不當的存取 (防護, protection)。

  31. 10.6.1 存取型態 • 檔案需要保護乃是存取檔案的能力所造成的結果。在不允許其它使用者存取檔案的系統中,根本不需要保護。我們需要的是帶有管制的存取 (controlled access)。提供帶有管制的保護方法就是限制可以使用的存取檔案型式。允許或是拒絕檔案被存取完全由一些因素來決定,存取的型式就是其中之一。許多可以控制的作業類型如下: • 讀取 (read):從檔案中讀取。 • 寫入(write):寫入或重寫某檔案。 • 執行 (execute):將檔案載入記憶體並且執行它。 • 附加 (append):將新資料寫在檔案尾端。 • 刪(delete):除掉某檔案並且將其所佔用空間讓給可能的重新使用。 • 列出(list):列出檔案的名稱和特性。

  32. 10.6.2 存取控制 • 另一種常見的保護力法是,根據對使用者的識別來決定能否做存取。不同的使用者可能需要不同類型的存取檔案或目錄的方法。 • 我們可以用一個存取串列 (access control list, ACL)來對應一個檔案或目錄,並且用它來識別使用者名稱與該使用者所被允許的存取類型。 • 當一個使用者要求某一個檔案的時候,作業系統就檢視該檔案的存取串列。如果串列中該使用者被列在他所要求的存取類型中,該項存取就會被允許。否則,就違反了保護措施,使用者的工作會被終止。 • 使用存取串列的主要障礙在於它的長度。

  33. 使用存取串列的主要障礙在於它的長度。 • 串列的濃縮版本 • 擁有者 • 建立檔案的使用者 • 團體 • 共用檔案和需要相似存取的使用者集合 • 其他的人 • 系統中的其他使用者

More Related