A job require a processor and some resources throughout its execution. The resource parameters of each job give us the type of processor and the units of each resource type required by the job and the time intervals during its execution when the resources are required. These parameters are needed to support resource management decisions.
The resource parameters of jobs give us a partial view of the processors and resources from the perspective of the applications. Sometimes it need to describe the characteristics of processors and resources independent of the application. For this there parameters of resources.
A resource parameter is preemptivity. A resource is non-preemptable if each unit of the resource is constrained to be used serially. Once a unit of a non-preemptable resource is allocated to a job, other jobs needing the unit must wait until the job completes its use. If jobs can use every unit of a resource in an interleaved way, the resource is preemptable. A lock on a data object is an example of a non-preemptable resource. This does not mean that the job is non-preemptable on others resources or on the processor. The transaction can be preempted on the processor by other transactions not waiting for the locks.
A resource graph describes the configuration of resources. There is a vertex Ri for every processor or resource Ri in the system. The attributes of the vertex are the parameters of the resource.
The resource type of a resource tells us whether the resource is a processor or a passive resource, and its number gives us the number of available units. Edges in resource graphs represent the relationship among resources. There are 2 types of edges in resource graphs.
- Is-a-part-of edge:
An edge from vertex Ri to vertex Rk can mean that Rk is a component of Ri is called is-a-part-of edge e.g. a memory is part of a computer and so is a monitor. The subgraph containing all the is- a-part-of edges is a forest. The root of each tree represents a major component, with subcomponents represented by vertices. e.g. the resource graph of a system containing 2 computers consists of 2 trees. The root of each tree represents a computer with children of this vertex including CPUs etc.
- Accessibility edges:
Some edges in resource graphs represent connectivity between components. These edges are called accessibility edges. For example if there is a connection between two CPUs in the two computers, then each CPU is accessible from the other computer and there is an accessibility edge from each computer to the CPU of the other computer.
Each accessibility edge may have several parameters. For example, a parameter of an accessibility edge from a processor Pi to another Pk is the cost of sending a unit of data from a job executing on Pi to a job executing on Pk.