Abstract
We present a method of detecting if deadlocks may occur in concurrent logic programs. Typical deadlock analysis is “process-oriented”, being based on possible interleaving of processes. Our method is oriented towards the shared resources (communication channels, locks et cetera) and is based on orders in which individual resources are used by different processes. In cases where there are resources used by only a subset of all processes the search space can be dramatically reduced. The method arises very naturally out of the concurrent logic programming paradigm. Analysis of concurrent programs has previously used “coarsification” and “partial order” methods to reduce the search space. Our approach rediscovers and also extends these techniques. Our presentation is based around a logic programming pearl which finds deadlocked computations in a program which solves the dining philosophers problem.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Dijkstra, E.: Hierarchical ordering of sequential processes. Acta Informatica 1, 115–138 (1971)
Gregory, S.: Parallel logic programming in PARLOG: the language and its implementation. Addison-Wesley, Reading (1987)
Shapiro, E.: A subset of Concurrent Prolog and its interpreter. In: Shapiro, E. (ed.) Concurrent Prolog: Collected Papers, vol. I, pp. 27–83. MIT Press, London (1987)
Ueda, K.: Guarded Horn clauses. PhD thesis, University of Tokyo, Japan (1986)
Naish, L.: Parallelizing NU-Prolog. In: Proceedings of the Fifth International Conference/Symposium on Logic Programming, pp. 1546–1564 (1988)
Naish, L.: Declarative diagnosis of floundering. Technical report, Department of Computer Science, University of Melbourne (submitted for publication, 2007)
Naish, L.: Coroutining and the construction of terminating logic programs. Australian Computer Science Communications 15(1), 181–190 (1993)
Naish, L.: A declarative view of floundering. Technical report, Department of Computer Science, University of Melbourne (submitted for publication, 2006)
Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems. LNCS, vol. 1032. Springer, Heidelberg (1996)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Naish, L. (2007). Resource-Oriented Deadlock Analysis. In: Dahl, V., Niemelä, I. (eds) Logic Programming. ICLP 2007. Lecture Notes in Computer Science, vol 4670. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74610-2_21
Download citation
DOI: https://doi.org/10.1007/978-3-540-74610-2_21
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74608-9
Online ISBN: 978-3-540-74610-2
eBook Packages: Computer ScienceComputer Science (R0)