ABSTRACT

Computer-integrated systems are characterized by a structure in which a set of executing processes share (or compete for) a set of resources, for example, processes running in a multitask operating system, transactions in distributed data­ base systems, concurrent software systems and computer networks, parts produced by automated manufacturing systems, and vehicles competing for the same path in transportation systems. The interacting parts and shared resources are character­ ized as a resource allocation system that can lead to problems that the isolated execution of a task does not have. Among these problems, we consider deadlock situations: deadlock is a phenomenon in which a system or a part of it remains indefinitely blocked and a set of jobs cannot terminate its task. To demonstrate this condition, we consider a simple and intuitive example of traffic flow along the edges of a square, depicted in Figure 1.1. The boxes represent the cars and the arrows the directions in which they have to move. In this situation, each car of the displayed set is blocked by another car in the same set, occupying the space that it requires. Hence, this situation represents a deadlock.