a. Define the term "deadlock". There are four conditions that must hold before deadlock is possible. Name them.
b. Outline an algorithm that detects whether there is a deadlock. The algorithm should be able to cope with multiple types of resources, each type having a limited number of units available.
c. When should the algorithm be invoked? The answer to this question may depend on system characteristics such as the rate of resource requests, the granularity of resources, and the expected rate of deadlock. List three possible choices and discuss the criteria you would use to choose among them.