跳轉至

文件的共享

文件共享是指多個使用者可以同時存取同一個文件,而係統只保留該文件的一個副本。這種方式不僅節省了輔存和主存空間,也減少了I/O操作次數,提升了使用者體驗和系統資源利用率。

檔案共享的實作方法

文件共享的實作通常採用以下幾種方法:

目錄連結法

目錄連結法是在樹狀目錄結構中,當多個使用者需要存取同一個檔案時,在各自的使用者檔案目錄表中為共用檔案建立目錄項目(即連結)。目錄項保存指向共用檔案的指標。

特點

  • 樹狀目錄變成網狀目錄:多個使用者的目錄項目可以指向同一個共用檔案。
  • 查找路徑不唯一:使用者透過不同路徑都可以存取共用檔案。
  • 可能的問題
  • 刪除異常:使用者刪除自己的目錄項目時,檔案並不會實際被刪除,除非所有使用者都刪除了該目錄項目。
  • 更新異常:共享檔案被任一使用者修改後,所有使用者存取的內容都會發生變化。

索引結點連結法

索引結點連結法是透過檔案系統中的索引結點來實現共享。每個檔案都有一個索引結點,包含檔案的元資料(如儲存位址、檔案長度等)。目錄項目中只儲存檔案名稱和指向該檔案索引結點的指標。

共享實作

  • 共用使用者的目錄項目指向同一個索引結點。
  • 連結計數器(count):每個索引結點都有一個計數器,記錄目前連結到該結點的目錄項目個數。
  • 刪除操作:當使用者刪除檔案時,僅刪除其目錄項,並減少索引結點的計數器;只有當計數器為 0 時,檔案的實際資料才會被刪除。

優點

  • 共享文件時無需複製文件內容,節省儲存空間。
  • 統一管理文件的元數據,便於維護和修改。

符號連結法

符號連結法是透過建立一個符號連結檔案(Symbolic Link)來實現共享。在這種方法下,系統呼叫過程 link 用於為共享文件建立新的符號連結文件,並記錄在使用者的目錄項目中。符號連結檔案包含目標檔案的路徑。

優點

  • 避免指針懸空:符號連結記錄的是目標檔案的路徑,而不是檔案實際資料區塊的指針,因此不會出現指針懸空問題。
  • 跨檔案系統共享:符號連結可以實現網路環境下的任意檔案共享。

缺點

  • 系統開銷增加:系統需要管理符號連結檔案及其路徑資訊。
  • 佔用輔存空間:符號連結檔案會佔用少量的輔存空間。

各種文件共享方法的比較

方法 優點 缺點
目錄連結法 共享檔案無須複製,節省儲​​存空間 目錄結構變為網狀,路徑不唯一,易出現異常
索引結點連結法 統一管理元數據,連結計數器避免文件誤刪 僅限於同一文件系統,無法跨文件系統共享
符號連結法 跨檔案系統分享,避免指標懸空 增加系統開銷,佔用輔存空間