An Actor-Based Framework for Real-Time Coordination

Programming language research should be driven by the needs of specific application domains, such as real-time embedded systems, multimedia, distributed data-base management applications, etc. For instance, most often large real-time applications involve distributed and concurrently but asynchronously operating devices. The correctness of the integrated systems depends not only on the correct operation of each individual device, but also on the correct cooperation among these devices. Furthermore, the correctness of device operation and cooperation requires that both the underlying logical computation be correct and the computation satisfy some notation of quantitative timing requirements. This thesis is a case study for how a language should be designed to suit a specific application domain. More specifically, I have designed RTsynchronizers, a high-level programming language abstraction for specifying real-time coordination constraints between objects in a distributed open system. RTsynchronizers enforce timing constraints on a group of computational objects. They are defined in terms of the interface of members in the group; thus they are independent of the representations of computational objects. During program execution, RTsynchronizers affect the scheduling of distributed objects to enforce real-time relations between events. With RTsynchronizers, we achieve the ability to separately specify and program functional components and the coordination constraints among these components, and the ability to reuse the computational code as well as coordination constraint code. This research uses theoretical and experimental methods. Specifically, the operational semantics based on RTsynchronizers and regular computational objects (modeled as actors) is defined. RTsynchronizers are implemented as C++ objects which are used by system schedulers in deciding the appropriate messages to be invoked at message destination computational objects. The implementation demonstrates the feasibility of making the existence of RTsynchronizers transparent to computational objects. Furthermore, an algorithm for detecting infeasible real-time coordination constraints at source code level is developed.

[1]  Mario Tokoro,et al.  DROL: an object-oriented programming language for distributed real-time systems , 1992, OOPSLA.

[2]  Michael Schiebe,et al.  Real-time systems engineering and applications , 1992 .

[3]  Wooyoung Kim A Linguistic Framework for Dynamic Composition of Dependability Protocols , 1993 .

[4]  Richard A. Volz,et al.  Timing Issues in the Distributed Execution of Ada Programs , 1987, IEEE Transactions on Computers.

[5]  Insup Lee,et al.  A Layered Approach to Automating the Verification of Real-Time Systems , 1992, IEEE Trans. Software Eng..

[6]  Kim G. Larsen,et al.  From Timed Automata to Logic - and Back , 1995, MFCS.

[7]  O. S. van Roosmalen DEAL: an object-oriented language for distributed real-time systems , 1994, Proceedings of Words '94. The First Workshop on Object-Oriented Real-Time Dependable Systems.

[8]  S. T. Keane Realization of an Ada architecture for heterogenous distributed embedded processors , 1994, AIAA/IEEE Digital Avionics Systems Conference. 13th DASC.

[9]  Oscar Nierstrasz,et al.  Viewing object as patterns of communicating agents , 1990, OOPSLA/ECOOP '90.

[10]  Andrew A. Berlin,et al.  Compiling scientific code using partial evaluation , 1990, Computer.

[11]  Vivek Nirkhe Application of partial evaluation to hard real-time programming , 1992 .

[12]  Hongyi Zhou,et al.  Dynamic Scheduling of Hard Real-Time Tasks and Real-Time Threads , 1992, IEEE Trans. Software Eng..

[13]  Richard C. Holt,et al.  Analyzing Hard-Real-Time Programs For Guaranteed Schedulability , 1991, IEEE Trans. Software Eng..

[14]  John A. Stankovic,et al.  A Perspective on Distributed Computer Systems , 1984, IEEE Transactions on Computers.

[15]  Alexander Vrchoticky Compilation Support for Fine-Grained Execution Time Analysis , 1994 .

[16]  Mohamed F. Younis,et al.  Compiler transformations for speculative execution in a real-time system , 1994, 1994 Proceedings Real-Time Systems Symposium.

[17]  Richard Gerber,et al.  Guaranteeing end-to-end timing constraints by calibrating intermediate processes , 1994, 1994 Proceedings Real-Time Systems Symposium.

[18]  Barbara Liskov,et al.  Practical uses of synchronized clocks in distributed systems , 1991, PODC '91.

[19]  S. J. Young,et al.  Real Time Languages, Design and Development , 1982 .

[20]  H. S. M. Zedan Real Time Systems: Theory and Applications , 1990 .

[21]  Terry Winograd,et al.  From programming environments to environments for designing , 1995, CACM.

[22]  Gul A. Agha,et al.  A Language Framework for Multi-Object Coordination , 1993, ECOOP.

[23]  R. Moller Distributed Operating Systems: Concepts And Design , 1998, IEEE Concurrency.

[24]  Mike Williams,et al.  Implementing a functional language for highly parallel real time applications , 1992 .

[25]  Gul A. Agha,et al.  A modular approach to real-time synchronization , 1996, OOPS.

[26]  Jan Gustafsson,et al.  RealTimeTalk, an Object-Oriented Language for Hard Real-Time Systems , 1992 .

[27]  Gul A. Agha,et al.  A Modular Approach to Programming Distributed Real-Time Systems , 1996, J. Parallel Distributed Comput..

[28]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[29]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[30]  Claes Wikstrom,et al.  Distributed programming in Erlang , 1994 .

[31]  Leo YuHsiang Liu,et al.  RT-CDL: A Distributed Real-Time Design Language and Its Operational Semantics , 1994, Comput. Lang..

[32]  Kwei-Jay Lin,et al.  Building flexible real-time systems using the Flex language , 1991, Computer.

[33]  Z. Deng,et al.  Dynamic Scheduling of Hard Real-Time Applications in Open System Environment , 1996 .

[34]  J. Moss THE NATURAL PHILOSOPHY OF TIME , 1962 .

[35]  Wolfgang A. Halang,et al.  Real-time programming languages , 1992 .

[36]  Jens Palsberg,et al.  Making Type Inference Practical , 1992, ECOOP.

[37]  Öznur Özkasap,et al.  A Semi-Distributed Load Balancing Model for Parallel Real-time Systems , 1995, Informatica.

[38]  Steve A. Schneider,et al.  An Operational Semantics for Timed CSP , 1995, Inf. Comput..

[39]  Guy Vidal-Naquet,et al.  Actors as a Parallel Programming Model , 1991, STACS.

[40]  Richard Gerber,et al.  Compiling Real-Time Programs With Timing Constraint Refinement and Structural Code Motion , 1995, IEEE Trans. Software Eng..

[41]  Svend Frølund Coordinating distributed objects - an actor-based approach to synchronization , 1996 .

[42]  Carolyn L. Talcott,et al.  Towards a Theory of Actor Computation , 1992, CONCUR.

[43]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[44]  Carlos Puchol,et al.  A Solution to the Generalized Railroad Crossing Problem in ESTEREL , 1995 .

[45]  Dieter K. Hammer,et al.  Dedos: a distributed real-time environment , 1994, IEEE Parallel & Distributed Technology: Systems & Applications.

[46]  Jozef Hooman,et al.  A proof theory for asynchronously communicating real-time systems , 1992, [1992] Proceedings Real-Time Systems Symposium.

[47]  Gérard Berry,et al.  The ESTEREL Synchronous Programming Language and its Mathematical Semantics , 1984, Seminar on Concurrency.

[48]  S. Tucker Taft Ada 9X: from abstraction-oriented to object-oriented , 1993, OOPSLA '93.

[49]  Jeffrey D. Ullman,et al.  NP-Complete Scheduling Problems , 1975, J. Comput. Syst. Sci..

[50]  Insup Lee,et al.  Communicating shared resources: a model for distributed real-time systems , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[51]  C. Wikstrom Implementing distributed real-time control systems in a functional programming language , 1996, Proceedings of the 4th International Workshop on Parallel and Distributed Real-Time Systems.

[52]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[53]  Michael Schiebe The origins of real-time processing , 1992 .

[54]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[55]  Jacques Cohen,et al.  Concurrent object-oriented programming , 1993, CACM.

[56]  Joseph Sifakis,et al.  Compiling Real-Time Specifications into Extended Automata , 1992, IEEE Trans. Software Eng..

[57]  Colin Atkinson,et al.  Supporting the Evolution of Distributed, Non-stop, Mission and Safety Critical Systems , 1995, Informatica.

[58]  A.S. Grimshaw,et al.  Real-Time Mentat programming language and architecture , 1989, IEEE Global Telecommunications Conference, 1989, and Exhibition. 'Communications Technology for the 1990s and Beyond.

[59]  M. Joseph,et al.  Relating Computation and Time , 1989 .

[60]  Ichiro Satoh,et al.  Semantics for a real-time object-oriented programming language , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[61]  Alexander D. Stoyen,et al.  Real-Time Euclid: A language for reliable real-time systems , 1989, IEEE Transactions on Software Engineering.

[62]  Alan Burns,et al.  Real-time systems and their programming languages , 1986, International computer science series.

[63]  Gérard Berry,et al.  Synchronous programming of reactive systems: an introduction to ESTEREL , 1988 .

[64]  Oscar Nierstrasz,et al.  Viewing Objects as Patterns of Communicating Agents 1 , 1990 .

[65]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[66]  Hideyuki Tokuda,et al.  Object-oriented real-time language design: constructs for timing constraints , 1990, OOPSLA/ECOOP '90.

[67]  Brian Nielsen,et al.  Semantics for an actor-based real-time language , 1996, Proceedings of the 4th International Workshop on Parallel and Distributed Real-Time Systems.