文件的共享
文件共享是指多個使用者可以同時存取同一個文件,而係統只保留該文件的一個副本。這種方式不僅節省了輔存和主存空間,也減少了I/O操作次數,提升了使用者體驗和系統資源利用率。
檔案共享的實作方法
文件共享的實作通常採用以下幾種方法:
目錄連結法
目錄連結法是在樹狀目錄結構中,當多個使用者需要存取同一個檔案時,在各自的使用者檔案目錄表中為共用檔案建立目錄項目(即連結)。目錄項保存指向共用檔案的指標。
特點:
- 樹狀目錄變成網狀目錄:多個使用者的目錄項目可以指向同一個共用檔案。
- 查找路徑不唯一:使用者透過不同路徑都可以存取共用檔案。
- 可能的問題:
- 刪除異常:使用者刪除自己的目錄項目時,檔案並不會實際被刪除,除非所有使用者都刪除了該目錄項目。
- 更新異常:共享檔案被任一使用者修改後,所有使用者存取的內容都會發生變化。
索引結點連結法
索引結點連結法是透過檔案系統中的索引結點來實現共享。每個檔案都有一個索引結點,包含檔案的元資料(如儲存位址、檔案長度等)。目錄項目中只儲存檔案名稱和指向該檔案索引結點的指標。
共享實作:
- 共用使用者的目錄項目指向同一個索引結點。
- 連結計數器(count):每個索引結點都有一個計數器,記錄目前連結到該結點的目錄項目個數。
- 刪除操作:當使用者刪除檔案時,僅刪除其目錄項,並減少索引結點的計數器;只有當計數器為 0 時,檔案的實際資料才會被刪除。
優點:
- 共享文件時無需複製文件內容,節省儲存空間。
- 統一管理文件的元數據,便於維護和修改。
符號連結法
符號連結法是透過建立一個符號連結檔案(Symbolic Link)來實現共享。在這種方法下,系統呼叫過程 link
用於為共享文件建立新的符號連結文件,並記錄在使用者的目錄項目中。符號連結檔案包含目標檔案的路徑。
優點:
- 避免指針懸空:符號連結記錄的是目標檔案的路徑,而不是檔案實際資料區塊的指針,因此不會出現指針懸空問題。
- 跨檔案系統共享:符號連結可以實現網路環境下的任意檔案共享。
缺點:
- 系統開銷增加:系統需要管理符號連結檔案及其路徑資訊。
- 佔用輔存空間:符號連結檔案會佔用少量的輔存空間。
各種文件共享方法的比較
方法 | 優點 | 缺點 |
---|---|---|
目錄連結法 | 共享檔案無須複製,節省儲存空間 | 目錄結構變為網狀,路徑不唯一,易出現異常 |
索引結點連結法 | 統一管理元數據,連結計數器避免文件誤刪 | 僅限於同一文件系統,無法跨文件系統共享 |
符號連結法 | 跨檔案系統分享,避免指標懸空 | 增加系統開銷,佔用輔存空間 |