Operating systems (3rd ed.): internals and design principles
Operating systems (3rd ed.): internals and design principles
Evaluating architectures for multithreaded object request brokers
Communications of the ACM
Compact finite difference schemes for ocean models: 1. Ocean waves
Journal of Computational Physics
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Advanced Concepts in Operating Systems
Advanced Concepts in Operating Systems
Middleware Specialization for Memory-Constrained Networked Embedded Systems
RTAS '04 Proceedings of the 10th IEEE Real-Time and Embedded Technology and Applications Symposium
Cooperating Sequential Processes, Technical Report EWD-123
Cooperating Sequential Processes, Technical Report EWD-123
Efficient distributed deadlock avoidance with liveness guarantees
EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
Operating System Concepts
Avoiding deadlock in multitasking systems
IBM Systems Journal
Distributed priority inheritance for real-time and embedded systems
OPODIS'06 Proceedings of the 10th international conference on Principles of Distributed Systems
Thread allocation protocols for distributed real-time and embedded systems
FORTE'05 Proceedings of the 25th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
Hi-index | 0.00 |
We study resource management in distributed systems. Incorrect handling of resources may lead to deadlocks, missed deadlines, priority inversions, and other forms of incorrect behavior or degraded performance. While in centralized systems deadlock avoidance is commonly used to ensure correct and efficient resource allocation, distributed deadlock avoidance is harder, and general solutions are considered impractical due to the high communication overhead. However, solutions that use only operations on local data exist if some static information about the possible sequences of remote invocations is known. We present a family of efficient distributed deadlock avoidance algorithms that subsumes previously known solutions as special instances. Even though different protocols within the family allow different levels of concurrency and consequently fewer or more executions, we prove that they all have the same set of reachable states, expressed by a global invariant. This result enables: (1) a design principle: the use of different protocols at different sites does not compromise deadlock avoidance; (2) a proof principle: any resource allocation protocol that preserves the global invariant and whose allocation decisions are at least as liberal as those of the least liberal in the family, guarantees absence of deadlock.