home · mobile · calendar · colloquia · 1996-1997 · 

Colloquium - Humphrey

Predictable Threads for Dynamic, Hard Real-Time Environments
Department of Computer Science and Engineering, University of Colorado at Denver

The key metric of a real-time operating system is its predictability: kernel operations must not take an arbitrary amount of time, and there must exist support for the predictable execution of application code. Most existing real-time thread packages are based on modifications to non-real-time kernels that support threads. In these systems, meeting hard real-time deadlines can be difficult -- because the thread interacts with the non-real-time components of the kernel, performance can vary from instance to instance.

The UMass Spring threads package has been designed to achieve predictability in hard real-time environments. The first part of the talk focuses on the threads package specification (similar in principle to POSIX PThreads and Real-Time Extensions). The contribution of this work is support for new semantics ("guaranteed" and "nonguaranteed" thread group spawning) and explicit support for semantically-correct premature thread (and thread group) termination under hard real-time constraints.

The second part of the talk discusses the implementation of the design specification in the UMass Spring kernel. Spring is a parallel and distributed operating system featuring an on-line, planning-based scheduler that makes it suitable for dynamic environments. Prior to his work, Spring applications could utilize only a single flow of execution (similar to a UNIX-like process model, adapted for real-time). A system description language and real-time programming language are used to meet the requirements of the threads package specification. Challenges and design decisions of the implementation of the threads package for a multiprocessor environment will be discussed. The evaluation of the implementation of the threads package in the UMass Spring kernel is discussed both in terms of primitive operations and higher-level system activities. In addition to new flexibility for user and kernel applications, the adoption of the threads package in the UMass Spring kernel significantly reduces kernel overhead in the context switch and memory access time. Results show that the lack of variance makes this package, to our knowledge, the first threads package suitable for dynamic, hard real-time environments.

Refreshments will be served immediately before the talk at 3:30pm.
Hosted by Dirk Grunwald.

Department of Computer Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
May 5, 2012 (14:13)