核心概念
本文探討了在總體存儲順序 (TSO) 語義下運行的併發程序轉換圖上進行的遊戲,證明了可達性和安全性問題可以簡化為對單進程程序的分析,並引入了公平性條件以模擬更實際的程序行為,進而證明了在公平性條件下,可達性和安全性問題是不可判定的。
要約
總體存儲順序 (TSO) 語義下的可達性和安全性遊戲
本文探討了在總體存儲順序 (TSO) 語義下運行的併發程序轉換圖上進行的遊戲。遊戲被用於模擬系統和其環境之間的交互,在此情況下,即併發進程和非確定性 TSO 緩衝區更新之間的交互。
遊戲模型
在本文提出的模型中,遊戲由兩個玩家輪流進行:
- 進程玩家:可以執行進程中任何可執行的指令。
- 更新玩家:負責更新每個進程和共享內存之間緩衝區中的消息。
可達性和安全性問題
- 可達性問題:進程玩家嘗試到達一組給定的目標狀態,而更新玩家嘗試避免這種情況。
- 安全性問題:兩者的角色互換。
結果
- 本文證明了,在這兩種情況下,尋找遊戲的贏家都可以簡化為分析在只有一個進程的程序上進行的遊戲。
- 這些遊戲與有限狀態遊戲是雙模擬的,因此是可判定的。特別是,可達性和安全性問題是 PSPACE 完備的。
- 之所以併發程序表現出有限狀態的特性,是因為兩個玩家的最佳行為。如果控制進程的玩家有一個獲勝策略,那麼她可以通過只在一个进程中进行游戏来获胜,而忽略程序的所有其他进程。另一方面,如果控制缓冲区的玩家能够获胜,她可以通过永远不让任何写操作到达内存来做到这一点。在这两种情况下,都没有并发性,因为进程之间不交互或通信。
- 為了模擬更實際的程序行為,本文引入了兩種公平性條件:
- 更新公平性:在無限運行中,更新玩家必須確保每個寫操作在有限步後到達內存。
- 進程公平性:在無限運行中,進程玩家必須無限次地執行每個啟用的進程。
不可判定性
- 本文證明了,在更新公平性條件下,可達性問題是不可判定的。
- 本文還證明了,在進程公平性條件下,安全性問題是不可判定的。
結論
本文研究了 TSO 語義下的遊戲驗證問題,證明了在沒有公平性條件的情況下,可達性和安全性問題是可判定的,但在公平性條件下,這兩個問題都變得不可判定。