A formal software synthesis approach for embedded hard real-time systems

Software synthesis is defined as the task of translating a specification into a software program, in a general purpose language, in such a way that this software can be compiled by conventional compilers. In general, complex real-time systems rely on specialized operating system kernels. However, the operating system usage may introduce significant overheads as in execution time as in memory requirement. In order to eliminate such overheads, automatic software synthesis methods should be implemented. Such methods comprise real-time operating system services (scheduling, resource management, communication, synchronization), and code generation. Formal methods are a very promising alternative to deal with the complexity of embedded systems, and for improving the degree of confidence in critical systems. We present a formal approach for automatic embedded hard real-time software synthesis based on time Petri nets. In order to illustrate the practical usability of the proposed method, it is shown how to synthesize a C code implementation using a heated-humidifier case study.

[1]  Paulo Romero Martins Maciel,et al.  A Novel Approach for Off-Line Multiprocessor Scheduling in Embedded Hard Real-Time Systems , 2004, DIPES.

[2]  David Lorge Parnas,et al.  On Satisfying Timing Constraints in Hard-Real-Time Systems , 1993, IEEE Trans. Software Eng..

[3]  P. Merlin,et al.  Recoverability of Communication Protocols - Implications of a Theoretical Study , 1976, IEEE Transactions on Communications.

[4]  Kang G. Shin,et al.  Comment on "A Pre-Run-Time Scheduling Algorithm for Hard Real-Time Systems'' , 1997, IEEE Trans. Software Eng..

[5]  David Lorge Parnas,et al.  Scheduling Processes with Release Times, Deadlines, Precedence, and Exclusion Relations , 1990, IEEE Trans. Software Eng..

[6]  Wang Yi,et al.  Code Synthesis for Timed Automata , 2003 .

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

[8]  Bill Lin,et al.  Efficient compilation of process-based concurrent programs without run-time scheduling , 1998, Proceedings Design, Automation and Test in Europe.

[9]  Pao-Ann Hsiung Formal synthesis and code generation of embedded real-time software , 2001, CODES '01.

[10]  Kang G. Shin,et al.  Combined Task and Message Scheduling in Distributed Real-Time Systems , 1999, IEEE Trans. Parallel Distributed Syst..

[11]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[12]  Luciano Lavagno,et al.  Synthesis of embedded software using free-choice Petri nets , 1999, DAC '99.

[13]  Pao-Ann Hsiung,et al.  Extended quasi-static scheduling for formal synthesis and code generation of embedded software , 2002, CODES '02.