Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 13: File-System Interface (Directory Structure (Single-Level…
Chapter 13: File-System Interface
File Concept
File
定義
最小的邏輯儲存單元
連續的邏輯位址空間
Access Methods
檔案屬性
Protection
: 控制誰可以讀、寫、執行
檔案資訊會被儲存在目錄結構, which is maintained on the disk
File Operations
Write
– at
write pointer
:star: location
Read
– at
read pointer
:star location
Reposition within file
-
seek
:star:
Open(Fi)
- 在目錄結構中搜尋entry fi,並將entry的內容移進memory
Close(Fi)
- 將entry的內容從memory移進目錄結構
Open Files
管理開檔所需的幾個資料
Open-file table
:star: : tracks open files
File pointer:指向上一次read/write檔案位置,作為目前檔案指標
File-open count:
:star: : 紀算檔案被開啟的次數,當最後一個process將該檔案關閉時,可以從Open-file table將data移除
Disk location of the file:可以快取檔案資訊
Access rights:是否允許process存取資訊
Open File Locking
Shared lock
:star: : 一種file lock,類似
reader lock
,多個processes可同時accquired
Exclusive lock
:star: : 一種file lock,類似
writer lock
,一次只有一個process可以obtain
Mandatory
(強制性):star:() : 判斷到locks hold,則拒絕request
Advisory(諮詢)
:star: : process可找到lock的狀態,並決定要怎麼做
Directory Structure
Single-Level Directory
: 單層式的目錄,將所有檔案都放在同一個目錄內。但這樣就沒又辦法依照屬性分類,或是名稱方面不能有相同的存在。
Two-Level Directory
: 雙層式目錄,不同的使用者可以擁有不同的目錄。這樣不同的使用者就可以有相同的檔案名稱,也比較好搜尋。但這種方法還是沒辦法按照屬性去分類。
Tree-Structured Directories
: 樹狀式目錄,他有根目錄,有好的搜尋能力也可以依照屬性分類,current directory的概念,有絕對跟相對的路徑名稱。
Acyclic-graph directories
: 非循環式圖形目錄,他能共享子目錄跟檔案,也就是說會有別名。
General graph directories
: 一般的圖形目錄,就是有迴圈存在。如果我們不想要有迴圈,那就要規定link只能指向檔案,不能指向子目錄。或是當有新的link加入時,用cycle detection演算法看有沒有迴圈產生。
Protection
User種類(3種)
owner access
group access
public access
指令
chgmod (e.g. chmod 761 game)(owner group public RWX)
chgrp (e.g. chgrp G game)
Memory-Mapped Files
定義
將檔案視為例行性的記憶體存取
包含檔案在虛擬記憶體中的內容。 檔案和記憶體空間之間的這個對應可讓應用程式 (包括多個處理序) 透過直接讀取和寫入記憶體來修改檔案。
多個processes可同時對應到同一檔案,allow sharing of data (也支持copy-on-write)
機制
將disk block對應到記憶體中的page