YASMIN: a real-time middleware for COTS heterogeneous platforms

Commercial-off-the-shelf (COTS) heterogeneous platforms provide immense computational power, but are difficult to program and to correctly use when real-time requirements come into play: A sound configuration of the operating system scheduler is needed, and a suitable mapping of tasks to computing units must be determined. Flawed designs lead to sub-optimal system configurations and, thus, to wasted resources or even to deadline misses and system failures. We propose YASMIN, a middleware to schedule end-user applications with real-time requirements in user space and on behalf of the operating system. YASMIN combines an easy-to-use programming interface with portability across a wide range of architectures. It treats heterogeneity on COTS embedded platforms as a first-class citizen: YASMIN supports multiple functionally equivalent task implementations with distinct extra-functional behaviour. This enables the system designer to quickly explore different scheduling policies and task-to-core mappings, and thus, to improve overall system performance. In this paper, we present the design and implementation of YASMIN and provide an analysis of the scheduling overhead on an Odroid-XU4 platform. We demonstrate the merits of YASMIN on an industrial use-case involving a search-and-rescue drone.

[1]  Gabriel Parmer,et al.  Slite: OS Support for Near Zero-Cost, Configurable Scheduling * , 2020, 2020 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS).

[2]  Damien Hardy,et al.  The Heptane Static Worst-Case Execution Time Estimation Tool , 2017, WCET.

[3]  Robert I. Davis,et al.  Generating Utilization Vectors for the Systematic Evaluation of Schedulability Tests , 2020, 2020 IEEE Real-Time Systems Symposium (RTSS).

[4]  R. C. Hansdah,et al.  An implementation of partitioned scheduling scheme for hard real-time tasks in multicore Linux with fair share for Linux tasks , 2014, 2014 IEEE 20th International Conference on Embedded and Real-Time Computing Systems and Applications.

[5]  Reinhold Heckmann,et al.  Worst case execution time prediction by static program analysis , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[6]  Amit Kumar,et al.  Extended Level Real time Scheduling Framework: Using a generalized non-real time platform , 2014, 2014 International Conference on Advances in Computing, Communications and Informatics (ICACCI).

[7]  Ragunathan Rajkumar,et al.  Synchronization in Real-Time Systems: A Priority Inheritance Approach , 1991 .

[8]  Giuseppe Lipari,et al.  The HPC-DAG Task Model for Heterogeneous Real-Time Systems , 2020, IEEE Transactions on Computers.

[9]  Joël Goossens,et al.  ACCEPTOR: a model and a protocol for real-time multi-mode applications on reconfigurable heterogeneous platforms , 2019, RTNS.

[10]  Ulrik Pagh Schultz,et al.  PReGO: a generative methodology for satisfying real-time requirements on COTS-based systems: definition and experience report , 2020, GPCE.

[11]  Giorgio C. Buttazzo,et al.  The challenge of real-time multi-agent systems for enabling IoT and CPS , 2017, WI.

[12]  Reinder J. Bril,et al.  Extending ExSched with Mixed Criticality Support — An Experience Report , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[13]  James H. Anderson,et al.  Bringing theory into practice: A userspace library for multicore real-time scheduling , 2013, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

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

[15]  Theodore P. Baker,et al.  Aperiodic servers in a deadline scheduling environment , 2005, Real-Time Systems.

[16]  Hiroyuki Chishiro RT-Seed: Real-Time Middleware for Semi-Fixed-Priority Scheduling , 2016, 2016 IEEE 19th International Symposium on Real-Time Distributed Computing (ISORC).

[17]  Michael L. Scott,et al.  Algorithms for scalable synchronization on shared-memory multiprocessors , 1991, TOCS.

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

[19]  Marko Bertogna,et al.  Bao: A Lightweight Static Partitioning Hypervisor for Modern Multi-Core Embedded Systems , 2020, NG-RES@HiPEAC.

[20]  Tommaso Cucinotta,et al.  An Architecture for Declarative Real-Time Scheduling on Linux , 2020, 2020 IEEE 23rd International Symposium on Real-Time Distributed Computing (ISORC).

[21]  Marco Caccamo,et al.  Designing Mixed Criticality Applications on Modern Heterogeneous MPSoC Platforms , 2019, ECRTS.

[22]  Richard West,et al.  Predictable Interrupt Management and Scheduling in the Composite Component-Based System , 2008, 2008 Real-Time Systems Symposium.

[23]  Sebastian Fischmeister,et al.  Implementation and evaluation of global and partitioned scheduling in a real-time OS , 2013, Real-Time Systems.

[24]  Shinpei Kato,et al.  ExSched: An External CPU Scheduler Framework for Real-Time Systems , 2012, 2012 IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[25]  Shen Su,et al.  Real-Time Lateral Movement Detection Based on Evidence Reasoning Network for Edge Computing Environment , 2019, IEEE Transactions on Industrial Informatics.

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

[27]  Lothar Thiele,et al.  SF3P: a framework to explore and prototype hierarchical compositions of real-time schedulers , 2014, 2014 25nd IEEE International Symposium on Rapid System Prototyping.

[28]  Peter Friess,et al.  Internet of Things Strategic Research Roadmap , 2011 .

[29]  Hennadiy Leontyev,et al.  LITMUS^RT : A Testbed for Empirically Comparing Real-Time Multiprocessor Schedulers , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[30]  Robert I. Davis,et al.  An Empirical Survey-based Study into Industry Practice in Real-time Systems , 2020, 2020 IEEE Real-Time Systems Symposium (RTSS).

[31]  Tommaso Cucinotta,et al.  Demystifying the Real-Time Linux Scheduling Latency , 2020, ECRTS.

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