Publication View

Read-copy update: using execution history to solve concurrency problems, Parallel and Distributed Computing and Systems (1998)

Abstract
Abstract—The problems of synchronization overhead, contention, and deadlock can pose serious challenges to those designing and implementing parallel programs. Therefore, many researchers have proposed parallel update disciplines that greatly reduce these problems in restricted but commonly occurring situations, for example, read-mostly data structures [7, 10, 11, 13, 18]. However, these proposals rely either on garbage collectors [10, 11], termination of all processes currently using the data structure [13], or expensive explicit tracking of all processes accessing the data structure [7, 18]. These mechanisms are inappropriate in many cases, such as within many operating-system kernels and server applications. This paper proposes a novel and extremely efficient mechanism, called read-copy update, and compares its performance to that of conventional locking primitives under conditions of both low and high contention in read-intensive data structures. Index Terms—Shared memory, mutual exclusion, reader-writer locking, performance, contention. 1

Publication details
Download http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.145.3486
Source http://www.rdrop.com/users/paulmck/RCU/rclockjrnl_tpds_mathtype.pdf
Contributors CiteSeerX
Repository CiteSeerX - Scientific Literature Digital Library and Search Engine (United States)
Type text
Language English
Relation 10.1.1.38.1642, 10.1.1.106.9747, 10.1.1.118.3410, 10.1.1.37.3026, 10.1.1.18.5243, 10.1.1.53.4725, 10.1.1.91.2690, 10.1.1.102.4702, 10.1.1.13.9868, 10.1.1.145.5715, 10.1.1.145.5778, 10.1.1.9.2837, 10.1.1.79.2346, 10.1.1.126.7499, 10.1.1.87.6081, 10.1.1.108.3364, 10.1.1.109.968, 10.1.1.76.9147, 10.1.1.83.4384, 10.1.1.87.5131, 10.1.1.89.6242, 10.1.1.91.9610, 10.1.1.92.2671, 10.1.1.114.5854, 10.1.1.95.1670, 10.1.1.96.6256, 10.1.1.97.9681, 10.1.1.99.5793, 10.1.1.114.116, 10.1.1.114.1908, 10.1.1.116.4588, 10.1.1.120.2264, 10.1.1.128.2175, 10.1.1.130.8984, 10.1.1.135.9418, 10.1.1.8.8417, 10.1.1.59.3150, 10.1.1.144.5644, 10.1.1.145.4943