Real-time Concurrent C: A language for programming dynamic real-time systems

AbstractConcurrent C, is a parallel superset of C (and of C++) that provides facilities such as specifying timeouts during process interactions, delaying program execution, accepting messages in a user-specified order, and asynchronous messages that can be used for writing real-time programs. However, Concurrent C does not provide facilities for specifying strict timing constraints, e.g., Concurrent C only ensures that the lower bounds on the specified delay and timeout periods are satisfied. Real-Time Concurrent C extends Concurrent C by providing facilities to specify periodicity or deadline constraints, to seek guarantees that timing constraints will be met, and to perform alternative actions when either the timing constraints cannot be met or the guarantees are not available.In this paper, we will discuss requirements for a real-time programming language, briefly summarize Concurrent C, and motivate and describe the real-time extensions to Concurrent C. We also discuss scheduling and other run-time facilities that have been incorporated to support the real-time extensions. A prototype implementation of Real-Time Concurrent C is nearing completion.

[1]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

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

[3]  W. Zhao,et al.  GARTL: a real-time programming language based on multi-version computation , 1990, Proceedings. 1990 International Conference on Computer Languages.

[4]  Aloysius K. Mok,et al.  Evaluating tight execution time bounds of programs by annotations , 1989 .

[5]  Krithi Ramamritham,et al.  Efficient Scheduling Algorithms for Real-Time Multiprocessor Systems , 1989, IEEE Trans. Parallel Distributed Syst..

[6]  Insup Lee,et al.  Language Constructs for Distributed Real-Time Programming , 1985, RTSS.

[7]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[8]  Theodore P. Baker The use of ADA for real-time systems , 1990 .

[9]  Chak-Kuen Wong,et al.  Upper Bounds for the Total Path Length of Binary Trees , 1973, JACM.

[10]  Narain H. Gehani,et al.  Concurrent C , 1986, Softw. Pract. Exp..

[11]  Narain H. Gehani,et al.  Fault tolerant concurrent C: a tool for writing fault tolerant distributed programs , 1988, [1988] The Eighteenth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[12]  Peter P. Puschner,et al.  Calculating the maximum execution time of real-time programs , 1989, Real-Time Systems.

[13]  Alan C. Shaw Deterministic timing schema for parallel programs , 1991, [1991] Proceedings. The Fifth International Parallel Processing Symposium.

[14]  Wolfgang A. Halang,et al.  Comparative evaluation of high-level real-time programming languages , 2005, Real-Time Systems.

[15]  Krithi Ramamritham,et al.  The Spring kernel: a new paradigm for real-time systems , 1991, IEEE Software.

[16]  A. D. Stoyenko,et al.  Real-time Euclid: a language for reliable real-time systems , 1989 .

[17]  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.

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