Although real-time operating systems and applications have been available for multicore systems for some years, shared-memory parallel systems still pose some severe challenges for real-time algorithms, particularly as the number of CPUs increases. These challenges can take the form of lock contention, memory contention, conflicts/restarts for lockless algorithms, as well as many others. One technology that has been recently added to the real-time arsenal is read-copy update (RCU), which permits deterministic read-side access to read-mostly data structures, even in the face of concurrent updates. In some cases, updates may also be carried out in a deterministic manner.
RCU was accepted into the Linux kernel in late 2002, and a real-time variant of RCU was been accepted into Linux for real-time use in early 2008. This real-time variant of RCU resulted in significant reductions in the Linux kernel's scheduling latency. More recently, user-level implementations of RCU have appeared on the scene.
This talk will give a brief overview of RCU and how it may be used to solve some interesting classes of problems that arise when constructing shared-memory parallel real-time systems.
Download paper as pdf file