Task scheduling policies for real-time systems

Abstract The software of modern real-time embedded systems is frequently very complex. Many applications occupy a megabyte or more of code1. Application programmers are increasingly adopting a multi-tasking design approach to produce reliable and predictable software. To support such implementations, system support in the form of real-time operating systems or real-time executives is required, and central to these is the task scheduler and its associated scheduling policies. Scheduling software must be optimized for small size, fast interrupt response and fast context switching. These requirements are very demanding of scheduling policy and implementation. It is not sufficient that a scheduler functions as required; it must also perform in ‘real-time’. This paper describes a variety of task scheduling policies for use with real-time embedded systems, including commonly used practical strategies as well as new ideas from the research community. The performance of these policies is compared using simulation techniques.

[1]  B. Bauer,et al.  Real-time Ada applications with silicon executives , 1995, Microprocess. Microsystems.

[2]  Wolfgang A. Halang,et al.  Architectural support for predictability in hard real time systems , 1992 .

[3]  Krithi Ramamritham,et al.  Resource Reclaiming in Real-Time , 1990, RTSS.

[4]  Kwei-Jay Lin,et al.  A priority ceiling protocol for multiple-instance resources , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[5]  H. Rzehak,et al.  On Realtime Operating Systems: How to Compare Performance? , 1994 .

[6]  J.A. Stankovic,et al.  Misconceptions about real-time computing: a serious problem for next-generation systems , 1988, Computer.

[7]  Jurij Silc,et al.  Scheduling Strategies in High-Level Synthesis , 1994, Informatica.

[8]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[9]  Maryline Chetto,et al.  Some Results of the Earliest Deadline Scheduling Algorithm , 1989, IEEE Transactions on Software Engineering.

[10]  Marcel Schoppers Real-time knowledge-based control systems , 1991, CACM.

[11]  Wolfgang A. Halang New approaches for distributed industrial process control systems aimed to cope with strict time constraints , 1989, [1989] Proceedings. EUROMICRO Workshop on Real Time.

[12]  Lui Sha,et al.  Real-time scheduling theory and Ada , 1990, Computer.

[13]  Barbara Hayes-Roth,et al.  Guaranteeing real-time response with limited resources , 1993, Artif. Intell. Medicine.

[14]  C. Favre,et al.  Fly-by-wire for commercial aircraft: the Airbus experience , 1994 .

[15]  John A. Stankovic,et al.  Misconceptions About Real-Time Computing , 1988, Computer.

[16]  C. Murray Woodside,et al.  The Rejection Rate for Tasks with Random Arrivals, Deadlines, and Preemptive Scheduling , 1990, IEEE Trans. Software Eng..

[17]  Hans-Peter Meske Conceptual design of an architecture for hard real time computing , 1994 .

[18]  R. Obenza,et al.  Rate monotonic analysis for real-time systems , 1993, Computer.

[19]  John P. Lehoczky,et al.  The rate monotonic scheduling algorithm: exact characterization and average case behavior , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[20]  Joachim Roos Designing a real-time coprocessor for Ada tasking , 1991, IEEE Design & Test of Computers.

[21]  David Lorge Parnas,et al.  Scheduling Processes with Release Times, Deadlines, Precedence, and Exclusion Relations , 1990, IEEE Trans. Software Eng..

[22]  LockeC. Douglass Software architecture for hard real-time applications , 1992 .

[23]  B. O. Gallmeister,et al.  Early experience with POSIX 1003.4 and POSIX 1003.4 A , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[24]  Douglas V. Hall Adapting curriculum materials for different course sequences , 1991, IEEE Micro.

[25]  John K. Foderaro LISP: introduction , 1991, CACM.

[26]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[27]  W. A. Halang,et al.  OnTime: a high level real time language environment based on a portable operating system featuring feasible and fault tolerant scheduling , 1989, RTSS 1989.

[28]  Colin Allison,et al.  BED: A multithreaded kernel for embedded systems , 1994 .

[29]  Jim E. Cooling,et al.  Predictable hard real-time scheduling , 1992, Fourth Euromicro workshop on Real-Time Systems.

[30]  Harvey M. Deitel,et al.  An introduction to operating systems , 1984 .

[31]  Xiaohua Jia,et al.  The Galaxy distributed operating system , 1991, Computer.

[32]  Steve Vestal On the accuracy of predicting rate monotonic scheduling performance , 1990, TRI-Ada '90.