Communicating sequential processes
Communicating sequential processes
Thrifty execution of task pipelines
Acta Informatica
Programming in Occam
Conversion from data-driven to synchronous execution in loop programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Strategies for real-time system specification
Strategies for real-time system specification
A general-purpose algorithm for analyzing concurrent programs
Communications of the ACM
A bridging model for parallel computation
Communications of the ACM
Operating system concepts (3rd ed.)
Operating system concepts (3rd ed.)
Data flow analysis of distributed communicating processes
International Journal of Parallel Programming
A foundation for sequentializing parallel code
SPAA '90 Proceedings of the second annual ACM symposium on Parallel algorithms and architectures
On satisfying timing constraints in hard-real-time systems
SIGSOFT '91 Proceedings of the conference on Software for citical systems
Some Deadlock Properties of Computer Systems
ACM Computing Surveys (CSUR)
Communicating sequential processes
Communications of the ACM
Structured Development for Real-Time Systems
Structured Development for Real-Time Systems
System development (Prentice-Hall International series in computer science)
System development (Prentice-Hall International series in computer science)
Static analysis of multiway synchronization
CASCON '94 Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
Compiler-generated staggered checkpointing
LCR '04 Proceedings of the 7th workshop on Workshop on languages, compilers, and run-time support for scalable systems
Local and global deadlock-detection in component-based systems are NP-hard
Information Processing Letters
Efficiently verifiable conditions for deadlock-freedom of large concurrent programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Hi-index | 0.00 |
We present an algorithm for analyzing deadlock and for constructing sequentializations of a class of communicating sequential processes. The algorithm may be used for deadlock detection in parallel and distributed programs at compile time, or for debugging purposes at run time. The algorithm generates a data structure we call the flow graph, which contains all you need to know about the communications between the processes. If the algorithm is used only for debugging, it is not necessary to retain a copy of the flow graph. Both static deadlock analysis and trace generation are linear in the size of the (minimum) flow graph we construct.