Sponsor
This material is based upon work supported by the National Science Foundation under Grant No. CNS-0719851. This work represents the view of the authors and does not necessarily represent the view of IBM or of Portland State University.
Published In
Linux Weekly News (LWN.net)
Document Type
Article
Publication Date
12-2007
Subjects
Functional programming (Computer science), Linux, Operating systems (Computers), Electronic data processing -- Distributed processing
Abstract
Read-copy update (RCU) is a synchronization mechanism that was added to the Linux kernel in October of 2002. RCU achieves scalability improvements by allowing reads to occur concurrently with updates. In contrast with conventional locking primitives that ensure mutual exclusion among concurrent threads regardless of whether they be readers or updaters, or with reader-writer locks that allow concurrent reads but not in the presence of updates, RCU supports concurrency between a single updater and multiple readers. RCU ensures that reads are coherent by maintaining multiple versions of objects and ensuring that they are not freed up until all pre-existing read-side critical sections complete. RCU defines and uses efficient and scalable mechanisms for publishing and reading new versions of an object, and also for deferring the collection of old versions. These mechanisms distribute the work among read and update paths in such a way as to make read paths extremely fast. In some cases (non-preemptable kernels), RCU's read-side primitives have zero overhead.
Persistent Identifier
http://archives.pdx.edu/ds/psu/10650
Citation Details
"What is RCU, Fundamentally?" Paul McKenney and Jonathan Walpole, LWN.net (http://lwn.net/Articles/262464/), December 17, 2007.
Description
The first in what is proposed as a three-part series on how the read-copy-update mechanism works.