Abstract
Concurrent 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.
Similar content being viewed by others
References
Baker, T. 1990. The Use of Ada for Real-Time Systems. Real-Time Systems Newletter 6, 1: 3–8.
Burns, A. and Wellings, A. 1989. Real-Time Systems and their Programming Languages. Reading, MA: Addison-Wesley.
Gehani, N.H. and Roome, W.D. 1986. Concurrent C. Software—Practice & Experience, 16, 9: 821–844.
Gehani, N.H. and Roome, W.D. 1989. Concurrent C. Summit, NJ: Silicon Press.
Cmelik, R.G., Gehani, N.H., and Roome, W.D. 1988. Fault Tolerant Concurrent C: A Tool for Writing Fault Tolerant Distributed Programs. The 18th International Symposium on Fault-Tolerant Computing, Tokyo, Japan, pp. 56–61.
Grimshaw, A.S., Silberman, A., and Liu, J.W.S. 1990. Real-Time Mentat Programming Language and Architecture. Seventh Workshop on Real-Time Operating Systems and Software, pp. 82–87.
Halang, W.A. and Stoyenko, A.D. 1990. Comparative Evaluation of High-Level Real-Time Programming Languages. Real-Time Systems 2, 4: 365–382.
Ishikawa, Y., Tokuda, H. and Mercer, C.W. 1990. Object-Oriented Real-Time Language Design: Constructs for Timing Constraints. Proceedings of OOPSLA/ECOOP 90, pp. 289–298.
Klingerman and Stoyenko. 1986. Real-Time Euclid: A Language for Reliable Real-Time Systems. IEEE Transaction on Software Engineering 12, 9: 941–949.
Lavoie, P. 1991. A Tool to Analyze Timing on a 68020 Processor. Master's Project Report, Department of Computer Science, University of Massachusetts, Amherst.
Lee, I. and Gehlot, V. 1985. Language Constructs for Distributed Real-Time Programming Systems. Real-Time Systems Symposium.
Lehoczky, J.P., Sha, L. and Strosnider, J. 1987. Enhancing Aperiodic Responsiveness in a Hard Real-Time Environment. IEEE Real-Time Systems Symp.
Liu, C.L. and Layland, J. 1973. Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment. J. ACM 20, 1.
Marlin, C., Zhao, W., Doherty, G. and Bohonis, A. 1990. GARTL: A Real-Time Programming Language Based on Multi-Version Computation. Proc. International Conference On Computer Languages, pp. 107–115.
Pedregal-Martin, C. (forthcoming). A Real-Time Concurrent C Prototype, Master's Project Report, Department of Computer Science, University of Massachusetts, Amherst.
Puschner, P. and Koza, Ch. 1989. Calculating Maximum Execution Time of Real-Time Programs. The Journal of Real-Time Systems, pp. 159–176.
Mok, A. 1989. Evaluating Tight Execution Time Bounds of Programs by Annotations. Proc. IEEE Workshop on Real-Time Operating Systems and Software, pp. 74–80.
Ramamritham, K., Stankovic, J. and Shiah, P. 1990. Efficient Scheduling Algorithms for Real-Time Multiprocessor Systems. IEEE Transactions on Parallel and Distributed Systems, pp. 184–194.
Sha, L., Rajkumar, R. and Lehoczky, J.P. 1990. Priority Inheritance Protocols: An Approach to Real-Time Synchronization. IEEE Transactions on Computers.
Shaw, A. 1990. Deterministic Timing Schema for Parallel Programs. Technical Report #90-05-06, Department of Computer Science, University of Washington.
Stankovic, J.A. and Ramamritham, K. 1991. The Spring Kernel: A New Paradigm for Real-Time Systems. IEEE Software, pp. 62–72.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Gehani, N., Ramamritham, K. Real-time Concurrent C: A language for programming dynamic real-time systems. The Journal of Real-Time Systems 3, 377–405 (1991). https://doi.org/10.1007/BF00365999
Issue Date:
DOI: https://doi.org/10.1007/BF00365999