MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  A Programmable Microkernel for Real-Time Systems

Download:
Download as a PDF | Download as a PS
unknown authors
http://www-cad.eecs.berkeley.edu/~tah/Publications/a_programmable_microkernel_for_real-time_systems.ps
Add To MetaCart

Abstract:

We present a new software system architecture for the implementation of hard real-time applications. The core of the system is a microkernel whose reactivity (interrupt handling) and proactivity (task scheduling) are fully programmable. The microkernel, which we implemented on a StrongARM processor, consists of two interacting virtual machines, a reactive E (Embedded) machine and a proactive S (Scheduling) machine. The system code that runs on the microkernel is partitioned into E and S code. E code manages the interaction of the system with the physical environment: the execution of E code is triggered by environment interrupts, which signal external events such as the arrival of a message or sensor value, and it releases application tasks to the S machine. S code manages the interaction of the system with the processor: the execution of S code is triggered by hardware interrupts, which signal internal events such as the completion of a task or time slice, and it dispatches application tasks to the CPU, possibly preempting a running task. This partition of the system orthogonalizes the two main concerns of real-time implementations: E code refers to environment time and thus defines the reactivity of the system in a hardware- and scheduler-independent fashion; S code refers to CPU time and defines a system scheduler. If both time lines can be reconciled, then the code is called time safe; violations of time safety are handled again in a programmable way, by run-time exceptions. The separation of E from S code permits the independent programming, verification, optimization, composition, dynamic adaptation, and reuse of both reaction and scheduling mechanisms. Our measurements show that the system overhead is very acceptable, generally in the 0.2--0.3 % range.

Citations

391 Extensibility, safety and performance in the SPIN operating system – BERSHAD, SAVAGE, et al. - 1995
332 Synchronous Programming of Reactive Systems – Halbwachs - 1993
269 Real-Time Systems: Design Principles for Distributed EmbeddedApplications – Kopetz - 1997
254 A new kernel foundation for UNIX development – Mach - 1986
191 Real-time Mach: Towards a predictable real-time kernel.” vol – Tokuda, Nakajima, et al. - 1990
111 Giotto: A time-triggered language for embedded programming – Henzinger, Horowitz, et al.
96 Project Oberon: The Design of an Operating System and Compiler – Wirth, Gutknecht - 1992
57 Towards real microkernels – Liedtke - 1996
51 The embedded machine: predictable, portable real-time code – Henzinger, Kirsch
49 Reliable and precise WCET determination for a real-life processor – Ferdinand, Heckmann, et al. - 2001
44 The performance of -kernel-based systems – Härtig, Hohmuth, et al. - 1997
33 Continuous program optimization: Design and evaluation – Kistler, Franz - 2001
24 EMERALDS: A small-memory real-time microkernel – ZUBERI, PILLAI, et al. - 1999
19 Time-safety checking for embedded programs – Henzinger, Kirsch, et al. - 2002
19 On non-preemptive scheduling of periodic and sporadic tasks – ay, Stanat, et al. - 1991
18 A Giotto-based helicopter control system – Kirsch, Sanvido, et al. - 2002
10 A Computer System for Model Helicopter Flight Control;Technical Memo 3: The Software Core – Sanvido - 1999
6 Schedule-carrying code – Henzinger, Kirsch, et al. - 2003
4 Nonpreemptive scheduling of periodic tasks in uni- and multiprocessor systems – Cai, Kong - 1996