Inherently stable priority list scheduling in an extended scheduling environment
暂无分享,去创建一个
The application of computers in safety-critical systems is expanding rapidly. With reliability specifications becoming increasingly stringent, formal verification methods are often required. The underlying algorithms must be provably correct and free from unexpected side effects. Many safety-critical systems in sensor-based control applications, such as robotics, process control and manufacturing systems, operate in hard real-time environments, where the missing of deadlines of specific tasks could have catastrophic results. Multiprocessor systems may be needed to meet deadlines under increasing computational workloads or for fault tolerance reasons.
This dissertation addresses non-preemptive static priority list scheduling, a simple, low overhead approach to scheduling tasks on multiprocessors. This type of scheduling is subject to scheduling anomalies, one of which can cause deadlines to be missed by shortening the run-time of one or more tasks.
Two restrictive methods exist to avoid this problem, involving preprocessing the precedence graph or strictly enforcing the priority list order. Whereas the first method may introduce many more precedence constraints, thus increasing run-time overhead, the second method is potentially more susceptible to poor utilization. A number of inherently stable run-time dispatching algorithms are presented, that overcome these disadvantages. They are targeted towards a new extended scheduling model which permits modeling processes and events external to the processors. The algorithms range from very simple fixed-overhead dispatchers to an "optimal greedy" dispatcher and are provably correct. The optimal dispatcher never leaves a processor idle if there exists a task that can be started safely. It serves only as a comparison tool for lower overhead algorithms, due to its high run-time complexity.
Performance of the new dispatchers has been simulated using numerous representative task systems, including several real world applications and pathological workloads, comparing their relative performance. Simulations showed that even the simple dispatchers performed close to optimal for non-pathological workloads.
This research presents practical solutions to the scheduling instability problem. It advocates non-preemptive list scheduling algorithms which can handle external events and are at once stable, efficient, and low in run-time overhead.