Deadlock-Free Channels and Locks
Deadlock-Free Channels and Locks
复制标题
无死锁通道和锁
DOI:
10.1007/978-3-642-11957-6_22
复制
发表时间:
2010
影响因子:
2.8
通讯作者:
Jan Smans
中科院分区:
文献类型:
--
作者:
K. R. M. Leino;Peter Müller;Jan Smans
The combination of message passing and locking to protect shared state is a useful concurrency pattern. However, programs that employ this pattern are susceptible to deadlock. That is, the execution may reach a state where each thread in a set waits for another thread in that set to release a lock or send a message.
This paper proposes a modular verification technique that prevents deadlocks in programs that use both message passing and locking. The approach prevents deadlocks by enforcing two rules: (0) a blocking receive is allowed only if another thread holds an obligation to send and (1) each thread must perform acquire and receive operations in accordance with a global order. The approach is proven sound and has been implemented in the Chalice program verifier.