Go backward to The banker's algorithm
Go up to Top

Holt's model of resource allocation

  1. I'd like to start with a quick overview of the resource allocation model described in the paper by Holt.
  2. 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.
  3. 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.
  4. To completely represent the state of a system the graph must be augmented with some additional specifications:
  5. The interpretation of edges in one of Holt's graphs depends on their direction.
  6. 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).


Prev Up