Presentation at SYNCHRON'12

Design of safety-critical Java applications using abstract affine clocks

Adnan Bouakaz, IRISA

Joint work with Jean-Pierre Talpin (INRIA) and Jan Vitek (Purdue)


Safety-critical Java (SCJ) is a domain specific API of Java that aims at the development of qualified and certified embedded systems. Despite its simplified memory and concurrency models, it is always difficult to ensure functional determinism and schedule feasibility when using shared-memory and traditional lock-based mutual exclusion protocols. Automated code generation techniques from dataflow specifications allow waiving part of the difficult and error-prone tasks of programming real-time schedules for computations and communications from the engineering process. Our ADFG tool aims at automatic SCJ code generation from dataflow specifications. We also propose a scheduling analysis of dataflow specifications that consists of two major steps. 1) The construction of abstract affine schedules for computations that minimize buffering requirements under the assumption of read-write precedences and exclude overflow and underflow exceptions over communication channels. 2) The concretization of the affine schedules using an earliest-deadline first (EDF) symbolic schedulability analysis in a way that read-write precedences are ensured without the need for lock-based mechanisms and the processor utilization factor is maximized.

Slides, paper.