10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'07)
Efficient Adaptations of the Non-Blocking Buffer for Event Message Communication between Real-Time Threads
Santorini Island, Greece
May 07-May 09
ISBN: 0-7695-2765-5
Enabling message communication among concurrent computing threads without relying on mutual exclusion (i.e., locking) is highly desirable in real-time computing systems. This paper presents a refined version of the Non- Blocking Buffer (NBB), which is a lock-free interaction mechanism that enables efficient event-message communication between a single producer thread and a single consumer thread. The NBB scheme presented here contains improvements over the previous version in two aspects. First, application designers now have the flexibility of choosing the consumer?s retry strategy for the case when the buffer is empty but the producer is in the middle of inserting an item. Second, in the refined version the producer inserts pointers to data items into the buffer whereas the consumer obtains copies of the items. This design is consistent with the fact that shared heap management must be avoided to enable fully lock-free interaction between the producer and the consumer. This paper also discusses the approaches based on the NBB mechanism for supporting all conceivable producer-consumer scenarios.
Index Terms:
non-blocking algorithms, event message communication, producer-consumer, concurrent programming, real-time computing systems.
Citation:
K.H. Kim, Juan A. Colmenares, Kee-Wook Rim, "Efficient Adaptations of the Non-Blocking Buffer for Event Message Communication between Real-Time Threads," isorc, pp.29-40, 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'07), 2007