ACM Transactions on Programming Languages and Systems (TOPLAS)
Deadlock detection in distributed databases
ACM Computing Surveys (CSUR)
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Deadlock detection and resolution in simulation models
WSC '94 Proceedings of the 26th conference on Winter simulation
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
ACM Computing Surveys (CSUR)
Communicating sequential processes
Communications of the ACM
Compact finite difference schemes for ocean models: 1. Ocean waves
Journal of Computational Physics
A scalable and flexible data synchronization scheme for embedded HW-SW shared-memory systems
Proceedings of the 14th international symposium on Systems synthesis
Symbolic Model Checking
Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract)
CAV '93 Proceedings of the 5th International Conference on Computer Aided Verification
Constraints Specification at Higher Levels of Abstraction
HLDVT '01 Proceedings of the Sixth IEEE International High-Level Design Validation and Test Workshop (HLDVT'01)
System-level design: orthogonalization of concerns and platform-based design
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Formal deadlock checking on high-level SystemC designs
Proceedings of the International Conference on Computer-Aided Design
Application of Deadlock Risk Evaluation of Architectural Models
Software—Practice & Experience
Hi-index | 0.00 |
In the design of highly complex, heterogeneous, and concurrent systems, deadlock detection and resolution remains an important issue. In this paper, we systematically analyze the synchronization dependencies in concurrent systems modeled in the Metropolis design environment, where system functions, high level architectures and function-architecture mappings can be modeled and simulated. We propose a data structure called the dynamic synchronization dependency graph, which captures the runtime (blocking) dependencies. A loop-detection algorithm is then used to detect deadlocks and help designers quickly isolate and identify modeling errors that cause the deadlock problems. We demonstrate our approach through a real world design example, which is a complex functional model for video processing and a high level model of function-architecture mapping.