RNet: A Hard Real-Time Distributed Programming System

RNet is a high-level programming system for building and executing distributed hard real-time programs. The main objective in developing RNet is to investigate how high-level programming concepts and tools can be used to simplify the real-time programming task. A distributed real-time program in RNet consists of a configuration specification that outlines the structure and real-time properties of the program, and a set of program modules written in a high-level programming language. The RNet configuration system performs a static feasibility analysis of the specifications and handles the construction, distribution, and execution of the program. A debugging and timing analysis system, currently under development and not described here, will be used to measure the real-time characteristics of network resources and the application program, and to perform a validation of the specifications via simulation. The distributed RNet kernel provides run-time support for message-passing and real-time scheduling. The RNet programming model, based on message ports having associated deadlines, provides the programmer with a direct means of expressing a variety of real-time behavioral effects in a way that can be validated. In particular, timing constraints can be used to obtain reliable event synchronization. Some properties that are considered desirable in a high-level distributed real-time programming system are identified. These address issues such as program moduilarity and reconfigurability, timing constraint specification, validation and enforcement, real-time event handling, I/O and exception handling, logical and physical structure specification, and program analysis. The degree to which RNet succeeds in possessing these properties is discussed.

[1]  Michael L. Dertouzos,et al.  Control Robotics: The Procedural Control of Physical Processes , 1974, IFIP Congress.

[2]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[3]  Dennis W. Leinbaugh Guaranteed Response Times in a Hard-Real-Time Environment , 1980, IEEE Transactions on Software Engineering.

[4]  George G. Robertson,et al.  Accent: A communication oriented network operating system kernel , 1981, SOSP.

[5]  Mark Drummond,et al.  PACKRAT - A Real Time Kernel for Distributed Systems , 1982, RTSS.

[6]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

[7]  Richard C. Holt,et al.  Concurrent Euclid, the UNIX system, and TUNIS , 1983 .

[8]  V. D. Gligor,et al.  Assessment of the real-time requirements for programming environments and languages , 1983, RTSS 1983.

[9]  Krithi Ramamritham,et al.  Dynamic Task Scheduling in Hard Real-Time Distributed systems , 1984, IEEE Software.

[10]  David R. Cheriton The V Kernel: A Software Base for Distributed Systems , 1984, IEEE Software.

[11]  Thomas J. LeBlanc,et al.  Programming language support for real-time distributed systems , 1984, 1984 IEEE First International Conference on Data Engineering.

[12]  Insup Lee,et al.  A Programming System for Distributed Real-Time Applications , 1984 .

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

[14]  Aloysius K. Mok,et al.  Safety analysis of timing properties in real-time systems , 1986, IEEE Transactions on Software Engineering.

[15]  Richard A. Kemmerer,et al.  RT-ASLAN: A specification language for real-time systems , 1986, IEEE Transactions on Software Engineering.

[16]  Jeannette M. Wing,et al.  Specifying Functional and Timing Behavior for Real-Time Applications , 1987, PARLE.