{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:20:37Z","timestamp":1750306837355,"version":"3.41.0"},"reference-count":15,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2014,2,1]],"date-time":"2014-02-01T00:00:00Z","timestamp":1391212800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100004963","name":"Seventh Framework Programme","doi-asserted-by":"publisher","award":["246556"],"award-info":[{"award-number":["246556"]}],"id":[{"id":"10.13039\/501100004963","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGBED Rev."],"published-print":{"date-parts":[[2014,2]]},"abstract":"<jats:p>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.<\/jats:p>\n          <jats:p>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.<\/jats:p>","DOI":"10.1145\/2597457.2597468","type":"journal-article","created":{"date-parts":[[2014,3,24]],"date-time":"2014-03-24T13:45:50Z","timestamp":1395668750000},"page":"74-79","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["ADOK"],"prefix":"10.1145","volume":"11","author":[{"given":"Salvatore","family":"Benedetto","sequence":"first","affiliation":[{"name":"Scuola Superiore Sant'Anna"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Giuseppe","family":"Lipari","sequence":"additional","affiliation":[{"name":"Scuola Superiore Sant'Anna and LSV - ENS, Cachan"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2014,2]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"concepts, tools, and techniques from Boost and beyond","author":"Abrahams David","year":"2004","unstructured":"David Abrahams and Aleksey Gurtovoy . C++ template metaprogramming : concepts, tools, and techniques from Boost and beyond . Addison-Wesley Professional , 2004 . David Abrahams and Aleksey Gurtovoy. C++ template metaprogramming: concepts, tools, and techniques from Boost and beyond. Addison-Wesley Professional, 2004."},{"key":"e_1_2_1_2_1","volume-title":"Modern C++ Design: Generic Programming and Design Patterns Applied","author":"Alecandrescu Andrei","year":"2001","unstructured":"Andrei Alecandrescu . Modern C++ Design: Generic Programming and Design Patterns Applied . Addison Wesley , 2001 . Andrei Alecandrescu. Modern C++ Design: Generic Programming and Design Patterns Applied. Addison Wesley, 2001."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/REAL.1990.128747"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1182807.1182811"},{"key":"e_1_2_1_5_1","volume-title":"Application Oriented Operating Systems","author":"Medeiros Fr\u00f6hlich Ant\u00f4nio Augusto","year":"2001","unstructured":"Ant\u00f4nio Augusto Medeiros Fr\u00f6hlich . Application Oriented Operating Systems , volume 1 . GMD-forschungszentrum informationstechnik, 2001 . Ant\u00f4nio Augusto Medeiros Fr\u00f6hlich. Application Oriented Operating Systems, volume 1. GMD-forschungszentrum informationstechnik, 2001."},{"key":"e_1_2_1_6_1","volume-title":"Proceedings of the Second Real-Time Linux Workshop and Hand's on Real-Time Linux Tutorial","author":"Gai Paolo","year":"2000","unstructured":"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 . 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."},{"key":"e_1_2_1_7_1","volume-title":"Advanced C++ Metaprogramming","author":"Gennaro Davide De","year":"2012","unstructured":"Davide De Gennaro . Advanced C++ Metaprogramming . CreateSpace Independent Publishing Platform , 2012 . Davide De Gennaro. Advanced C++ Metaprogramming. CreateSpace Independent Publishing Platform, 2012."},{"key":"e_1_2_1_8_1","unstructured":"The C++ programming language 2011.  The C++ programming language 2011."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/321738.321743"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/1009383.1009826"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/357766.351251"},{"key":"e_1_2_1_12_1","volume-title":"MIRA","author":"Ltd MIRA","year":"2004","unstructured":"MIRA Ltd . MISRA-C:2004 Guidelines for the use of the C language in Critical Systems . MIRA , Oct 2004 . MIRA Ltd. MISRA-C:2004 Guidelines for the use of the C language in Critical Systems. MIRA, Oct 2004."},{"key":"e_1_2_1_13_1","volume-title":"http:\/\/www.osek-vdx.org","author":"OSEK. OSEK\/VDX Operating System Specification 2.2.1. OSEK Group","year":"2003","unstructured":"OSEK. OSEK\/VDX Operating System Specification 2.2.1. OSEK Group , http:\/\/www.osek-vdx.org , 2003 . OSEK. OSEK\/VDX Operating System Specification 2.2.1. OSEK Group, http:\/\/www.osek-vdx.org, 2003."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1023\/B:TIME.0000016129.97430.c6"},{"key":"e_1_2_1_15_1","volume-title":"EETimes","author":"Tech UBM","year":"2013","unstructured":"UBM Tech . 2013 Embedded Market Study. Technical report , EETimes , 2013. UBM Tech. 2013 Embedded Market Study. Technical report, EETimes, 2013."}],"container-title":["ACM SIGBED Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2597457.2597468","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2597457.2597468","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:09:58Z","timestamp":1750234198000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2597457.2597468"}},"subtitle":["a minimal object oriented real-time operating system in C++"],"short-title":[],"issued":{"date-parts":[[2014,2]]},"references-count":15,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2014,2]]}},"alternative-id":["10.1145\/2597457.2597468"],"URL":"https:\/\/doi.org\/10.1145\/2597457.2597468","relation":{},"ISSN":["1551-3688"],"issn-type":[{"type":"electronic","value":"1551-3688"}],"subject":[],"published":{"date-parts":[[2014,2]]},"assertion":[{"value":"2014-02-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}