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.
References
Ada95 6.0 reference manual. Technical report, Internet's Public Ada Library, 1995.
G. Agha. Actors. A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.
G. Agha. Concurrent object-oriented programming. Communications of the ACM, 33(9):125–141, September 1990.
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.
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.
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.
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.
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.
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.
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.
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.
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.
E. Brorsson, C. Eriksson, and J. Gustafsson. Realtimetalk an object-oriented language for hard real-time systems.
W. Clinger. Foundation of actor semantics. Technical Report AI-TR-633, MIT, 1981.
Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms, chapter 25, pages 515–550. MIT Press, 1990.
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.
R. Gerber et al. Guaranteeing end-to-end timing constraints by calibrating intermediate processes. In Real-Time Systems Symposium, 1994, 1994.
Antony A. Faustini and Edgar B. Lewis. Toward a real-time dataflow language. IEEE Software, 3(1):139–145, January 1986.
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.
Svend Frølund.Coordinating Distributed Objects: An Actor-Based Approach to Synchronization. MIT Press, 1996.
A. S. Grimshaw, A. Silberman, and J. W. S. Liu. Real-time mentat at programming language and architecture. In IEEE Globecom'89, 1989.
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.
C. Hewitt. Viewing control structures as patterns of passing messages. Journal of Artificial Intelligence, 8(3):323–364, 1977.
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.
American National Standards Institute. The programming language Ada reference manual. In The Programming Language Ada Reference Manual. Springer Verlag, 1983.
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.
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.
Kevin B. Kenny and Kwei-Jay Lin. Building flexible real-time systems using the flex language. IEEE Computer, 24(5):70–78, 1991.
L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558–565, 1978.
K. Lin and J. W. Liu. Flex: A language for real-time systems programming. Technical Report 1634, UIUC, 1990.
David Luckhman. Guide to the rapide 1.0 langauage reference manuals. Technical report, Stanford University, http://anna.stanford.edu/rapide/rapide.html, 1996.
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.
A. K. Mok. Real-time scheduling and the boeing 777. In European Educational Forum School on Embedded Systems 1996, Veldhoven, NL, November 1996.
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.
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.
S. Ren. An Actor-Based Framework for Real-Time Coordination. PhD thesis, University of Illinois at Urbana-Champaign, 1997.
S. Ren and G. Agha. RTsynchronizers: Language support for real-time specifications in distributed systems. ACM SIGPLAN Notices, 30(11):50–59, November 1995.
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.
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.
A. Silberman. Real-time mentat. Technical report, Department of Computer Science, UIUC, 1995.
J.A. Stankovic. A perspective on distributed computer systems. IEEE Transactions on Computers, C-33(12):1102–1115, 1984.
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.
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.
J.D. Ullman. Np-complete scheduling problems. Journal of Computer System Science, 10:384–393, 1975.
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.
Author information
Authors and Affiliations
Editor information
Rights 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