Abstract
Deadlock has been widely studied in many fields of computer science, notably in communications, database, and operating systems. Perhaps because (at least one state called) deadlock is tractable, there exists extensive literature on the subject. Deadlock was apparently decisively defined over thirty years ago, with its characteristics and handlers. Yet, much of the literature remains inconsistent in its treatment of this anomaly.A more precise definition is clearly needed to distinguish between the different states that are termed deadlock. A classification of dead states is required to distinguish the causes and appropriate handlers for each. We introduce a model to structure our research.
- M. Andrews, B. Awerbuch, A. Fernandez, T. Leighto, Z. Liu, and J. Kleinberg, "Universal-stability Results and Performance Bounds for Greedy Contention-resolution Protocols," Journal of the ACM, vol. 48, no. 1, pp. 39--69, Jan. 2001. Google ScholarDigital Library
- P. Bernstein, and N. Goodman, "Concurrency Control in Distributed Database Systems," ACM Computer Surveys, vol. 13, no. 2, pp. 185--211, June 1981. Google ScholarDigital Library
- E. G. Coffman, E. G., M. J. Elphick, and A. Shoshani, "System Deadlocks," ACM Computing Surveys, vol. 3, no. 2, pp. 67--78, June 1971. Google ScholarDigital Library
- E. G. Coffman and P. J. Denning, Operating Systems Theory, Prentice Hall, Englewood Cliffs, NJ, 1973. Google ScholarDigital Library
- W. S. Davis and T. M. Rajkumar, Operating Systems, A Systematic View, 5 th ed., Addison-Wesley, Reading, Mass., p. 123, 2001. Google ScholarDigital Library
- E. W. Dijkstra, "Cooperating Sequential Processes," Programming Languages, Academic Press, London, 1965.Google Scholar
- L. Dowdy and C. Lowery, P. S. to Operating Systems, Prentice Hall, Englewood Cliffs, NJ. 1993. Google ScholarDigital Library
- S. Floyd and K. Fall, "Promoting the Use of End-to-end Congestion Control in the Internet," IEEE/ACM Transactions on Networks, vol. 7, no. 4, pp. 458--472. Aug. 1999. Google ScholarDigital Library
- I. M. Flynn and A. M. McHoes, Understanding Operating Systems, Brooks/Cole, Australia, pp. 109--110, 2001. Google ScholarDigital Library
- R. C. Holt, "Some Deadlock Properties of Computer Systems," ACM Computing Surveys, vol. 4, no. 3, pp. 179--196, Sept. 1972. Google ScholarDigital Library
- D. Horner, Operating Systems, Concept and Applications, Scott, Foresman and Co. Glenville, III., pp. 160, 105, 182, 1989. Google ScholarDigital Library
- W. S. Lai, "Protocol Traps in Computer Networks- a Catalog. IEEE Transactions on Communications," Com-30, no. 6, pp. 1434--1448, June 1982.Google ScholarCross Ref
- G. N. Levine, "The Control of Starvation," International Journal of General Systems, vol. 15, pp. 113--127, 1989.Google ScholarCross Ref
- G. N. Levine, "A Model for Software Reuse," Proceedings of the 5th Workshop of Specification of Behavior Semantics, OOPSLA '96, pp. 71--87, Oct. 1996.Google Scholar
- J. C. Mogul and K. K. Ramakrishnan, "Eliminating Receive Livelock in an Interrupt-driven Kernel," ACM Trans. on Computer Systems, vol. 15, no. 3, pp. 217--252, Aug. 1997. Google ScholarDigital Library
- G. Nutt, Operating Systems, a Modern Perspective, 2nd edition, Addison-Wesley, Reading, Mass., pp. 150, 279, 2000. Google ScholarDigital Library
- J. R. Pinkert and L. L. Weat, Operating Systems, Prentice Hall, Englewood Cliffs, NJ, p. 48, 1989.Google Scholar
- P. J. Plauger, "On Being Fast Enough," Embedded Systems Prog., vol. 4, no. l, pp. 81--92, Jan. 1991.Google Scholar
- D. J. Rosenkrantz, R. E., Stearns, and P. M. Lewis, "System Level Concurrency Control for Distributed Database Systems," ACM Trans. on Database Systems, vol. 3, no. 2, pp. 178--198, June 1978. Google ScholarDigital Library
- A. Silberschatz, P. B. Galvin, and G. Gagne, Operating Systems Concepts, 6th edition, Addison-Wesley, Reading, Mass., pp. 204, 243, 244, 266, 2002. Google ScholarDigital Library
- W. Stallings, Operating Systems, Internals and Design Principles, 3rd edition, Prentice Hall, Englewood Hills, NJ, pp. 254, 1998. Google ScholarDigital Library
- A. Tanenbaum, Computer Networks, 4th edition, Prentice Hall, Upper Saddler River, NJ. 2003. Google ScholarDigital Library
- A. Tanenbaum, Modern Operating Systems, 2nd edition, Prentice Hall, Upper Saddle River, NJ, p. 185, 2001. Google ScholarDigital Library
- A. Tanenbaum, Operating Systems, Design and Implementation, 2nd edition, Prentice Hall, Upper Saddle River, NJ, pp. 67--69, 1997. Google ScholarDigital Library
- Y. C. Tay and W. T. Loke, "On Deadlocks of Exclusive AND-requests for Resources," Distributed Computing, Springer-Verlag, #9, pp. 77--94, 1995. Google ScholarDigital Library
- D. Tsichritzis, and F. Lochovsky, Data Base Management Systems, Academic Press, London, p. 260, 1977.Google Scholar
- R. Turner, Operating Systems Design and Implementations, Macmillan Pub. Co., London, p. 140, 1986.Google Scholar
- R. J. Van Glabbeek, "Notes on the Methodology of CCS and CSP," Theoretical Computer Science, pp. 329--349, 1997. Google ScholarDigital Library
- H. Wu, W. Chin, and J. Jaffar, "An Efficient Distributed Deadlock Avoidance Algorithm for the AND Model," IEEE Trans. on Software Engineering, vol. 28, no. 1, pp. 18--29, Jan. 2002. Google ScholarDigital Library
Recommendations
Defining deadlock with fungible resources
In a previous paper we discussed resource deadlock within a classification of all dead states. We differentiated between the different types of anomalies that are called deadlock in the computer science literature. Our primary aim was to correct ...
Static lock capabilities for deadlock freedom
TLDI '12: Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementationWe present a technique --- lock capabilities --- for statically verifying that multithreaded programs with locks will not deadlock. Most previous work on deadlock prevention requires a strict total order on all locks held simultaneously by a thread, but ...
Transparent runtime deadlock elimination
PACT '12: Proceedings of the 21st international conference on Parallel architectures and compilation techniquesThread based concurrent programming is hard due to the potential of concurrency bugs (e.g., data races, atomicity violations, deadlocks, and order violations). While data races and atomicity violations can be ameliorated with appropriate synchronization ...
Comments