9th RTL Workshop: XM-FIFO: Interdomain Communication for XtratuM
Nov 20, 2000 — by LinuxDevices Staff — from the LinuxDevices Archive — 2 viewsA FIFO is a First In First Out data queue for sharing data between multiple tasks or threads. Fifos are one of the most basic communication mechanisms used in real-time operating systems. Especially for two real-time tasks or between a real-time task and non-real-time process, it is effective because it allows non-blocking as well as blocking semantics, which is mandatory to avert priority inversion… between different domains. In the current XtratuM version, there is no method available for data transfer between domains which run under XtratuMs control. So we created the XM-FIFO for the XtratuM which can be used to transfer data between real-time threads or between real-time threads and Linux user-level processes. The XM-FIFO consists of a share FIFO module, Linux FIFO device and PaRTiKle FIFO device. So far, we have released XM-FIFO V1.0, XM-FIFO V2.0 and XM-FIFO V3.0 continuously working on improvements especially at the conceptual level. Three versions adopt different technologies and provide different functions. XM-FIFO V1.0 offers the special system calls to transfer data between domains and XtratuM kernel. And the FIFOs internal synchronization is achieved by disabling interrupts – simple but undesirable in an RTOS. XM-FIFO V2.0 adopts lock-free mechanism to access the FIFO synchronously and data is copied. In the XM-FIFO V3.0, the FIFO data memory and control memory are mapped into the domain kernel space, which can increase data access speed as there is no longer an internal data copy. In the paper, besides XM-FIFOs design, the implementation of the memory mapping and lock-free mechanism in the XM-FIFO are described and comparative benchmarks interpreted.
Read Full Paper (PDF Download)
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.