<- People Behind Informatics


All 0-9 A B C D E F G H I J K L M N O P Q R S T U V W XY Z




 
Deadlock
In a multiprogramming environment, several processes may compete for a finite number of resources. A process requests resources; if the resources are not available at that time, the process enters a wait state. It may happen that waiting processes will never again change state, because the resources they have requested are held by other waiting processes. This situation is called a deadlock. Perhaps the best illustration of a deadlock can be drawn from a law passed by the Kansas legislature early in the twentieth century. It said, in part: “When two trains approach each other at a crossing, both shall come to a full stop and neither shall start up again until the other has gone.” Deadlocks can occur in many situations besides that of requesting dedicated I/O devices. Four conditions must hold for there to be a deadlock: 1. Mutual exclusion condition. Each resource is either currently assigned to exactly one process or is available. 2. Hold and wait condition. Processes currently holding resources granted earlier can request new resources. 3. No pre-emption condition. Resources previously granted cannot be forcibly taken away from a process. They must be explicitly released by the process holding them. 4. Circular wait condition. There must be a circular chain of two or more processes, each of which is waiting for a resource held by the next member of the chain. [Sources: (Tanenbaum, 1987) Andrew S. Tanenbaum, Operating Systems – Design and Implementation (Silberschatz, Galvin, 1994) Abraham Silberschatz, Peter B. Galvin, Operating System Concepts]
 

 

<- People Behind Informatics


Home  |  Top  |  Search  |  Gallery  | Glossary  | Sitemap  |  Making Of  |  Help