Predictable Threads for Dynamic, Hard Real-Time Environments

Next-generation, hard real-time systems will require new, flexible functionality and guaranteed, predictable performance. This paper describes the UMass Spring threads package, designed specifically for multiprocessing in dynamic, hard real-time environments. This package is unique because of its support for new thread semantics for real-time processing. Predictable creation and execution of threads is achieved because of an underlying predictable kernel, the UMass Spring kernel. Design decisions and lessons learned while implementing the threads package are presented. Measurements affirm the predictability of this implementation on a representative multiprocessor platform. The adoption of the threads package in the UMass Spring kernel results in additional performance improvements, which include reduced context switching overhead and reduced average-case memory access durations.

[1]  John R. Graham Solaris 2.X: internals & architecture , 1995 .

[2]  Krithi Ramamritham,et al.  Resource Reclaiming in Multiprocessor Real-Time Systems , 1993, IEEE Trans. Parallel Distributed Syst..

[3]  Krithi Ramamritham,et al.  Simple and integrated heuristic algorithms for scheduling tasks with time and resource constraints , 1987, J. Syst. Softw..

[4]  Evangelos P. Markatos,et al.  First-class user-level threads , 1991, SOSP '91.

[5]  Hideyuki Tokuda,et al.  User-level real-time threads , 1994, Proceedings of 11th IEEE Workshop on Real-Time Operating Systems and Software.

[6]  Krithi Ramamritham,et al.  The Spring kernel: a new paradigm for real-time systems , 1991, IEEE Software.

[7]  Krithi Ramamritham,et al.  Using Windows NT for Real-Time Applications: Experimental Observations and Recommendations , 1998, IEEE Real Time Technology and Applications Symposium.

[8]  Krithi Ramamritham,et al.  A real-time system description language , 1995, Proceedings Real-Time Technology and Applications Symposium.

[9]  John A. Stankovic,et al.  Kernel-level threads for dynamic, hard real-time environments , 1995, Proceedings 16th IEEE Real-Time Systems Symposium.

[10]  Karsten Schwan,et al.  Multiprocessor real-time threads , 1992, OPSR.

[11]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[12]  John A. Stankovic,et al.  Real-time operating systems: predictable threads and support for multi-level scheduling , 1996 .

[13]  Krithi Ramamritham,et al.  Distributed Scheduling of Tasks with Deadlines and Resource Requirements , 1989, IEEE Trans. Computers.

[14]  Douglas Niehaus Program representation and execution in real-time multiprocessor systems , 1994 .

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

[16]  Frank Mueller,et al.  MiThOS-a real-time micro-kernel threads operating system , 1995, Proceedings 16th IEEE Real-Time Systems Symposium.

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

[18]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[19]  Krithi Ramamritham,et al.  Efficient Scheduling Algorithms for Real-Time Multiprocessor Systems , 1989, IEEE Trans. Parallel Distributed Syst..

[20]  Riccardo Bettati,et al.  Imprecise computations , 1994, Proc. IEEE.

[21]  Wu-chun Feng,et al.  Operating System Support for Imprecise Computation , 1996 .

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

[23]  M. Humphrey,et al.  Multi-Level Scheduling for Flexible Manufacturing , 1995 .

[24]  David R. Butenhof Programming with POSIX threads , 1993 .

[25]  John Zolnowsky,et al.  Realtime Scheduling in SunOS 5.0 , 1992 .

[26]  Karsten Schwan,et al.  CHAOSarc: kernel support for multiweight objects, invocations, and atomicity in real-time multiprocessor applications , 1993, TOCS.