非同步行為與局部資訊
level-triggered 跟 edge-triggered 的區分還挺有意思的,這是非同步I/O中的重要概念,指的就是觸發的模式。前者指的是水平觸發,類似分層,用濃度來比喻的話,就是隻要系統的外部環境維持在特定等級,他就會持續觸發通知;而後者則是一次性的觸發,只在情況發生變更的時候觸發一次。這兩者其實完全是同一個狀態變化模式下的兩種不同觸發行為:LT是根據不同水平,主語綁在水平上,A級是持續傳送,B級減少傳送,C級不傳送;ET指的是切換的瞬間,A-B,在此處發生變化,傳送一次,B-C,在此處發生變化,再發送一次。
在我看來,這些實際上都是為了解釋「局部資訊」的對齊問題。套用我先前在 分散式系統 中類比的官僚模型來說,就是縣官不如現管的問題。兩側非同步行動,而因其所掌握的資訊(狀態也屬於一種資訊)錯位,而導致了行為錯位。縣官不知現管所作之事,因而做出了錯誤的決策;反過來,現管不知縣官所下的新命令,因而做出了錯誤的行動。對齊始終是隻掌握局部資訊的行為者共同的個問題,不只是程式,在人類的社會活動中也是如此,兩者在這裡就展現出了多體系統的同構性。那麼我在思考,他們的解決思路是否也是在結構上存在一定相似的?從之前的情況可以看出,的確存在這樣的相似性。儘管我不會說分散式軟體工程就等於人類社會,但多體系統的知識仍舊可以具備一定的可遷移性。