
Go backward to The banker's algorithm
Go up to Top
Holt's model of resource allocation
- I'd like to start with a quick overview of the resource allocation
model described in the paper by Holt.
- If nothing else was clear, about Holt's model, it should still be
clear that it is entirely based on using directed graphs to
describe the aspects of systems involving resource allocation.
I'll assume general familiarity with the notion of a directed
graph, but I will remind you that a:
- Bipartite Graph
- is a graph whose vertices can be partitioned
into two sets in such a way that all the graph's edges connect
elements from different sets.
- The graphs used in Holt's model are all bipartite directed graphs.
The vertices of the graph correspond to the processes and resources
in a computer system. The partition (that makes the graph bipartite)
is formed by viewing the resource vertices
as one set and the process vertices as another set.
- To completely represent the state of a system the graph must
be augmented with some additional specifications:
- the set of vertices associated with resources is further
partitioned into vertices corresponding to reusable resources
and consumable resources
- for each reusable resource, the total number of units of the
resource available must be specified.
- The interpretation of edges in one of Holt's graphs depends on their
direction.
- An edge directed from a process vertex to a resource vertex
indicates that the process has requested (and not yet been granted)
one unit of the resource (multiple unit requests are indicated
by multiple edges or by edge weights).
- An edge directed from a resource vertex to a process vertex
indicates that the process is capable of releasing one or more
units of the resources. The precise meanings of these edges
depends on the type of resource involved:
- If the resource is reusable, then in order to release
a unit, the process which is the target of the edge must
be currently allocated use of a unit of the resource. In
other words, the number of edges between a reusable resource
node and a process indicates the number of units of the
resource allocated to the process.
- If the resource is consumable, an edge to a process indicates
that the process is a producer of the resource.
- A particular instance of one of Holt's graphs is intended to represent
the state of a "General resource system" at some point in time.
The states of such systems change over time, and Holt attempts to
capture the possible changes in terms of transformations that can
be performed on his graphs. He identifies three such transformations:
- Requests
- A process which currently has no requests outstanding
can request one or more units of one or more distinct resource
classes. In the graph model, this is accomplished by adding
edges pointing from the node to one or more resource nodes.
- Acquisitions
- A process with outstanding requests can be allocated
the resources requested if sufficient units are available of
all the resource classes requested by the process. In the
system graph, this is accomplished by reversing all edges
that point to reusable resource nodes and deleting edges
pointing to consumable resource nodes.
- Releases
- A process:
- to which resusable resources have been allocated, or
- which is a producer of consumable resources
which has no resource requests outstanding can release the some or
all of the reusable resources allocated to it and/or
units of any consumable resources it produces.
In the graph, this is
accomplished by deleting one or more of the request edges
directed toward the process node (in the case of a reusable
resource) or increasing the available count (in the case of
a consumable resource).