A system model for dynamically reconfigurable software
IBM Systems Journal
Fault-Tolerant Partial Replication in Large-Scale Database Systems
Euro-Par '08 Proceedings of the 14th international Euro-Par conference on Parallel Processing
On Scalable Synchronization for Distributed Embedded Real-Time Systems
SEUS '08 Proceedings of the 6th IFIP WG 10.2 international workshop on Software Technologies for Embedded and Ubiquitous Systems
Static deadlock detection for java libraries
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Hi-index | 0.00 |
Deadlock is one of the most serious problems in multitasking concurrent programming systems. The deadlock problem becomes further complicated when the underlying system is distributed and when tasks have time constraints. Distributed deadlock detection has been studied to some extent in distributed database systems and distributed timesharing operating systems but has not been widely used in real-time systems. In this report, we investigate deadlock detection algorithms in distributed environments and extend the results to real-time systems. In particular, we direct our attention to Ada environment and try to apply our solutions to it. Related problems, such as livelocks, orphan tasks, task termination problems, and global state detection, are considered when it is appropriate. This report has two main parts. First, we complete a state-of-the-art survey of the distributed deadlock detection algorithms proposed in the literature. The survey work includes: (1) graph theory, (2) distributed concurrent programming systems, (3) deadlock models, and (4) distributed deadlock detection and resolution algorithms. Second, we extend the deadlock problems into real- time systems and develop solutions for them. In particular, the solutions are developed with the applications to the Ada environment in mind. Also, we analyze and categorize the deadlock problem in Ada environments into four levels of complexity by using Knapp''s hierarchy of deadlock models. To fully support Ada semantics it is necessary to develop solutions for the most complex level. Many Ada applications, however, do not utilize all the features that Ada provides. Consequently, according to the characteristics of an application, the deadlock problem may be simplified by imposing certain restrictions on the use of Ada. We develop a series of solutions depending on the level of restriction imposed on the use of Ada and we relate those solutions to the levels of complexity associated with the theoretical models. Two algorithms related to the first two levels of complexity are presented in this report.