Abstract
It is desirable to facilitate data communications among concurrent computation threads without incurring non-essential synchronizations in real-time computing systems. An interaction mechanism, called the non-blocking writer (NBW) mechanism and invented by Kopetz, is useful in facilitating state message communication from a producer to a consumer thread in real-time applications. A more widely applicable practical interaction mechanism called the non-blocking buffer (NBB) is presented here. The NBB mechanism can be viewed as a significant extension of the NBW mechanism. The NBB mechanism facilitates communication of event messages from a producer to a consumer without causing any party to experience blocking. Therefore, its application scope includes all conceivable producer-consumer situations. The NBB mechanism is not a replacement of but rather a companion to the NBW mechanism since the latter facilitates the most efficient state message communication. The application of NBBs in building middleware supporting real-time objects is discussed as a demonstration of the utility of the NBB mechanism.
Similar content being viewed by others
References
Anderson, J. H., Jain, R. and Ramamurthy, S. 1997. Wait-free object sharing schemes for real- time uniprocessors and multiprocessors. In Proc. 18th IEEE Real-Time Systems Symp., pp. 111–122.
Bershad, B. 1993. Practical considerations for non-blocking concurrent objects. In Proc. IEEE Int'al Conf. on Distributed Computing Systems, pp. 264–273.
Brinch Hansen, P. 1973. Operating System Principles. Prentice-Hall, Englewood Cliffs, NJ.
Disjkstra, E. W. 1968. Communicating Sequential Processes Tech. Rept. EWD-123, Tech. Univ. of Eindhoven, the Netherlands; published as a chapter in F. Genuys (ed.), Programming Languages, Academic Press, London, England, pp. 43–112.
Kim, K. H. 1997. Object structures for real-time systems and simulators. IEEE Computer, pp. 62–70.
Kim, K. H., Ishida, M. and Liu, J. 1999. An efficient middleware architecture supporting time-triggered message-triggered objects and an NT-based implementation. In Proc. ISORC '99 (IEEE CS 2nd Int'l Symp. on Object-Oriented Real-Time Distributed Computing), pp. 54–63.
Kim, K. H. 2000. APIs for real-time distributed object programming. IEEE Computer, pp. 72–80.
Kim, K. H. 2002. Commanding and reactive control of peripherals in the TMO programming scheme. In Proc. ISORC '02 (5th IEEE CS Int'l Symp. on Object-Oriented Real-time Distributed Computing), Crystal City, VA, pp. 448–456.
Kim, K. H. and Liu, J. Q. 2002. Going beyond deadline-driven low-level scheduling in distributed real-time computing systems. In B. Kleinjohann et al. (eds.), Design and Analysis of Distributed Embedded Systems. In Proc. IFIP 17th World Computer Congress, TC10 Stream, Montreal, Kluwer, pp. 205–215.
Kim, K. H. (Kane), Mori, K. and Nakanishi, H. 1995. Realization of autonomous decentralized computing with the RTO.k object structuring scheme and the HU-DF inter-process-group communication scheme. In Proc. ISADS '95 (IEEE Computer Society's 2nd Int'l Symp. on Autonomous Decentralized Systems), Phoenix, AZ, pp. 305–312.
Kim, H.J. et al. 2002. TMO-linux: A linux-based real-time operating systems supporting execution of TMOs, In Proc. 5th IEEE CS Int'l Symp. on Object-Oriented Real-time Distributed Computing (ISORC '02), Washington D.C., pp. 288–294.
Kopetz, H. et al. 1989. Distributed fault-tolerant real-time systems: The Mars approach, IEEE Micro, 9(1): 25–40.
Kopetz, H. and Reisinger, J. 1993. NBW: A non-blocking write protocol for task communication in real-time systems. In Proc. IEEE CS 1993 Real-Time Systems Symp., pp. 131–137.
Kopetz, H. 1997. Real-Time Systems: Design Principles for Distributed Embedded Applications. Kluwer Academic Publishers, Boston, ISBN: 0-7923-9894-7.
Liu, C. L. and Layland, J.W. 1973. Scheduling algorithms for multiprogramming in a hard real-time environment. J. ACM, 20(1):46–61.
Mock, M. and Nett, E. 1999. Real-time communication in autonomous robot systems. In Proc. Fourth Int'l Symp. on Autonomous Decentralized Systems (ISADS), pp. 34–41.
Prakash, S., Lee, Y.-H. and Johnson, T. 1994. A non-blocking algorithm for shared queues using compare-and-swap. IEEE Trans. on Computers, 43(5):548–559.
Qazi, N.U., Woo, M. and Ghafoor, A. 1993. A synchronization and communication model for distributed multimedia objects. In Proc. first ACM Int'l Conf. on Multimedia, Anaheim, CA, pp. 147–155.
Rajkumar, R. 1991. Synchronization in Real-Time Systems/A Priority Inheritance Approach. Kluwer Academic Publishers.
Rajkumar, R., Gagliardi, M. and Sha, L. 1995. The real-time publisher/subscriber inter-process communication model for distributed real-time systems: Design and implementation. In Proc. Real-Time Technology and Applications Symp., pp. 66–75.
Silberschatz, A., Galvin, P. B. and Gagne, G. 2002. Operating System Concepts, 6th edn., John Wiley & Sons, Inc.
Zhao, W., Stankovic, J. A. and Ramamritham, K. 1990. A window protocol for transmission of time-constrained messages. IEEE Trans. on Computers, 39(9):1186–1203.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
(Kane) Kim, K.H. A Non-Blocking Buffer Mechanism for Real-Time Event Message Communication. Real-Time Syst 32, 197–211 (2006). https://doi.org/10.1007/s11241-005-4680-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11241-005-4680-7