Reinventing Computing for Real Time

  • Edward A. Lee
  • Yang Zhao
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4322)


This paper studies models of computation, software techniques, and analytical models for distributed timed systems. By “timed systems” we mean those where timeliness is an essential part of the behavior. By “distributed systems” we mean computational systems that are interconnected on a network. Applications of timed distributed systems include industrial automation, distributed immersive environments, advanced instrumentation systems, networked control systems, and many modern embedded software systems that integrate networking. The introduction of network time protocols such as NTP (at a coarse granularity) and IEEE 1588 (at a fine granularity) makes possible time coherence that has not traditionally been part of the computational models in networked systems. The main question we address in this paper is: Given time synchronization with some known precision, how does this change how distributed applications are designed and developed? A second question we address is: How can time synchronization help with realizing coordinated real-time events.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Avissar, O., Barua, R., Stewart, D.: An optimal memory allocation scheme for scratch-pad-based embedded systems. Trans. on Embedded Computing Sys. 1(1), 6–26 (2002)CrossRefGoogle Scholar
  2. 2.
    Berry, G.: The effectiveness of synchronous languages for the development of safety-critical systems. White paper, Esterel Technologies (2003)Google Scholar
  3. 3.
    Chandy, K.M., Misra, J.: Distributed simulation: A case study in design and verification of distributed programs. IEEE Trans. on Software Engineering 5(5) (1979)Google Scholar
  4. 4.
    de Kock, E.A., Essink, G., Smits, W.J.M., van der Wolf, P., Brunel, J.-Y., Kruijtzer, W.M., Lieverse, P., Vissers, K.A.: YAPI: Application modeling for signal processing systems. In: 37th Design Automation Conference (DAC’00), Los Angeles, CA, pp. 402–405 (2000)Google Scholar
  5. 5.
    Dijkstra, E.: Cooperating sequential processes. In: Genuys, E F. (ed.) Programming Languages, Academic Press, London (1968)Google Scholar
  6. 6.
    Dominguez, A., Udayakumaran, S., Barua, R.: Heap data allocation to scratch-pad memory in embedded systems. Journal of Embedded Computing 1(4) (2005)Google Scholar
  7. 7.
    Eker, J.: Taming heterogeneity—the Ptolemy approach. Proceedings of the IEEE 91(2), 127–144 (2003)CrossRefGoogle Scholar
  8. 8.
    Gay, D., Levis, P., von Behren, R., Welsh, M., Brewer, E., Culler, D.: The nesc language: A holistic approach to networked embedded systems. In: Programming Language Design and Implementation (PLDI) (2003)Google Scholar
  9. 9.
    Ghosal, A., Henzinger, T.A., Kirsch, C.M., Sanvido, M.A.A.: Event-driven programming with logical execution times. In: Alur, R., Pappas, G.J. (eds.) HSCC 2004. LNCS, vol. 2993, pp. 357–371. Springer, Heidelberg (2004)Google Scholar
  10. 10.
    Girault, A., Lee, B., Lee, E.A.: Hierarchical finite state machines with multiple concurrency models. IEEE Transactions On Computer-aided Design Of Integrated Circuits And Systems 18(6), 742–760 (1999)CrossRefGoogle Scholar
  11. 11.
    Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous data flow programming language LUSTRE. Proceedings of the IEEE 79(9), 1305–1319 (1991)CrossRefGoogle Scholar
  12. 12.
    Henzinger, T.A., Horowitz, B., Kirsch, C.M.: Giotto: A time-triggered language for embedded programming. In: Henzinger, T.A., Kirsch, C.M. (eds.) EMSOFT 2001. LNCS, vol. 2211, Springer, Heidelberg (2001)Google Scholar
  13. 13.
    Hill, J., Szewcyk, R., Woo, A., Culler, D., Hollar, S., Pister, K.: System architecture directions for networked sensors. In: 9th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pp. 93–104 (2000)Google Scholar
  14. 14.
    Hoare, C.A.R.: Monitors: An operating system structuring concept. Communications of the ACM 17(10), 549–557 (1974)MATHCrossRefGoogle Scholar
  15. 15.
    Jefferson, D.: Virtual time. ACM Trans. Programming Languages and Systems 7(3), 404–425 (1985)CrossRefMathSciNetGoogle Scholar
  16. 16.
    Kohler, E., Morris, R., Chen, B., Jannotti, J., Kaashoek, M.F.: The click modular router. ACM Transactions on Computer Systems 18(3), 263–297 (2000)CrossRefGoogle Scholar
  17. 17.
    Lea, D.: Concurrent Programming in Java: Design Principles and Patterns. Addison-Wesley, Reading (1997)MATHGoogle Scholar
  18. 18.
    Lee, E.A.: Modeling concurrent real-time processes using discrete events. Annals of Software Engineering 7, 25–45 (1999)CrossRefGoogle Scholar
  19. 19.
    Lee, E.A.: The problem with threads. Computer 39(5), 33–42 (2006)CrossRefGoogle Scholar
  20. 20.
    Lee, E.A., Neuendorffer, S., Wirthlin, M.J.: Actor-oriented design of embedded hardware and software systems. Journal of Circuits, Systems, and Computers 12(3), 231–260 (2003)CrossRefGoogle Scholar
  21. 21.
    Lee, E.A., Parks, T.M.: Dataflow process networks. Proceedings of the IEEE 83(5), 773–801 (1995)CrossRefGoogle Scholar
  22. 22.
    Lee, E.A., Zheng, H., Zhou, Y.: Causality interfaces and compositional causality analysis. In: Foundations of Interface Technologies (FIT), Satellite to CONCUR, San Francisco, CA (2005)Google Scholar
  23. 23.
    Liu, C.L., Leyland, J.W.: Scheduling algorithms for multiprogramming in a hard real time environment. Journal of the ACM 20(1), 46–61 (1973)MATHCrossRefGoogle Scholar
  24. 24.
    Liu, J., Lee, E.A.: Timed multitasking for real-time embedded software. IEEE Control Systems Magazine, 65–75 (2003)Google Scholar
  25. 25.
    Panangaden, P., Shanbhogue, V.: The expressive power of indeterminate dataflow primitives. Information and Computation 98(1), 99–131 (1992)MATHCrossRefMathSciNetGoogle Scholar
  26. 26.
    Parks, T.M.: A comparison of MPI and process networks. In: International Parallel and Distributed Processing Symposium, Workshop on Java for Parallel and Distributed Computing, Denver, CO (2005)Google Scholar
  27. 27.
    Pino, J.L., Ha, S., Lee, E.A., Buck, J.T.: Software synthesis for dsp using Ptolemy. Journal on VLSI Signal Processing 9(1), 7–21 (1995)CrossRefGoogle Scholar
  28. 28.
    Smith, D.A., Kay, A., Raab, A., Reed, D.P.: Croquet: A collaboration system architecture. White paper (2003)Google Scholar
  29. 29.
    Stankovic, J.A.: Misconceptions about real-time computing: a serious problem for next-generation systems. Computer 21(10), 10–19 (1988)CrossRefGoogle Scholar
  30. 30.
    Wirth, N.: Toward a discipline of real-time programming. Communications of the ACM 20(8), 577–583 (1977)MATHCrossRefGoogle Scholar
  31. 31.
    Zeigler, B.P., Praehofer, H., Kim, T.G.: Theory of Modeling and Simulation, 2nd edn. Academic Press, London (2000)Google Scholar
  32. 32.
    Zhao, Y., Lee, E.A., Liu, J.: Programming temporally integrated distributed embedded systems. Technical Report UCB/EECS-2006-82, EECS Department, University of California, Berkeley, May 28 (2006)Google Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • Edward A. Lee
    • 1
  • Yang Zhao
    • 1
  1. 1.University of California, Berkeley 

Personalised recommendations