ABSTRACT

This chapter argues that uncontrolled resource sharing may be very dangerous and, in particular, may prevent whole groups of processes from performing their job. Even if the probability of occurrence of this unfortunate phenomenon, known as deadlock, may be very low, it must still be dealt with adequately, especially in a real-time system. The chapter introduces the concept of deadlock, an issue that may arise whenever processes compete with each other to acquire and use some resources. In the most general way, a deadlock can be defined formally as a situation in which a set of processes passively waits for an event that can be triggered only by another process in the same set. The deadlock problem becomes more complex when there are different kinds (or classes) of resources in a system and there is, in general, more than one resource of each kind.