过去几周我正在研究一些并发程序,并且想知道是否有任何工具可以自动检测其操作保证的进展条件,即是否等待,无锁或阻塞-自由。
我在网上搜索过,没找到任何这样的工具。
可以告诉我们如何推断出一个程序的进度条件吗?
答案 0 :(得分:3)
假设我有一个名为 wait-freedom decider 的程序,它可以读取描述数据结构的并发程序并检测它是否等待,即“保证任何进程都可以完成的程序”任何有限步骤的操作“ala Herlihy's "Wait-Free Synchronization"。然后,给定单线程程序www
,创建一个程序,我们将提供给等待自由决策程序:
P
当且仅当class DataStructure:
def operation(this):
P
pass
停止时,现在DataStructure.operation
以有限的步数完成。
这将解决暂停问题。这是不可能的,因此,矛盾的是,我们必须无法创造一个等待自由的决定者。