我(错误地)学习了一门关于验证并发程序的课程,到目前为止,我们已经介绍了这种称为“Owicki-Gries 方法”的方法。显然,可以通过将断言与每个语句相关联来证明程序的各种结果,并表明这些断言是归纳的并且不会相互干扰。我们的一项任务涉及 Lamports 的快速互斥算法,详见本文:
在论文中,给出了互斥的 Owicki-Gries 风格证明。它看起来完全违反直觉。我很难理解的是如何首先提出这些断言?你什么时候知道这些断言既不是太强(太强以至于它破坏了干涉自由)也不是太弱(例如一些微不足道的东西,比如每个陈述的重言式)?
干杯