PReGO: a generative methodology for satisfying real-time requirements on COTS-based systems: definition and experience report

Satisfying real-time requirements in cyber-physical systems is challenging as timing behaviour depends on the application software, the embedded hardware, as well as the execution environment. This challenge is exacerbated as real-world, industrial systems often use unpredictable hardware and software libraries or operating systems with timing hazards and proprietary device drivers. All these issues limit or entirely prevent the application of established real-time analysis techniques. In this paper we propose PReGO, a generative methodology for satisfying real-time requirements in industrial commercial-off-the-shelf (COTS) systems. We report on our experience in applying PReGO to a use-case: a Search & Rescue application running on a fixed-wing drone with COTS components, including an NVIDIA Jetson board and a stock Ubuntu/Linux. We empirically evaluate the impact of each integration step and demonstrate the effectiveness of our methodology in meeting real-time application requirements in terms of deadline misses and energy consumption.

[1]  Michael F. P. O'Boyle,et al.  Partitioning streaming parallelism for multi-cores: A machine learning based approach , 2010, 2010 19th International Conference on Parallel Architectures and Compilation Techniques (PACT).

[2]  Steven Derrien,et al.  Hiding Communication Delays in Contention-Free Execution for SPM-Based Multi-Core Architectures , 2019, ECRTS.

[3]  Lui Sha,et al.  WCET(m) Estimation in Multi-core Systems Using Single Core Equivalence , 2015, 2015 27th Euromicro Conference on Real-Time Systems.

[4]  Alexander Verl,et al.  BRIDE - A toolchain for framework-independent development of industrial service robot applications , 2014, ISR 2014.

[5]  Sameer M. Prabhu,et al.  Best Practices for Establishing a Model-Based Design Culture , 2007 .

[6]  Sanjoy K. Baruah,et al.  A Generalized Parallel Task Model for Recurrent Real-time Processes , 2012, 2012 IEEE 33rd Real-Time Systems Symposium.

[7]  William B. Ackerman,et al.  Data Flow Languages , 1899, Computer.

[8]  Shuvra S. Bhattacharyya,et al.  Embedded Multiprocessors: Scheduling and Synchronization , 2000 .

[9]  Roy H. Campbell,et al.  Context switch overheads for Linux on ARM platforms , 2007, ExpCS '07.

[10]  Réda Nouacer,et al.  Towards a framework of key technologies for drones , 2020, Microprocess. Microsystems.

[11]  Gabor Karsai,et al.  Generative programming for embedded systems , 2002, PPDP '02.

[12]  Babak Majidi,et al.  Real Time Aerial Natural Image Interpretation for Autonomous Ranger Drone Navigation , 2005, Digital Image Computing: Techniques and Applications (DICTA'05).

[13]  Liliana Cucu-Grosjean,et al.  A review of priority assignment in real-time systems , 2016, J. Syst. Archit..

[14]  Jörgen Hansson,et al.  Model-based engineering in the embedded systems domain: an industrial survey on the state-of-practice , 2018, Software & Systems Modeling.

[15]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[16]  Alexander Domahidi,et al.  Real-time planning for automated multi-view drone cinematography , 2017, ACM Trans. Graph..

[17]  Mark Rouncefield,et al.  The State of Practice in Model-Driven Engineering , 2014, IEEE Software.

[18]  Arnoldo Díaz-Ramírez,et al.  Interrupt Handling Schemes in Operating Systems , 2018, SpringerBriefs in Computer Science.

[19]  Xiaofei He,et al.  Real-Time Object Tracking on a Drone With Multi-Inertial Sensing Data , 2018, IEEE Transactions on Intelligent Transportation Systems.

[20]  Wang Yi,et al.  Graph-based models for real-time workload: a survey , 2015, Real-Time Systems.

[21]  Luca Abeni,et al.  Real-time and energy efficiency in Linux: theory and practice , 2019, SIAP.

[22]  Fabio Checconi,et al.  An implementation of the earliest deadline first algorithm in Linux , 2009, SAC '09.

[23]  James H. Anderson,et al.  Scheduling and locking in multiprocessor real-time operating systems , 2011 .

[24]  Christian Schlegel,et al.  Model-driven engineering and run-time model-usage in service robotics , 2011, GPCE '11.

[25]  Christian Wietfeld,et al.  Supporting Maritime Search and Rescue Missions Through UAS-Based Wireless Localization , 2018, 2018 IEEE Globecom Workshops (GC Wkshps).

[26]  Davide Di Ruscio,et al.  Automatic generation of detailed flight plans from high-level mission descriptions , 2016, MoDELS.

[27]  Sylvain Girbal,et al.  Porting a safety-critical industrial application on a mixed-criticality enabled real-time operating system , 2017 .

[28]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[29]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[30]  Christian Wietfeld,et al.  Heterogeneous Multilink Aggregation for Reliable UAV Communication in Maritime Search and Rescue Missions , 2019, 2019 International Conference on Wireless and Mobile Computing, Networking and Communications (WiMob).

[31]  Aloysius Ka-Lau Mok,et al.  Fundamental design problems of distributed systems for the hard-real-time environment , 1983 .

[32]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.

[33]  Felipe Cerqueira,et al.  A Comparison of Scheduling Latency in Linux, PREEMPT-RT, and LITMUS RT , 2013 .

[34]  Damien Cassou,et al.  A generative programming approach to developing pervasive computing systems , 2009, GPCE '09.

[35]  Markus Völter,et al.  Model-Driven Software Development: Technology, Engineering, Management , 2006 .

[36]  Giorgio C. Buttazzo,et al.  Partitioned Fixed-Priority Scheduling of Parallel Tasks Without Preemptions , 2018, 2018 IEEE Real-Time Systems Symposium (RTSS).

[37]  Krzysztof Czarnecki,et al.  Generative Programming for Embedded Software: An Industrial Experience Report , 2002, GPCE.

[38]  Jozef Hooman,et al.  Reducing design time and promoting evolvability using Domain-Specific Languages in an industrial context , 2020 .

[39]  Steve Brosky,et al.  Shielded processors: guaranteeing sub-millisecond response in standard Linux , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[40]  Edward A. Lee,et al.  Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing , 1989, IEEE Transactions on Computers.

[41]  Sebastian Altmeyer,et al.  Towards Energy-, Time- and Security-Aware Multi-core Coordination , 2020, COORDINATION.