作業系統›Ch10 檔案管理第 25 題/共 28 題
25. File System、Caching、Index Consistency、Locking、Deadlock
#OS-10-025中File SystemCachingIndex ConsistencyLockingDeadlock
考慮一個磁碟檔案 ,其中儲存一組鍵值對(key-value pairs)。API「」用來回傳鍵 對應的值 ,前提是鍵值對 存在於 中。API「」則是:若 不存在,就把它寫入 ;否則就用 更新鍵 的值。這裡的 與 是各自獨立的行程(或執行緒)。請針對以下設計,判斷正確(○)或錯誤(×),這些設計的目的是在(存取延遲的意義下)最佳化對檔案 的讀寫操作。令 為儲存在 中的鍵值對集合。
(a) 將 分割成數個互不相交的區塊(blocks),即 。每個區塊 是記憶體與磁碟子系統之間的擷取單位(fetching unit)。給定 ,配置一個記憶體區塊 來儲存從磁碟複製過來的 。接著從 中取出 並回傳給 。為了效率, 中的鍵應該用平衡搜尋樹(balanced search tree)之類的結構組織。
(b) 對於 ,先更新 中的 。當 被置換(replaced)時, 應寫回 ,且 中原本的 可以被覆蓋。
(c) 我們額外在檔案系統中建立一個本機檔案索引 ,用來在 中定位 ,也就是說 能協助快速判斷 儲存在哪一個 中。 會被複製一份到記憶體中(記為 ),以減少對磁碟子系統執行的 IO 操作數量。 會因為 新增的 而被更新。因此, 與 可能會不一致。
(d) 有可能發生多個 操作處理相同的鍵 ,且這些 操作可能由不同的客戶端(clients)並行呼叫。一種可能的實作方式是:每個 必須先成功取得存取 與 兩者所需的鎖(locks),才能繼續更新 的值;一旦值被提交(committed),兩個鎖都會被釋放。在這種實作方式下,各種 操作『不可能』因此產生死結(deadlock)。
📄 成大114
▤完整推導請見《WH 資工筆記 · 作業系統》Ch10 檔案管理