1. 程式人生 > >MIT 6.S081 聊聊xv6的檔案系統(中)日誌層與事務

MIT 6.S081 聊聊xv6的檔案系統(中)日誌層與事務

前言 =============== 我本想把上篇中沒講完的剩餘層全部在本篇中講完,但沒想到越寫越多。**日誌層**的程式碼不多,其思想和解決問題的手段也不算難以理解,但其背後涉及的原理和思想還是非常值得回味的,因此我打算用一整篇完整的blog來講解日誌層,並對其作出一點擴充套件。 本篇內容應該也會幫你對**事務**的擁有一個更好地理解。 聊聊xv6的檔案系統(上篇):https://www.cnblogs.com/KatyuMarisaBlog/p/14366115.html 淺談一致性 ======================== #### 警告: 本節內容我越寫越覺得自己是個民科,整出了一套四不像的東西來強行糊弄自己,如果覺得這部分內容辣眼睛的話就請跳過吧(留下了蔡雞的淚水) 《xv6 book》中告訴我們,檔案系統必須支援`crash recovery`,即檔案系統在訪問檔案的過程中如果經歷斷電等情況,經過重啟仍然能夠正常工作。更加嚴謹的說法是,檔案系統在面臨崩潰等情況後,仍然能夠保證**一致性**。這裡的**一致性**可能與我們所預想的定義有所出入。為了能夠正確的理解日誌層為檔案系統提供的作用,我們必須首先正確理解本文中所談及的**一致性的具體含義**。 首先我們給出wikipedia上關於一致性的嚴謹定義: > The semantic definition states that a theory is consistent if it has a model, i.e., there exists an interpretation under which all formulas in the theory are true. > The syntactic definition states a theory T is consistent if there is no formula φ such that both φ and its negation