skip to main content
10.1145/1064979.1064986acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
Article

A programmable microkernel for real-time systems

Published: 11 June 2005 Publication History

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 as in synchronous reactive programs) and proactivity (task scheduling as in traditional RTOSs) are fully programmable. The microkernel, which we implemented on a StrongARM processor, consists of two interacting domain-specific virtual machines, a reactive E (Embedded) machine and a proactive S (Scheduling) machine. The microkernel code (or microcode) 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 even for large sets of task, generally in the 0.2--0.3% range.

References

[1]
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young. Mach: A new kernel foundation for UNIX development. In Proc. USENIX Summer Conference, pages 93--113, 1986.
[2]
B. Bershad, S. Savage, P. Pardyak, E. Sirer, D. Becker, M. Fiuczynski, C. Chambers, and S. Eggers. Extensibility, safety and performance in the SPIN operating system. In Proc. SOSP. ACM Press, 1995.
[3]
Y. Cai and M.C. Kong. Nonpreemptive scheduling of periodic tasks in uni- and multiprocessor systems. Algorithmica, 15(6):572--599, 1996.
[4]
E. Cheong, J. Liebman, J. Liu, and F. Zhao. Tinygals: A programming model for event-driven embedded systems. In Proc. SAC. ACM Press, 2003.
[5]
C. Ferdinand, R. Heckmann, M. Langenbach, F. Martin, M. Schmidt, H. Theiling, S. Thesing, and R. Wilhelm. Reliable and precise WCET determination for a real-life processor. In Proc. EMSOFT, LNCS 2211, pages 469--485. Springer, 2001.
[6]
N. Halbwachs. Synchronous Programming of Reactive Systems. Kluwer, 1993.
[7]
H. Härtig, M. Hohmuth, J. Liedtke, S. Schönberg, and J. Wolter. The performance of μ-kernel-based systems. In Proc. SOSP. ACM Press, 1997.
[8]
T. A. Henzinger, B. Horowitz, and C.M. Kirsch. Giotto: A time-triggered language for embedded programming. Proc. of the IEEE, 91(1):84--99, 2003.
[9]
T. A. Henzinger and C. M. Kirsch. The Embedded Machine: Predictable, portable real-time code. In Proc. PLDI, pages 315--326. ACM Press, 2002.
[10]
T. A. Henzinger, C. M. Kirsch, R. Majumdar, and S. Matic. Time-safety checking for embedded programs. In Proc. EMSOFT, LNCS 2491, pages 76--92. Springer, 2002.
[11]
T. A. Henzinger, C. M. Kirsch, and S. Matic. Schedule-carrying code. In Proc. EMSOFT, LNCS 2855, pages 241--256. Springer, 2003.
[12]
K. Jeffay, D.F. Stanat, and C.U. Martel. On non-preemptive scheduling of periodic and sporadic tasks. In Proc. RTSS, pages 129--139. IEEE Computer Society Press, 1991.
[13]
T. Kistler and M. Franz. Continuous program optimization: Design and evaluation. IEEE Transactions on Computers, 50(6):549--566, 2001.
[14]
H. Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Applications. Kluwer, 1997.
[15]
P. Levis and D. Culler. Maté: a virtual machine for tiny networked sensors. In Proc. ASPLOS, 2002.
[16]
J. Liedtke. Toward real microkernels. Communications of the ACM, 39(9):70--77, 1996.
[17]
R. Rajkumar, K. Juvva, A. Molano, and S. Oikawa. Resource kernels: A resource-centric approach to real-time systems. In Proc. MMCN, 1998.
[18]
M.A.A. Sanvido. A computer system for model helicopter flight control; technical memonr. 3: The software core. Technical Report 317, ETH Zürich, Institute for Computer Systems, 1999.
[19]
H. Tokuda, T. Nakajima, and P. Rao. Real-time Mach: Towards a predictable real-time system. In Proc. USENIX Mach Workshop, pages 73--82, 1990.
[20]
N. Wirth and J. Gutknecht. Project Oberon - The Design of an Operating System and Compiler. ACM Press, 1992.
[21]
K. M. Zuberi, P. Pillai, and K. G. Shin. EMERALDS: a small-memory real-time microkernel. In Proc. SOSP, pages 277--299. ACM Press, 1999.

Cited By

View all
  • (2023)Internet of Everything: Evolution and Fundamental ConceptsCybersecurity Vigilance and Security Engineering of Internet of Everything10.1007/978-3-031-45162-1_1(3-20)Online publication date: 1-Dec-2023
  • (2019)DCWACM Transactions on Design Automation of Electronic Systems10.1145/331757424:3(1-35)Online publication date: 31-May-2019
  • (2017)Internet of things (IoT)Proceedings of the 1st International Conference on Internet of Things and Machine Learning10.1145/3109761.3109768(1-12)Online publication date: 17-Oct-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
VEE '05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
June 2005
216 pages
ISBN:1595930477
DOI:10.1145/1064979
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 June 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. operating system
  2. real time
  3. virtual machine

Qualifiers

  • Article

Conference

VEE05

Acceptance Rates

Overall Acceptance Rate 80 of 235 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Internet of Everything: Evolution and Fundamental ConceptsCybersecurity Vigilance and Security Engineering of Internet of Everything10.1007/978-3-031-45162-1_1(3-20)Online publication date: 1-Dec-2023
  • (2019)DCWACM Transactions on Design Automation of Electronic Systems10.1145/331757424:3(1-35)Online publication date: 31-May-2019
  • (2017)Internet of things (IoT)Proceedings of the 1st International Conference on Internet of Things and Machine Learning10.1145/3109761.3109768(1-12)Online publication date: 17-Oct-2017
  • (2017)Work-in-Progress: TTI: A Timing ISA for LET Model in Safety-Critical Systems2017 IEEE Real-Time Systems Symposium (RTSS)10.1109/RTSS.2017.00047(363-365)Online publication date: Dec-2017
  • (2016)Contrasting Internet of Things and Wireless Sensor Network from a Conceptual Overview2016 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData)10.1109/iThings-GreenCom-CPSCom-SmartData.2016.66(252-257)Online publication date: Dec-2016
  • (2016)Middleware for Internet of Things: A SurveyIEEE Internet of Things Journal10.1109/JIOT.2015.24989003:1(70-95)Online publication date: Feb-2016
  • (2010)An extensible software framework for reliable distributed embedded system modelingProceedings of the 2nd international Asia conference on Informatics in control, automation and robotics - Volume 210.5555/1843292.1843349(234-237)Online publication date: 6-Mar-2010
  • (2010)Predictable actor-oriented design strategies for timing-centric distributed embedded softwareProceedings of the 2nd international Asia conference on Informatics in control, automation and robotics - Volume 210.5555/1843292.1843348(231-233)Online publication date: 6-Mar-2010
  • (2010)Autonomous traffic engineering with self-configuring topologiesACM SIGCOMM Computer Communication Review10.1145/1851275.185123940:4(417-418)Online publication date: 30-Aug-2010
  • (2010)SecureAngleACM SIGCOMM Computer Communication Review10.1145/1851275.185123840:4(415-416)Online publication date: 30-Aug-2010
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media