Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

ADOK: a minimal object oriented real-time operating system in C++

Published: 01 February 2014 Publication History

Abstract

Most embedded software is currently developed using the C programming language, even though its low level of abstraction requires a lot of effort to the programmer. The C++ language is a better choice because: it raises the level of abstraction; it is strongly typed, so it prevents many common programming mistakes; it can be made as efficient as C through fine-grained customisation of memory mechanisms; it can be easily adapted to domain-specific needs. In addition, recent compilers have grown in maturity and performance, and the new standard considerably improves the language by introducing new concepts and an easier syntax.
In this paper we present ADOK, a minimal Real-Time Operating System entirely written in C++ with the exception of a few lines of assembler code. It directly offers a C++ interface to the developer, and it provides a flexible scheduling framework which allows the developer to customise the scheduling to its needs. In particular, we implement a two-level scheduler based on Earliest Deadline First, the Stack Resource Policy protocol for sharing resources and support for mode changes. We demonstrate through examples and a small case-study that ADOK can substantially improve productivity without sacrificing on performance.

References

[1]
David Abrahams and Aleksey Gurtovoy. C++ template metaprogramming: concepts, tools, and techniques from Boost and beyond. Addison-Wesley Professional, 2004.
[2]
Andrei Alecandrescu. Modern C++ Design: Generic Programming and Design Patterns Applied. Addison Wesley, 2001.
[3]
T. P. Baker. A Stack-Based Allocation Policy for Realtime Processes. In Proceedings of the IEEE Real Time Systems Symposium, december 1990.
[4]
Adam Dunkels, Oliver Schmidt, Thiemo Voigt, and Muneeb Ali. Protothreads: Simplifying event-driven programming of memory-constrained embedded systems. In Proceedings of the 4th International Conference on Embedded Networked Sensor Systems, SenSys '06, pages 29--42, New York, NY, USA, 2006. ACM.
[5]
Antônio Augusto Medeiros Fröhlich. Application Oriented Operating Systems, volume 1. GMD-forschungszentrum informationstechnik, 2001.
[6]
Paolo Gai, Giuseppe Lipari, Luca Abeni, Marco di Natale, and Enrico Bini. Architecture for a Portable Open Source Real-Time Kernel Environment. In Proceedings of the Second Real-Time Linux Workshop and Hand's on Real-Time Linux Tutorial, November 2000.
[7]
Davide De Gennaro. Advanced C++ Metaprogramming. CreateSpace Independent Publishing Platform, 2012.
[8]
The C++ programming language, 2011.
[9]
C. L. Liu and J. W. Layland. Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment. Journal of the Association for Computing Machinery, 20(1):46--61, January 1973.
[10]
Miguel Masmano, Ismael Ripoll, Alfons Crespo, and Jorge Real. TLSF: A new dynamic memory allocator for real-time systems. In Real-Time Systems, 2004. ECRTS 2004. Proceedings. 16th Euromicro Conference on, pages 79--88. Ieee, 2004.
[11]
Brian McNamara and Yannis Smaragdakis. Functional programming in C++. ACM SIGPLAN Notices, 35(9):118--129, 2000.
[12]
MIRA Ltd. MISRA-C:2004 Guidelines for the use of the C language in Critical Systems. MIRA, Oct 2004.
[13]
OSEK. OSEK/VDX Operating System Specification 2.2.1. OSEK Group, http://www.osek-vdx.org, 2003.
[14]
Jorge Real and Alfons Crespo. Mode Change Protocols for Real-Time Systems: A Survey and a New Proposal. Real-Time Systems, 26(2):161--197, 2004.
[15]
UBM Tech. 2013 Embedded Market Study. Technical report, EETimes, 2013.

Cited By

View all
  • (2018)A Review of the Scopes and Challenges of the Modern Real-Time Operating SystemsInternational Journal of Embedded and Real-Time Communication Systems10.4018/IJERTCS.20180101049:1(66-82)Online publication date: 1-Jan-2018

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGBED Review
ACM SIGBED Review  Volume 11, Issue 1
Special Issue on the 3rd Embedded Operating System Workshop (EWiLi 2013)
February 2014
72 pages
EISSN:1551-3688
DOI:10.1145/2597457
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 February 2014
Published in SIGBED Volume 11, Issue 1

Check for updates

Author Tag

  1. systems

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2018)A Review of the Scopes and Challenges of the Modern Real-Time Operating SystemsInternational Journal of Embedded and Real-Time Communication Systems10.4018/IJERTCS.20180101049:1(66-82)Online publication date: 1-Jan-2018

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media