Advertisement

Discrete Event Dynamic Systems

, Volume 21, Issue 3, pp 307–338 | Cite as

Multi-task Implementation of Multi-periodic Synchronous Programs

  • Claire Pagetti
  • Julien Forget
  • Frédéric Boniol
  • Mikel Cordovilla
  • David Lesens
Article

Abstract

This article presents a complete scheme for the integration and the development of multi-periodic critical embedded systems. A system is formally specified as a modular and hierarchical assembly of several locally mono-periodic synchronous functions into a globally multi-periodic synchronous system. To support this, we introduce a real-time software architecture description language, named Prelude, which is built upon the synchronous languages and which provides a high level of abstraction for describing the functional and the real-time architecture of a multi-periodic control system. A program is translated into a set of real-time tasks that can be executed on a monoprocessor real-time platform with an on-line priority-based scheduler such as Deadline-Monotonic or Earliest-Deadline-First. The compilation is formally proved correct, meaning that the generated code respects the real-time semantics of the original program (respect of periods, deadlines, release dates and precedences) as well as its functional semantics (respect of variable consumption).

Keywords

Real-time Synchronous languages Preemptive multitasking Embedded systems 

References

  1. ARINC (2005) ARINC specification 653: avionics application software standard interface. Aeronautical Radio INCGoogle Scholar
  2. Aubry P, Le Guernic P, Machard S (1996) Synchronous distribution of signal programs. In: Proceedings of the 29th Hawaii international conference on system sciences (HICSS’96) volume 1: software technology and architecture, pp 656–665Google Scholar
  3. Baruah SK, Burns A (2006) Sustainable scheduling analysis. In: Proceedings of the 27th IEEE international real-time systems symposium (RTSS’06). IEEE Computer Society, pp 159–168Google Scholar
  4. Benveniste A, Le Guernic P, Jacquemot C (1991) Synchronous programming with events and relations: the signal language and its semantics. Sci Comput Program 16(2):103–149zbMATHCrossRefGoogle Scholar
  5. Benveniste A, Caspi P, Edwards SA, Halbwachs N, Le Guernic P, de Simone R (2003) The synchronous languages 12 years later. Proc IEEE 91(1):64–83CrossRefGoogle Scholar
  6. Boniol F, Hladik PE, Pagetti C, Aspro F, Jégu V (2008) A framework for distributing real-time functions. In: Proceedings of the 6th international conference on formal modeling and analysis of timed systems (FORMATS’08). Lecture notes in computer science, vol 5215. Springer, pp 155–169Google Scholar
  7. Cervin A (2003) Integrated control and real-time scheduling. PhD thesis, Department of Automatic Control, Lund University, SwedenGoogle Scholar
  8. Chetto H, Silly M, Bouchentouf T (1990) Dynamic scheduling of real-time tasks under precedence constraints. Real-Time Syst 2(3):181–194CrossRefGoogle Scholar
  9. Cohen A, Duranton M, Eisenbeis C, Pagetti C, Plateau F, Pouzet M (2006) N-synchronous Kahn networks: a relaxed model of synchrony for real-time systems. In: ACM international conference on principles of programming languages (POPL’06), Charleston, USAGoogle Scholar
  10. Colaço JL, Pouzet M (2003) Clocks as first class abstract types. In: Proceedings of the 3rd International Conference on Embedded Software (EMSOFT’03), Philadelphia, USA. Lecture Notes in Computer Science, vol 2855, pp 134–155Google Scholar
  11. Cottet F, Delacroix J, Kaiser C, Mammeri Z (2002) Scheduling in real-time systems. WileyGoogle Scholar
  12. Curic A (2005) Implementing Lustre programs on distributed platforms with real-time constraints. PhD thesis, Université Joseph Fourier, GrenobleGoogle Scholar
  13. Faucou S, Déplanche AM, Trinquet Y (2004) An ADL centric approach for the formal design of real-time systems. In: Architecture description language workshop at IFIP World Computer Congress (WADL’04), vol 176, pp 67–82Google Scholar
  14. Feiler PH, Gluch DP, Hudak JJ (2006) The architecture analysis & design language (AADL): an introduction. Tech. Rep. CMU/SEI-2006-TN-011, Carnegie Mellon UniversityGoogle Scholar
  15. Forget J (2009) A synchronous language for critical embedded systems with multiple real-time constraints. PhD thesis, Université de Toulouse - ISAE/ONERA, Toulouse, FranceGoogle Scholar
  16. Forget J, Boniol F, Lesens D, Pagetti C (2008) A multi-periodic synchronous data-flow language. In: Proceedings of the 11th IEEE high assurance systems engineering symposium (HASE’08). IEEE Computer Society, Nanjing, China, pp 251–260CrossRefGoogle Scholar
  17. Forget J, Boniol F, Grolleau E, Lesens D, Pagetti C (2010) Scheduling dependent periodic tasks without synchronization mechanisms (submitted). In: Proceedings of the 16th IEEE real-time and embedded technology and applications symposium (RTAS’10), Stockholm, Sweden, pp 301–310Google Scholar
  18. Girault A, Nicollin X (2003) Clock-driven automatic distribution of Lustre programs. In: Proceedings of the 3rd international conference on embedded software (EMSOFT’03), Philadelphia, USA. Lecture notes in computer science, vol 2855, pp 206–222Google Scholar
  19. Girault A, Nicollin X, Pouzet M (2006) Automatic rate desynchronization of embedded reactive programs. ACM Trans Embedded Comput Syst 5(3):687–717CrossRefGoogle Scholar
  20. Graham RL (1969) Bounds on multiprocessing timing anomalies. SIAM J Appl Math 17(2):416–429zbMATHCrossRefMathSciNetGoogle Scholar
  21. Halbwachs N (1993) Synchronous programming of reactive systems. Kluwer Academic PublisherGoogle Scholar
  22. Halbwachs N, Caspi P, Raymond P, Pilaud D (1991a) The synchronous data-flow programming language LUSTRE. Proc IEEE 79(9):1305–1320CrossRefGoogle Scholar
  23. Halbwachs N, Raymond P, Ratel C (1991b) Generating efficient code from data-flow programs. In: Proceedings of the 3rd international symposium on programming language implementation and logic programming (PLILP ’91), Passau, Germany, pp 207–218Google Scholar
  24. Henzinger TA, Horowitz B, Kirsch CM (2003) Giotto: a time-triggered language for embedded programming. Proc IEEE 91(1):84–99CrossRefGoogle Scholar
  25. Kahn G (1974) The semantics of simple language for parallel programming. In: Proceedings of the international federation for information processing (IFIP’74) Congress, New York, USA, pp 471–475Google Scholar
  26. Lee EA, Sangiovanni-Vincentelli AL (1996) Comparing models of computation. In: Proceedings of the 1996 IEEE/ACM international conference on computer-aided design (ICCAD’96). IEEE Computer Society, San Jose, USA, pp 234–241Google Scholar
  27. Leroy X (2006) The objective Caml system release 3.09, documentation and user’s manual. INRIAGoogle Scholar
  28. Liu CL, Layland JW (1973) Scheduling algorithms for multiprogramming in a hard-real-time environment. J ACM 20(1):46–61zbMATHCrossRefMathSciNetGoogle Scholar
  29. OSEK (2003) OSEX/VDX operating system specification 2.2.1. OSEK Group. www.osek-vdx.org
  30. Pierce BC (2002) Types and programming languages. MIT Press, Cambridge, USAGoogle Scholar
  31. POSIX13 (1998) IEEE Std. 1003.13-1998. POSIX realtime application support (AEP). The Institute of Electrical and Electronics EngineersGoogle Scholar
  32. Pouzet M (2006) Lucid synchrone, version 3. Tutorial and reference manual. Université Paris-Sud, LRIGoogle Scholar
  33. Reynolds JC (1998) Theories of programming languages. Cambridge University PressGoogle Scholar
  34. Rivas MA, Harbour MG (2002) POSIX-compatible application-defined scheduling in MaRTE OS. In: Proceedings of the 14th Euromicro conference on real-time systems (ECRTS’02), Washington, USA, pp 67–75Google Scholar
  35. Sename O, Simon D, Ben Gaïd MEM (2008) A LPV approach to control and real-time scheduling codesign: application to a robot-arm control. In: Proceedings of the 47th IEEE conference on decision and control (CDC’08), Cancun Mexique, pp 4891–4897Google Scholar
  36. Singhoff F, Legrand J, Nana L, Marcé L (2004) Cheddar: a flexible real time scheduling framework. Ada Lett XXIV(4):1–8CrossRefGoogle Scholar
  37. Smarandache I, Le Guernic P (1997) A canonical form for affine relations in signal. Tech. Rep. RR-3097, INRIAGoogle Scholar
  38. Sofronis C, Tripakis S, Caspi P (2006) A memory-optimal buffering protocol for preservation of synchronous semantics under preemptive scheduling. In: Proceedings of the 6th international conference on embedded software (EMSOFT’06), Seoul, South Korea, pp 21–33Google Scholar
  39. The Mathworks (2009) Simulink: user’s guide. The MathworksGoogle Scholar
  40. Tripakis S, Sofronis C, Caspi P, Curic A (2005) Translating discrete-time Simulink to Lustre. ACM Trans Embed Comput Syst 4(4):779–818CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  • Claire Pagetti
    • 1
    • 2
  • Julien Forget
    • 3
  • Frédéric Boniol
    • 1
  • Mikel Cordovilla
    • 1
  • David Lesens
    • 4
  1. 1.ONERAToulouseFrance
  2. 2.IRIT/ENSEEIHTToulouseFrance
  3. 3.LIFL/INRIAVilleneuve d’AscqFrance
  4. 4.EADS Astrium Space TransportationLes MureauxFrance

Personalised recommendations