Resource allocation in dynamic real-time systems

Dynamic real-time systems usually operate in an environment that is continuously changing. These changes in the environment cause workload of the system to vary during run time, and in effect causing system performance to fluctuate. In addition, certain Quality of Service (QoS) requirements are imposed on the real-time system and must be satisfied. Allocating system resource in this environment is challenging because a good and efficient allocation may become invalid when variations in workload cause Quality of Service violations. This research examines the problem of initial resource allocation for a real-time system that operates in changing environment. An initial allocation is calculated before system starts up using expected values and variations that may happen during run time. In this research, resource allocation refers to the assigning of application tasks to processing nodes. The allocation should be “robust” with respect to the variation in workload during run time. That is, the allocation should be able to “absorb” the largest amount of workload variation, and thus delaying the instance that Quality of Service violation occurs. A novel performance metric is proposed to evaluate the robustness of an initial allocation with respect to variations during run time. The problem of initially allocating system resources to maximize the proposed performance metric is then translated into a mathematical formulation. It should be noted that the resource allocation problem itself is non-linear, but can be linearized by two heuristics that are developed to remove non-linearity from the mathematical formulation of the problem. Three algorithms, all based on the well-researched linear programming approach, are developed to solve the mathematical problem. The first approach is fast, but cannot gaurantee the quality of resulting allocations. The second approach always finds an optimal solution, but is relatively slower than the first approach. In the third approach, trade-off between the quality of results and execution time can be controlled through a user-provided parameter. Together with the two linearization heuristics, these three approaches provide a full spectrum of solutions for the initial resource allocation problem.