Design of safety-critical Java level 1 applications using affine abstract clocks

Safety-critical Java (SCJ) is designed to enable development of applications that are amenable to certification under safety-critical standards. However, its shared-memory concurrency model causes several problems such as data races, deadlocks, and priority inversion. We propose therefore a dataflow design model of SCJ applications in which periodic and aperiodic tasks communicate only through lock-free channels. We provide the necessary tools that compute scheduling parameters of tasks (i.e. periods, phases, priorities, etc) so that uniprocessor/multiprocessor preemptive fixed-priority schedulability is ensured and the throughput is maximized. Furthermore, the resulted schedule together with the computed channel sizes ensure underflow/overflow-free communications. The scheduling approach consists in constructing an abstract affine schedule of the dataflow graph and then concretizing it.

[1]  Sanjoy K. Baruah,et al.  A Response-Time Bound in Fixed-Priority Scheduling with Arbitrary Deadlines , 2009, IEEE Transactions on Computers.

[2]  Todor Stefanov,et al.  Managing latency in embedded streaming applications under hard-real-time scheduling , 2012, CODES+ISSS '12.

[3]  Sanjoy K. Baruah,et al.  The partitioned scheduling of sporadic tasks according to static-priorities , 2006, 18th Euromicro Conference on Real-Time Systems (ECRTS'06).

[4]  Alan Burns,et al.  Multiple Servers and Capacity Sharing for Implementing Flexible Scheduling , 2004, Real-Time Systems.

[5]  Edward A. Lee,et al.  The Semantics of Dataflow with Firing , 2022 .

[6]  Dayton Clark HIC: an operating system for hierarchies of servo loops , 1989, Proceedings, 1989 International Conference on Robotics and Automation.

[7]  Jay K. Strosnider,et al.  The Deferrable Server Algorithm for Enhanced Aperiodic Responsiveness in Hard Real-Time Environments , 1987, IEEE Trans. Computers.

[8]  Andy J. Wellings,et al.  Asynchronous event handling and Safety Critical Java , 2010, JTRES '10.

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

[10]  Jan Vitek,et al.  Reflexes: abstractions for highly responsive systems , 2007, VEE '07.

[11]  Lui Sha,et al.  Aperiodic task scheduling for Hard-Real-Time systems , 2006, Real-Time Systems.

[12]  Jan Vitek,et al.  Streamflex: high-throughput stream programming in java , 2007, OOPSLA.

[13]  Neil C. Audsley,et al.  On priority assignment in fixed priority scheduling , 2001, Inf. Process. Lett..

[14]  Martin Schoeberl,et al.  Safety-critical Java on a Java processor , 2012, JTRES '12.

[15]  Jan Vitek,et al.  Affine Data-Flow Graphs for the Synthesis of Hard Real-Time Applications , 2012, 2012 12th International Conference on Application of Concurrency to System Design.

[16]  Gerhard Reinelt,et al.  The Linear Ordering Problem: Exact and Heuristic Methods in Combinatorial Optimization , 2011 .

[17]  Alan Burns,et al.  A survey of hard real-time scheduling for multiprocessor systems , 2011, CSUR.

[18]  Sander Stuijk,et al.  SDF^3: SDF For Free , 2006, Sixth International Conference on Application of Concurrency to System Design (ACSD'06).

[19]  Jean-Pierre Talpin,et al.  Buffer minimization in earliest-deadline first scheduling of dataflow graphs , 2013, LCTES '13.

[20]  Mikael Sjödin,et al.  Improved response-time analysis calculations , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[21]  Abdoulaye Gamatié Design of streaming applications on MPSoCs using abstract clocks , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[22]  Frédéric Boniol,et al.  Multi-task Implementation of Multi-periodic Synchronous Programs , 2011, Discret. Event Dyn. Syst..

[23]  Joseph Y.-T. Leung,et al.  On the complexity of fixed-priority scheduling of periodic, real-time tasks , 1982, Perform. Evaluation.

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

[25]  Daniel Spoonhower,et al.  Eventrons: a safe programming construct for high-frequency hard real-time applications , 2006, PLDI '06.

[26]  Jan Vitek,et al.  Real time Java on resource-constrained platforms with Fiji VM , 2009, JTRES '09.

[27]  Jean A. Peperstraete,et al.  Cycle-static dataflow , 1996, IEEE Trans. Signal Process..

[28]  Paul Le Guernic,et al.  Validation of Mixed SIGNAL-ALPHA Real-Time Systems through Affine Calculus on Clock Synchronisation Constraints , 1999, World Congress on Formal Methods.

[29]  Jan Vitek,et al.  Static checking of safety critical Java annotations , 2010, JTRES '10.

[30]  Jan Vitek,et al.  Developing safety critical Java applications with oSCJ/L0 , 2010, JTRES '10.

[31]  Dong-Ik Oh,et al.  Utilization Bounds for N-Processor Rate Monotone Scheduling with Static Processor Assignment , 1998, Real-Time Systems.

[32]  Enrico Bini,et al.  Optimal task rate selection in fixed priority systems , 2005, 26th IEEE International Real-Time Systems Symposium (RTSS'05).

[33]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[34]  Alan Burns,et al.  New results on fixed priority aperiodic servers , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[35]  Todor Stefanov,et al.  Hard-real-time scheduling of data-dependent tasks in embedded streaming applications , 2011, 2011 Proceedings of the Ninth ACM International Conference on Embedded Software (EMSOFT).

[36]  Laurent Fribourg,et al.  Robustness Analysis for Scheduling Problems Using the Inverse Method , 2012, 2012 19th International Symposium on Temporal Representation and Reasoning.

[37]  Anders P. Ravn,et al.  Safety-critical Java for low-end embedded platforms , 2012, JTRES '12.

[38]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[39]  Giorgio C. Buttazzo,et al.  HARTIK: a hard real-time kernel for programming robot tasks with explicit time constraints and guaranteed execution , 1993, [1993] Proceedings IEEE International Conference on Robotics and Automation.

[40]  Luigi Palopoli,et al.  Symbolic Computation of Schedulability Regions Using Parametric Timed Automata , 2008, 2008 Real-Time Systems Symposium.

[41]  Jan Vitek,et al.  Flexible task graphs: a unified restricted thread programming model for java , 2008, LCTES '08.

[42]  Alan Burns,et al.  Applying new scheduling theory to static priority pre-emptive scheduling , 1993, Softw. Eng. J..

[43]  Christoph M. Kirsch,et al.  Java takes flight: time-portable real-time programming with exotasks , 2007, LCTES '07.

[44]  Edward A. Lee,et al.  Non-preemptive real-time scheduling of dataflow systems , 1995, 1995 International Conference on Acoustics, Speech, and Signal Processing.