|Researchers:||N. Vinay Krishnan|
|Advisor:||Edward A. Lee|
The E-Code consists of event-driven code. It primary purpose while executing on the E-Machine is to react to the environment, in the sense of handling interrupts, or receiving messages. This results in releasing tasks to be executed to the S-Machine. The S-code subsequently schedules these tasks on the underlying system.
Thus the details of the hardware the application is running on is abstracted away from the E-Code, as any and all interactions such as timer interrupts, preemption, etc are handled by the S-Code.
The project aims to come up with an S-code interpreter, i.e. an S-Machine, which makes use of the API provided by KURT-Linux. KURT-Linux is a flavor of Linux which has real-time extensions added onto it, allowing a programmer to write his own schedulers. The S-Machine designed will analyze the different tasks that could be given it by the E-Code, and will generate an explicit schedule for the overall task set.  Christoph M. Kirsch, Thomas A. Henzinger, and Marco A.A. Sanvido. A programmable microkernel for real-time systems. Technical Report UCB/CSD-3-1250, University of California, Berkeley, June 2003.  Thomas A. Henzinger, Christoph M. Kirsch, and Slobodan Matic. Schedule carrying code. Proceedings of the Third International Conference on Embedded Software (EMSOFT), Lecture Notes in Computer Science, Springer-Verlag, 2003.  Thomas A. Henzinger and Christoph M. Kirsch. The Embedded Machine: Predictable, portable real-time code. Proceedings of the International Conference on Programming Language Design and Implementation (PLDI), ACM Press, 2002, pp. 315-326.
Last updated 11/20/03