TL;DR: A rumple graph model of computer systems is developed, and its deadlock propertms are investigated, which unifies a number of previous results, leads to efficient deadlock detection and prevenUon algorithms, and is useful for teaching purposes.
Abstract: Several examples of deadlock occurring in present day computer systems are given Next, there is a discussion of the strategms which can be ~sed to deal with the deadlock problem A theory of computer systems is developed so that the terms "process" and "deadlock" can be defined. "Reusable resources" are introduced to model objects that are shared among processes, and "consumable resources" are introduced to model signals or messages passed among processes. Then a rumple graph model of computer systems m developed, and its deadlock propertms are investigated This graph model unifies a number of previous results, leads to efficient deadlock detection and prevenUon algorithms, and ~s useful for teaching purposes.
TL;DR: The subject of this paper is the computational complexity of the deadlock prediction problem for resource allocation, which is the question “Is deadlock avoidable?”
Abstract: The subject of this paper is the computational complexity of the deadlock prediction problem for resource allocation. This problem is the question “Is deadlock avoidable?” i.e. “Is there a feasible sequence in which to allocate all the resource requests?” given the current status of a resource allocation system. This status is defined by (1) the resource vector held by the banker, i.e. the quantity of resources presently available for allocation, and (2) the resource requests of the processes: Each process is required to make a termination request of the form “Give me resource vector y and I will eventually terminate and return resource vector z.” Also, each process can make any number of partial requests of the form “If you can’t give me y, then give me a smaller resource vector $y'$ and I will be able to reach a point at which I can halt and temporarily return to $z'$, although I will still need need $y - y' + z'$ to terminate.”If (1) the resources are reusable and (2) partial requests are not allowed, ...
TL;DR: In this article, the authors investigated the applicability of Banker's algorithm for buffer space allocation in flexible manufacturing and found that it can provide very good operational flexibility when properly applied to the manufacturing environment.
Abstract: Deadlock-free operation is essential for operating highly automated manufacturing systems. The seminal deadlock avoidance procedure, Banker's algorithm, was developed for computer operating systems, an environment where very little information regarding the future resource requirements of executing processes is known. Manufacturing researchers have tended to dismiss Banker's algorithm as too conservative in the manufacturing environment where future resource requirements are well defined by part routes. In this work, we investigate this issue by developing variants of Banker's algorithm applicable to buffer space allocation in flexible manufacturing. We show that these algorithms are not overly conservative and that, indeed, Banker's approach can provide very good operational flexibility when properly applied to the manufacturing environment.
TL;DR: A quadratic-time algorithm which decomposes each flow graph into a nested family of regions, such that all allocated resources are released before the control leaves a region, has the potential to achieve better resource utilization.
Abstract: We describe a natural extension of the banker's algorithm (D.W. Dijkstra, 1968) for deadlock avoidance in operating systems. Representing the control flow of each process as a rooted tree of nodes corresponding to resource requests and releases, we propose a quadratic-time algorithm which decomposes each flow graph into a nested family of regions, such that all allocated resources are released before the control leaves a region. Also, information on the maximum resource claims for each of the regions can be extracted prior to process execution. By inserting operating system calls when entering a new region for each process at runtime, and applying the original banker's algorithm for deadlock avoidance, this method has the potential to achieve better resource utilization because information on the "localized approximate maximum claims" is used for testing system safety.
TL;DR: The Banker's Algorithm as an example of a method for deadlock prevention was discussed in this article, where the author presented a more explicit one while preparing his next week's lectures.
Abstract: I recently lectured on the so-called “Banker’s Algorithm” as an example of a method for deadlock prevention. Because my informal justification left my students visibly unconvinced, I designed a more explicit one while preparing my next week’s lectures. This note is written because I think the argument I developed at that occasion rather nice; it is not a symptom of any revival of my interest in the Banker’s Algorithm as a scheduling strategy.