User-Level Implementations of Read-Copy Update. Desnoyers, M., McKenney, P. E., Stern, A. S., Dagenais, M. R., & Walpole, J. IEEE Trans. Parallel Distrib. Syst., 23(2):375--382, February, 2012.
User-Level Implementations of Read-Copy Update [link]Paper  abstract   bibtex   
Read-copy update (RCU) is a synchronization technique that often replaces reader-writer locking because RCU's read-side primitives are both wait-free and an order of magnitude faster than uncontended locking. Although RCU updates are relatively heavy weight, the importance of read-side performance is increasing as computing systems become more responsive to changes in their environments. RCU is heavily used in several kernel-level environments. Unfortunately, kernel-level implementations use facilities that are often unavailable to user applications. The few prior user-level RCU implementations either provided inefficient read-side primitives or restricted the application architecture. This paper fills this gap by describing efficient and flexible RCU implementations based on primitives commonly available to user-level applications. Finally, this paper compares these RCU implementations with each other and with standard locking, which enables choosing the best mechanism for a given workload. This work opens the door to widespread user-application use of RCU.
@article{desnoyers_user-level_2012,
	title = {User-{Level} {Implementations} of {Read}-{Copy} {Update}},
	volume = {23},
	url = {http://dx.doi.org/10.1109/TPDS.2011.159},
	abstract = {Read-copy update (RCU) is a synchronization technique that often replaces reader-writer locking because RCU's read-side primitives are both wait-free and an order of magnitude faster than uncontended locking. Although RCU updates are relatively heavy weight, the importance of read-side performance is increasing as computing systems become more responsive to changes in their environments. RCU is heavily used in several kernel-level environments. Unfortunately, kernel-level implementations use facilities that are often unavailable to user applications. The few prior user-level RCU implementations either provided inefficient read-side primitives or restricted the application architecture. This paper fills this gap by describing efficient and flexible RCU implementations based on primitives commonly available to user-level applications. Finally, this paper compares these RCU implementations with each other and with standard locking, which enables choosing the best mechanism for a given workload. This work opens the door to widespread user-application use of RCU.},
	number = {2},
	urldate = {2013-07-11TZ},
	journal = {IEEE Trans. Parallel Distrib. Syst.},
	author = {Desnoyers, Mathieu and McKenney, Paul E. and Stern, Alan S. and Dagenais, Michel R. and Walpole, Jonathan},
	month = feb,
	year = {2012},
	keywords = {Operating systems, Synchronization, concurrency., process management, software/software engineering, threads},
	pages = {375--382}
}

Downloads: 0