ISSN 2979-8582 · Article No. 034
Sobaloju Joel Oyewumi: Mindbuilder Educational Institute, Oyo, Oyo State, Nigeria
Ayeni Joshua Ayobami: Department of Computer Science, Ajayi Crowther University, Oyo, Nigeria
Ojo Olufemi Samuel: Department of Computer Science, Ajayi Crowther University, Oyo, Nigeria
Oyediran Mayowa Oyedepo: Department of Computer Engineering, Ajayi Crowther University, Oyo, Nigeria
Resource sharing exposes every distributed system to deadlock, the state in which a set of processes is permanently blocked because each holds a resource that another requires. This paper presents a load adaptive deadlock prevention scheme that excludes deadlock structurally rather than detecting and resolving it after the fact. Before any contested resource is granted, a trial edge representing the prospective wait is added to the wait for graph and the augmented graph is tested for a cycle, the allocation proceeding only when the graph remains acyclic, so that the circular wait condition can never be satisfied. The scheme couples this prevention test to a token based mutual exclusion layer and a priority based allocation policy in which a higher priority request may preempt the holder of a contested resource, with the level of coordination tied to the measured arrival rate of critical section requests. The paper sets out the complete mathematical formulation of the scheme in forty numbered equations and the full prevention algorithm in nine procedures, then reports an empirical evaluation. Because the prevention test and a probe based detector share the same wait for graph machinery, the wait for graph operations were first validated through five detection experiments implemented in the C plus plus language on a Unix based testbed. These experiments characterise probe traffic, cycle identification accuracy, throughput, latency and the joint scaling of computation time and message volume, and they establish that the underlying graph operations scale linearly with the process population. Throughput recovered under heavy contention as the priority logic cleared blocked queues, rising from a trough of fifty five per cent to fifty eight per cent at thirty processes, and computation time and message volume grew together and approximately linearly to one hundred and fifty four point eight milliseconds and seven hundred and ten messages at one hundred and twenty processes. The wait for graph is constructed in time linear in the number of processes and each allocation is screened in time linear in the size of the graph, so the worst case cost of preventing an unsafe allocation is bounded by the number of processes and edges. The scheme therefore guarantees freedom from deadlock at a predictable and modest cost.
Keywords
This article is published under the Creative Commons Attribution 4.0 International License . Free to read, share, and adapt with attribution.
British Journal of Contemporary Research
Open Access · Peer Reviewed · Published by Bexford Publishing Ltd
Browse All Issues