Skip to main content

A modular approach for programming embedded systems

  • Real-Time Systems
  • Chapter
  • First Online:
  • 1096 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1494))

Abstract

A real-time system not only must generate correct results, it must generate those results on time. In embedded systems, these results include control signals, actuator reactions, etc. Traditional approaches to the design and implementation of real-time embedded applications first transfer timing requirements into machine dependent operations using low level programming languages, such as Assembly or C. By intermixing functional behavior with timing behavior, low-level programming languages reduce the modularity and reusability of software components. For example, it is difficult to incrementally modify either existing application code to meet new functionality requirements, or the scheduling to meet changing hardware or network requirements. In order to address these difficulties, we develop a high-level language approach to support a stronger separation of design concerns. We use actors as a formal model of computation in an embedded system and separate timing requirements from the actors' functional behavior. A new language construct, called RTsynchronizer, is introduced to express timing requirements. Our approach provides a formal basis for a component-based compositional software development methodology for distributed real-time and embedded systems.

The research described has been made possible in part by support from the Office of Naval Research (ONR contract numbers N00014-90-J-1899 and N00014-93-1-0273), by an Incentives for Excellence Award from the Digital Equipment Corporation Faculty Program, by Hitachi, by the National Science Foundation (NSF CCR 93-12495, NSF CCR-9523253 and NSF CCR-9619522); and by the Air Force Office of Scientific Research (AF DC 5-36128). The authors would like to thank Brian Nielsen, Daniel Sturman, Mark Astley, Nadeem Jamali, WooYoung Kim, Prasannaa Thati, James Waldby and other members of the Open Systems Laboratory who have provided helpful suggestions and discussion.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ada95 6.0 reference manual. Technical report, Internet's Public Ada Library, 1995.

    Google Scholar 

  2. G. Agha. Actors. A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.

    Google Scholar 

  3. G. Agha. Concurrent object-oriented programming. Communications of the ACM, 33(9):125–141, September 1990.

    Google Scholar 

  4. G. Agha, S. Frølund, R. Panwar, and D. Sturman. A linguistic framework for dynamic composition of dependability protocols. In Proceedings of the 3rd IFIP Working Conference on Dependable Computing for Critical Applications, September 1992.

    Google Scholar 

  5. G. Agha, W. Kim, and R. Panwar. Actor languages for specification of parallel computations. In G. E. Blelloch, K. Mani Chandy, and S. Jagannathan, editors, DIMACS. Series in Discrete Mathematics and Theoretical Computer Science. vol 18. Specification of Parallel Algorithms, pages 239–258. American Mathematical Society, 1994.

    Google Scholar 

  6. G. Agha, I. A. Mason, S. F. Smith, and C. L. Talcott. Towards a theory of actor computation. In The Third International Conference on Concurrency Theory (CONCUR'92), pages 565–579. Springer Verlag, August 1992. LNCS 630.

    Google Scholar 

  7. G. Agha, I. A. Mason, S. F. Smith, and C. L. Talcott. A foundation for actor computation. Journal of Functional Programming, 7:1–72, 1997.

    Google Scholar 

  8. Gul A. Agha. Abstracting interaction patterns: A programming paradigm for open distributed systems. In Elie Najm and Jean-Bernard Stefani, editors, Formal Methods for Open Object-based Distributed Systems, pages 135–153. IFIP, Chapman & Hall, 1997.

    Google Scholar 

  9. M. Akgit and L. M. J. Bergmans. Composing and reusing synchronization and real-time specification. In The Object-Oriented Real-Time Systems (OORTS) Workshop, pages 13–22, San Antonio, Texas, October 1995. to appear in OOPS Messeuger, ACM SIGPLAN.

    Google Scholar 

  10. M. Akşit, J. Bosch, and W. Sterren. Real-time specification inheritance anomalies and real-time filters. In Proceedings of ECOOP'94, pages 386–407. Springer Verlag, July 1994. LNCS 821.

    Google Scholar 

  11. G. Berry, P.Couronné, and G. Gonithier. Synchronous programming of reactive systems: An introduction to esterel. In Programming of Future Generation Computers, pages 33–55. Elsivier Science Publishers, Amsterdam, 1988.

    Google Scholar 

  12. Gerard Berry and laurent Cosserat. The esterel synchronous programming language and its mathematical semantics. In Seminar on Concurrency, pages 389–448. Springer Verlag, 1984. LNCS 197.

    Google Scholar 

  13. E. Brorsson, C. Eriksson, and J. Gustafsson. Realtimetalk an object-oriented language for hard real-time systems.

    Google Scholar 

  14. W. Clinger. Foundation of actor semantics. Technical Report AI-TR-633, MIT, 1981.

    Google Scholar 

  15. Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms, chapter 25, pages 515–550. MIT Press, 1990.

    Google Scholar 

  16. Z. Deng, J.W.-S Liu, and J. Sun. Dynamic scheduling of hard real-time applications in open system environment. Technical Report UIUCDCS-R-96-1981, University of Illinois at Urbana-Champaign, October 1996.

    Google Scholar 

  17. R. Gerber et al. Guaranteeing end-to-end timing constraints by calibrating intermediate processes. In Real-Time Systems Symposium, 1994, 1994.

    Google Scholar 

  18. Antony A. Faustini and Edgar B. Lewis. Toward a real-time dataflow language. IEEE Software, 3(1):139–145, January 1986.

    Google Scholar 

  19. S. Frølund and G. Agha. A language framework for multi-object coordination. In Proceedings of ECOOP 1993, volume 707 of LNCS. Springer Verlag, 1993.

    Google Scholar 

  20. Svend Frølund.Coordinating Distributed Objects: An Actor-Based Approach to Synchronization. MIT Press, 1996.

    Google Scholar 

  21. A. S. Grimshaw, A. Silberman, and J. W. S. Liu. Real-time mentat at programming language and architecture. In IEEE Globecom'89, 1989.

    Google Scholar 

  22. W. A. Halang and K. Mangold. Real-time programming languages. In M. Schiebe and S. Pferrer, editors, Real-Time Systems Engineering and Applications, chapter 6, pages 141–200. Kluwer Academic, 1992.

    Google Scholar 

  23. C. Hewitt. Viewing control structures as patterns of passing messages. Journal of Artificial Intelligence, 8(3):323–364, 1977.

    Google Scholar 

  24. B. Hoogeboom and W. A. Halang. The concept of time in the specification of real-time systems. In M. Schiebe and S. Pferrer, editors, Real-Time Systems Engineering ] and Applications, chapter 2, pages 11–40. Kluwer Academic, 1992.

    Google Scholar 

  25. American National Standards Institute. The programming language Ada reference manual. In The Programming Language Ada Reference Manual. Springer Verlag, 1983.

    Google Scholar 

  26. Yutaka Ishikawa, Hideyuki Tokuda, and Clifford W. Mercer. Object-oriented realtime language design: Constructs for timing constraints. In Proceedings OOP-SLA/E000P '90, pages 289–298, October 1990. Published as ACM SIGPLAN Notices, volume 25, number 10.

    Google Scholar 

  27. Farnam Jahanian, Aloysius K. Mok, and Douglas A. Stuart. Formal specification of real-time systems. Technical Report 25, The University of Texas at Austin, 1988.

    Google Scholar 

  28. Kevin B. Kenny and Kwei-Jay Lin. Building flexible real-time systems using the flex language. IEEE Computer, 24(5):70–78, 1991.

    Google Scholar 

  29. L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558–565, 1978.

    Google Scholar 

  30. K. Lin and J. W. Liu. Flex: A language for real-time systems programming. Technical Report 1634, UIUC, 1990.

    Google Scholar 

  31. David Luckhman. Guide to the rapide 1.0 langauage reference manuals. Technical report, Stanford University, http://anna.stanford.edu/rapide/rapide.html, 1996.

    Google Scholar 

  32. A. K. Mok. Real-time logic, programming and scheduling. In B. Randell, editor, Real-Time Systems, Proceedings of the Joint University of Newcastle Upon Tyne/International computers Limited Semina, Newcastle, September 1989.

    Google Scholar 

  33. A. K. Mok. Real-time scheduling and the boeing 777. In European Educational Forum School on Embedded Systems 1996, Veldhoven, NL, November 1996.

    Google Scholar 

  34. B. Nielsen and G. Agha. Semantics for an actor-based real-time language. In Proceedings of the Fourth International Workshop on Parallel and Distributed Real-Time Systems, Honolulu, April 1996.

    Google Scholar 

  35. O. Nierstrasz and M. Papathomas. Viewing Objects as Patterns of Communicating Agents. In Proceedings OOPSLAIECOOP '90, pages 38–43, October 1990. Published as ACM SIGPLAN Notices, volume 25, number 10.

    Google Scholar 

  36. S. Ren. An Actor-Based Framework for Real-Time Coordination. PhD thesis, University of Illinois at Urbana-Champaign, 1997.

    Google Scholar 

  37. S. Ren and G. Agha. RTsynchronizers: Language support for real-time specifications in distributed systems. ACM SIGPLAN Notices, 30(11):50–59, November 1995.

    Google Scholar 

  38. S. Ren, G. Agha, and M. Saito. A Modular Approach for Programming Distributed Real-Time Systems. Journal of Parallel and Distributed Computing, 36(1):4–12, July 1996.

    Google Scholar 

  39. Karsten Schwan and Hongyi Zhou. Dynamic scheduling of hard real-time tasks and real-time threads. IEEE Transactions on Software Engineering, 18(8):736–747, 1992.

    Google Scholar 

  40. A. Silberman. Real-time mentat. Technical report, Department of Computer Science, UIUC, 1995.

    Google Scholar 

  41. J.A. Stankovic. A perspective on distributed computer systems. IEEE Transactions on Computers, C-33(12):1102–1115, 1984.

    Google Scholar 

  42. A. Stoyenko, V. Hamacher, and R. Holt. Analyzing hard-real-time programs for guaranteed schedulability. IEEE Transactions on Software Engineering, 17(8):737–750, August 1991.

    Google Scholar 

  43. S. Tucker Taft. Ada 9x: From abstraction-oriented to object-oriented. In Proceedings OOPSLA '93, ACM SIGPLAN Notices, pages 127–143, October 1993. Published as Proceedings OOPSLA '93, ACM SIGPLAN Notices, volume 28, number 10.

    Google Scholar 

  44. J.D. Ullman. Np-complete scheduling problems. Journal of Computer System Science, 10:384–393, 1975.

    Google Scholar 

  45. R.A. Volz and T.N. Mudge. Timing issues in the distributed execution of ada programs. IEEE Transactions on Computers, 36(4):449–459, April 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Grzegorz Rozenberg Frits W. Vaandrager

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Ren, S., Agha, G.A. (1998). A modular approach for programming embedded systems. In: Rozenberg, G., Vaandrager, F.W. (eds) Lectures on Embedded Systems. EEF School 1996. Lecture Notes in Computer Science, vol 1494. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-65193-4_22

Download citation

  • DOI: https://doi.org/10.1007/3-540-65193-4_22

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65193-2

  • Online ISBN: 978-3-540-49498-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics