Bibliography

aCB08
University at California Berkeley.
SETI@HOME.
Available: http://setiathome.berkeley.edu/ [Viewed January 31, 2008], December 2008.

ACMS03
Andrea Arcangeli, Mingming Cao, Paul E. McKenney, and Dipankar Sarma.
Using read-copy update techniques for System V IPC in the Linux 2.5 kernel.
In Proceedings of the 2003 USENIX Annual Technical Conference (FREENIX Track), pages 297-310. USENIX Association, June 2003.
Available: http://www.rdrop.com/users/paulmck/RCU/rcu.FREENIX.2003.06.14.pdf [Viewed November 21, 2007].

Adv02
Advanced Micro Devices.
AMD x86-64 Architecture Programmer's Manual Volumes 1-5, 2002.

Adv07
Advanced Micro Devices.
AMD x86-64 Architecture Programmer's Manual Volume 2: System Programming, 2007.

Ale79
Christopher Alexander.
The Timeless Way of Building.
Oxford University Press, New York, 1979.

Amd67
Gene Amdahl.
Validity of the single processor approach to achieving large-scale computing capabilities.
In AFIPS Conference Proceedings, pages 483-485, Washington, DC, USA, 1967. IEEE Computer Society.

ARM10
ARM Limited.
ARM Architecture Reference Manual: ARMv7-A and ARMv7-R Edition, 2010.

ATS09
Ali-Reza Adl-Tabatabai and Tatiana Shpeisman.
Draft specification of transactional language constructs for c++.
http://research.sun.com/scalable/pubs/C++-transactional-constructs-1.0.pdf, August 2009.

BA01
Jeff Bonwick and Jonathan Adams.
Magazines and vmem: Extending the slab allocator to many CPUs and arbitrary resources.
In USENIX Annual Technical Conference, General Track 2001, pages 15-33, 2001.

BC05
Daniel Bovet and Marco Cesati.
Understanding the Linux Kernel.
O'Reilly Media, Inc., third edition, 2005.

BHS07
Frank Buschmann, Kevlin Henney, and Douglas C. Schmidt.
Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing.
Wiley, Chichester, West Sussex, England, 2007.

BK85
Bob Beck and Bob Kasten.
VLSI assist in building a multiprocessor UNIX system.
In USENIX Conference Proceedings, pages 255-275, Portland, OR, June 1985. USENIX Association.

BLM05
C. Blundell, E. C. Lewis, and M. Martin.
Deconstructing transactional semantics: The subtleties of atomicity.
In Annual Workshop on Duplicating, Deconstructing, and Debunking (WDDD), June 2005.
Available: http://www.cis.upenn.edu/acg/papers/wddd05_atomic_semantics.pdf [Viewed June 4, 2009].

BLM06
C. Blundell, E. C. Lewis, and M. Martin.
Subtleties of transactional memory and atomicity semantics.
Computer Architecture Letters, 5(2), 2006.
Available: http://www.cis.upenn.edu/acg/papers/cal06_atomic_semantics.pdf [Viewed June 4, 2009].

Boe09
Hans-J. Boehm.
Transactional memory should be an implementation technique, not a programming interface.
In HOTPAR 2009, page 6, Berkeley, CA, USA, March 2009.
Available: http://www.usenix.org/event/hotpar09/tech/full_papers/boehm/boehm.pdf [Viewed May 24, 2009].

But97
David Butenhof.
Programming with POSIX Threads.
Addison-Wesley, Boston, MA, USA, 1997.

Cor06
Jonathan Corbet.
The kernel lock validator.
Available: http://lwn.net/Articles/185666/ [Viewed: March 26, 2010], May 2006.

Cor08
Jonathan Corbet.
Linux weekly news.
Available: http://lwn.net/ [Viewed November 26, 2008], November 2008.

CRKH05
Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman.
Linux Device Drivers.
O'Reilly Media, Inc., third edition, 2005.

CSG99
David E. Culler, Jaswinder Pal Singh, and Anoop Gupta.
Parallel Computer Architecture: a Hardware/Software Approach.
Morgan Kaufman, 1999.

DCW+11
Luke Dalessandro, Francois Carouge, Sean White, Yossi Lev, Mark Moir, Michael L. Scott, and Michael F. Spear.
Hybrid norec: A case study in the effectiveness of best effort hardware transactional memory.
In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), ASPLOS '11, pages ???-???, New York, NY, USA, 2011. ACM.

Des09
Mathieu Desnoyers.
[RFC git tree] userspace RCU (urcu) for Linux.
Available: http://lkml.org/lkml/2009/2/5/572 http://lttng.org/urcu [Viewed February 20, 2009], February 2009.

Dij71
Edsger W. Dijkstra.
Hierarchical ordering of sequential processes.
Acta Informatica, 1(2):115-138, 1971.
Available: http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD310.PDF [Viewed January 13, 2008].

DLM+10
Dave Dice, Yossi Lev, Virendra J. Marathe, Mark Moir, Dan Nussbaum, and Marek Oleszewski.
Simplifying concurrent algorithms by exploiting hardware transactional memory.
In Proceedings of the 22nd ACM symposium on Parallelism in algorithms and architectures, SPAA '10, pages 325-334, New York, NY, USA, 2010. ACM.

DLMN09
Dave Dice, Yossi Lev, Mark Moir, and Dan Nussbaum.
Early experience with a commericial hardware transactional memory implementation.
In Fourteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '09), pages 157-168, Washington, DC, USA, March 2009.
Available: http://research.sun.com/scalable/pubs/ASPLOS2009-RockHTM.pdf [Viewed February 4, 2009].

Dov90
Ken F. Dove.
A high capacity TCP/IP in parallel STREAMS.
In UKUUG Conference Proceedings, London, June 1990.

DSS06
Dave Dice, Ori Shalev, and Nir Shavit.
Transactional locking II.
In Proc. International Symposium on Distributed Computing. Springer Verlag, 2006.
Available: http://www.springerlink.com/content/5688h5q0w72r54x0/ [Viewed March 10, 2008].

EGCD03
T. A. El-Ghazawi, W. W. Carlson, and J. M. Draper.
UPC language specifications v1.1.
Available: http://upc.gwu.edu [Viewed September 19, 2008], May 2003.

Eng68
Douglas Engelbart.
The demo.
Available: http://video.google.com/videoplay?docid=-8734787622017763097 [Viewed November 28, 2008], December 1968.

ENS05
Ryan Eccles, Blair Nonneck, and Deborah A. Stacey.
Exploring parallel programming knowledge in the novice.
In HPCS '05: Proceedings of the 19th International Symposium on High Performance Computing Systems and Applications, pages 97-102, Washington, DC, USA, 2005. IEEE Computer Society.

ES05
Ryan Eccles and Deborah A. Stacey.
Understanding the parallel programmer.
In HPCS '05: Proceedings of the 19th International Symposium on High Performance Computing Systems and Applications, pages 156-160, Washington, DC, USA, 2005. IEEE Computer Society.

Gar90
Arun Garg.
Parallel STREAMS: a multi-processor implementation.
In USENIX Conference Proceedings, pages 163-176, Berkeley CA, February 1990. USENIX Association.

Gar07
Bryan Gardiner.
Idf: Gordon moore predicts end of moore's law (again).
Available: http://blog.wired.com/business/2007/09/idf-gordon-mo-1.html [Viewed: November 28, 2008], September 2007.

GC96
Michael Greenwald and David R. Cheriton.
The synergy between non-blocking synchronization and operating system structure.
In Proceedings of the Second Symposium on Operating Systems Design and Implementation, pages 123-136, Seattle, WA, October 1996. USENIX Association.

Gha95
Kourosh Gharachorloo.
Memory consistency models for shared-memory multiprocessors.
Technical Report CSL-TR-95-685, Computer Systems Laboratory, Departments of Electrical Engineering and Computer Science, Stanford University, Stanford, CA, December 1995.
Available: http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-95-9.pdf [Viewed: October 11, 2004].

GHJV95
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.
Design Patterns: Elements of Reusable Object-Oriented Software.
Addison-Wesley, 1995.

GKAS99
Ben Gamsa, Orran Krieger, Jonathan Appavoo, and Michael Stumm.
Tornado: Maximizing locality and concurrency in a shared memory multiprocessor operating system.
In Proceedings of the 3rd Symposium on Operating System Design and Implementation, pages 87-100, New Orleans, LA, February 1999.
Available: http://www.usenix.org/events/osdi99/full_papers/gamsa/gamsa.pdf [Viewed August 30, 2006].

GMTW08
D. Guniguntala, P. E. McKenney, J. Triplett, and J. Walpole.
The read-copy-update mechanism for supporting real-time applications on shared-memory multiprocessor systems with Linux.
IBM Systems Journal, 47(2):221-236, May 2008.
Available: http://www.research.ibm.com/journal/sj/472/guniguntala.pdf [Viewed April 24, 2008].

GPB+07
Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea.
Java: Concurrency in Practice.
Addison Wesley, Upper Saddle River, NJ, USA, 2007.

Gra02
Jim Gray.
Super-servers: Commodity computer clusters pose a software challenge.
Available: http://research.microsoft.com/en-us/um/people/gray/papers/superservers(4t_computers).doc [Viewed: June 23, 2004], April 2002.

Gri00
Scott Griffen.
Internet pioneers: Doug englebart.
Available: http://www.ibiblio.org/pioneers/englebart.html [Viewed November 28, 2008], May 2000.

Gro01
The Open Group.
Single UNIX specification.
http://www.opengroup.org/onlinepubs/007908799/index.html, July 2001.

Gro07
Dan Grossman.
The transactional memory / garbage collection analogy.
In OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object oriented programming systems and applications, pages 695-706, New York, NY, USA, October 2007. ACM.
Available: http://www.cs.washington.edu/homes/djg/papers/analogy_oopsla07.pdf [Viewed December 19, 2008].

HCS+05
Lorin Hochstein, Jeff Carver, Forrest Shull, Sima Asgari, and Victor Basili.
Parallel programmer productivity: A case study of novice parallel programmers.
In SC '05: Proceedings of the 2005 ACM/IEEE conference on Supercomputing, page 35, Washington, DC, USA, 2005. IEEE Computer Society.

Her90
Maurice P. Herlihy.
A methodology for implementing highly concurrent data structures.
In Proceedings of the 2nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 197-206, March 1990.

Her05
Maurice Herlihy.
The transactional manifesto: software engineering and non-blocking synchronization.
In PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 280-280, New York, NY, USA, 2005. ACM Press.

HM93
Maurice Herlihy and J. Eliot B. Moss.
Transactional memory: Architectural support for lock-free data structures.
The 20th Annual International Symposium on Computer Architecture, pages 289-300, May 1993.

HMB06
Thomas E. Hart, Paul E. McKenney, and Angela Demke Brown.
Making lockless synchronization fast: Performance implications of memory reclamation.
In 20th IEEE International Parallel and Distributed Processing Symposium, Rhodes, Greece, April 2006.
Available: http://www.rdrop.com/users/paulmck/RCU/hart_ipdps06.pdf [Viewed April 28, 2008].

Hol03
Gerard J. Holzmann.
The Spin Model Checker: Primer and Reference Manual.
Addison-Wesley, 2003.

HP95
John L. Hennessy and David A. Patterson.
Computer Architecture: A Quantitative Approach.
Morgan Kaufman, 1995.

HS08
Maurice Herlihy and Nir Shavit.
The Art of Multiprocessor Programming.
Morgan Kaufmann, Burlington, MA, USA, 2008.

HW92
Wilson C. Hsieh and William E. Weihl.
Scalable reader-writer locks for parallel systems.
In Proceedings of the 6th International Parallel Processing Symposium, pages 216-230, Beverly Hills, CA, USA, March 1992.

IBM94
IBM Microelectronics and Motorola.
PowerPC Microprocessor Family: The Programming Environments, 1994.

Inm85
Jack Inman.
Implementing loosely coupled functions on tightly coupled engines.
In USENIX Conference Proceedings, pages 277-298, Portland, OR, June 1985. USENIX Association.

Int92
International Standards Organization.
Information Technology - Database Language SQL.
ISO, 1992.
Available: http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt [Viewed September 19, 2008].

Int02a
Intel Corporation.
Intel Itanium Architecture Software Developer's Manual Volume 3: Instruction Set Reference, 2002.

Int02b
Intel Corporation.
Intel Itanium Architecture Software Developer's Manual Volume 3: System Architecture, 2002.

Int04a
Intel Corporation.
IA-32 Intel Architecture Software Developer's Manual Volume 2B: Instruction Set Reference, N-Z, 2004.
Available: ftp://download.intel.com/design/Pentium4/manuals/25366714.pdf [Viewed: February 16, 2005].

Int04b
Intel Corporation.
IA-32 Intel Architecture Software Developer's Manual Volume 3: System Programming Guide, 2004.
Available: ftp://download.intel.com/design/Pentium4/manuals/25366814.pdf [Viewed: February 16, 2005].

Int04c
International Business Machines Corporation.
z/Architecture principles of operation.
Available: http://publibz.boulder.ibm.com/epubs/pdf/dz9zr003.pdf [Viewed: February 16, 2005], May 2004.

Int07
Intel Corporation.
Intel 64 Architecture Memory Ordering White Paper, 2007.
Available: http://developer.intel.com/products/processor/manuals/318147.pdf [Viewed: September 7, 2007].

Int09
Intel Corporation.
Intel 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A: System Programming Guide, Part 1, 2009.
Available: http://download.intel.com/design/processor/manuals/253668.pdf [Viewed: November 8, 2009].

Jia08
Lai Jiangshan.
[RFC][PATCH] rcu classic: new algorithm for callbacks-processing.
Available: http://lkml.org/lkml/2008/6/2/539 [Viewed December 10, 2008], June 2008.

Kan96
Gerry Kane.
PA-RISC 2.0 Architecture.
Hewlett-Packard Professional Books, 1996.

KL80
H. T. Kung and Q. Lehman.
Concurrent maintenance of binary search trees.
ACM Transactions on Database Systems, 5(3):354-382, September 1980.
Available: http://portal.acm.org/citation.cfm?id=320619&dl=GUIDE, [Viewed December 3, 2007].

Kni08
John U. Knickerbocker.
3D chip technology.
IBM Journal of Research and Development, 52(6), November 2008.
Available: http://www.research.ibm.com/journal/rd52-6.html [Viewed: January 1, 2009].

Knu73
Donald Knuth.
The Art of Computer Programming.
Addison-Wesley, 1973.

Lea97
Doug Lea.
Concurrent Programming in Java: Design Principles and Patterns.
Addison Wesley Longman, Reading, MA, USA, 1997.

LLO09
Yossi Lev, Victor Luchangco, and Marek Olszewski.
Scalable reader-writer locks.
In SPAA '09: Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures, pages 101-110, New York, NY, USA, 2009. ACM.

Lom77
D. B. Lomet.
Process structuring, synchronization, and recovery using atomic actions.
SIGSOFT Softw. Eng. Notes, 2(2):128-137, 1977.
Available: http://portal.acm.org/citation.cfm?id=808319# [Viewed June 27, 2008].

Lov05
Robert Love.
Linux Kernel Development.
Novell Press, second edition, 2005.

LS86
Vladimir Lanin and Dennis Shasha.
A symmetric concurrent b-tree algorithm.
In ACM '86: Proceedings of 1986 ACM Fall joint computer conference, pages 380-389, Los Alamitos, CA, USA, 1986. IEEE Computer Society Press.

LSH02
Michael Lyons, Ed Silha, and Bill Hay.
PowerPC storage model and AIX programming.
Available: http://www-106.ibm.com/developerworks/eserver/articles/powerpc.html [Viewed: January 31, 2005], August 2002.

Mas92
H. Massalin.
Synthesis: An Efficient Implementation of Fundamental Operating System Services.
PhD thesis, Columbia University, New York, NY, 1992.

McK96
Paul E. McKenney.
Pattern Languages of Program Design, volume 2, chapter 31: Selecting Locking Designs for Parallel Programs, pages 501-531.
Addison-Wesley, June 1996.
Available: http://www.rdrop.com/users/paulmck/scalability/paper/mutexdesignpat.pdf [Viewed February 17, 2005].

McK03
Paul E. McKenney.
Using RCU in the Linux 2.5 kernel.
Linux Journal, 1(114):18-26, October 2003.
Available: http://www.linuxjournal.com/article/6993 [Viewed November 14, 2007].

McK04
Paul E. McKenney.
Exploiting Deferred Destruction: An Analysis of Read-Copy-Update Techniques in Operating System Kernels.
PhD thesis, OGI School of Science and Engineering at Oregon Health and Sciences University, 2004.
Available: http://www.rdrop.com/users/paulmck/RCU/RCUdissertation.2004.07.14e1.pdf [Viewed October 15, 2004].

McK05a
Paul E. McKenney.
Memory ordering in modern microprocessors, part I.
Linux Journal, 1(136):52-57, August 2005.
Available: http://www.linuxjournal.com/article/8211 http://www.rdrop.com/users/paulmck/scalability/paper/ordering.2007.09.19a.pdf [Viewed November 30, 2007].

McK05b
Paul E. McKenney.
Memory ordering in modern microprocessors, part II.
Linux Journal, 1(137):78-82, September 2005.
Available: http://www.linuxjournal.com/article/8212 http://www.rdrop.com/users/paulmck/scalability/paper/ordering.2007.09.19a.pdf [Viewed November 30, 2007].

McK05c
Paul E. McKenney.
Re: [fwd: Re: [patch] real-time preemption, -rt-2.6.13-rc4-v0.7.52-01].
Available: http://lkml.org/lkml/2005/8/8/108 [Viewed March 14, 2006], August 2005.

McK06
Paul E. McKenney.
Sleepable RCU.
Available: http://lwn.net/Articles/202847/ Revised: http://www.rdrop.com/users/paulmck/RCU/srcu.2007.01.14a.pdf [Viewed August 21, 2006], October 2006.

McK07a
Paul E. McKenney.
The design of preemptible read-copy-update.
Available: http://lwn.net/Articles/253651/ [Viewed October 25, 2007], October 2007.

McK07b
Paul E. McKenney.
[PATCH] QRCU with lockless fastpath.
Available: http://lkml.org/lkml/2007/2/25/18 [Viewed March 27, 2008], February 2007.

McK07c
Paul E. McKenney.
[patch rfc 0/9] RCU: Preemptible RCU.
Available: http://lkml.org/lkml/2007/9/10/213 [Viewed October 25, 2007], September 2007.

McK07d
Paul E. McKenney.
Priority-boosting RCU read-side critical sections.
Available: http://lwn.net/Articles/220677/ Revised: http://www.rdrop.com/users/paulmck/RCU/RCUbooststate.2007.04.16a.pdf [Viewed September 7, 2007], February 2007.

McK07e
Paul E. McKenney.
RCU and unloadable modules.
Available: http://lwn.net/Articles/217484/ [Viewed November 22, 2007], January 2007.

McK07f
Paul E. McKenney.
Using Promela and Spin to verify parallel algorithms.
Available: http://lwn.net/Articles/243851/ [Viewed September 8, 2007], August 2007.

McK07g
Paul E. McKenney.
What is RCU?
Available: http://www.rdrop.com/users/paulmck/RCU/whatisRCU.html [Viewed July 6, 2007], 07 2007.

McK08a
Paul E. McKenney.
Hierarchical RCU.
Available: http://lwn.net/Articles/305782/ [Viewed November 6, 2008], November 2008.

McK08b
Paul E. McKenney.
RCU part 3: the RCU API.
Available: http://lwn.net/Articles/264090/ [Viewed January 10, 2008], January 2008.

McK08c
Paul E. McKenney.
What is RCU? part 2: Usage.
Available: http://lwn.net/Articles/263130/ [Viewed January 4, 2008], January 2008.

McK09a
Paul E. McKenney.
Re: [patch fyi] rcu: the bloatwatch edition.
Available: http://lkml.org/lkml/2009/1/14/449 [Viewed January 15, 2009], January 2009.

McK09b
Paul E. McKenney.
Transactional memory everywhere?
http://paulmck.livejournal.com/tag/transactionalSeptember 2009.

MD92
Paul E. McKenney and Ken F. Dove.
Efficient demultiplexing of incoming tcp packets.
In SIGCOMM '92, Proceedings of the Conference on Communications Architecture & Protocols, pages 269-279, Baltimore, MD, August 1992. Association for Computing Machinery.

Mel06
Melbourne School of Engineering.
CSIRAC.
Available: http://www.csse.unimelb.edu.au/dept/about/csirac/ [Viewed: December 7, 2008], 2006.

Met99
Panagiotis Takis Metaxas.
Fast dithering on a data-parallel computer.
In Proceedings of the IASTED International Conference on Parallel and Distributed Computing and Systems, pages 570-576, Cambridge, MA, USA, 1999. IASTED.

MG92
Paul E. McKenney and Gary Graunke.
Efficient buffer allocation on shared-memory multiprocessors.
In IEEE Workshop on the Architecture and Implementation of High Performance Communication Subsystems, pages 194-199, Tucson, AZ, February 1992. The Institute of Electrical and Electronics Engineers, Inc.

MGM+09
Paul E. McKenney, Manish Gupta, Maged M. Michael, Phil Howard, Joshua Triplett, and Jonathan Walpole.
Is parallel programming hard, and if so, why?
Technical Report TR-09-02, Portland State University, Portland, OR, USA, February 2009.
Available: http://www.cs.pdx.edu/pdfs/tr0902.pdf [Viewed February 19, 2009].

Mic04
Maged M. Michael.
Hazard pointers: Safe memory reclamation for lock-free objects.
IEEE Transactions on Parallel and Distributed Systems, 15(6):491-504, June 2004.

MK88
Marshall Kirk McKusick and Michael J. Karels.
Design of a general purpose memory allocator for the 4.3BSD UNIX kernel.
In USENIX Conference Proceedings, Berkeley CA, June 1988.

MM00
Ingo Molnar and David S. Miller.
brlock.
Available: http://www.tm.kernel.org/pub/linux/kernel/v2.3/patch-html/patch-2.3.49/linux_include_linux_brlock.h.html [Viewed September 3, 2004], March 2000.

MMW07
Paul E. McKenney, Maged Michael, and Jonathan Walpole.
Why the grass may not be greener on the other side: A comparison of locking vs. transactional memory.
In Programming Languages and Operating Systems, pages 1-5, New York, NY, USA, October 2007. ACM SIGOPS.

Mol05
Ingo Molnar.
Index of /pub/linux/kernel/projects/rt.
Available: http://www.kernel.org/pub/linux/kernel/projects/rt/ [Viewed February 15, 2005], February 2005.

Moo03
Gordon Moore.
No exponential is forever-but we can delay forever.
In IBM Academy of Technology 2003 Annual Meeting, San Francisco, CA, October 2003.

MPA+06
Paul E. McKenney, Chris Purcell, Algae, Ben Schumin, Gaius Cornelius, Qwertyus, Neil Conway, Sbw, Blainster, Canis Rufus, Zoicon5, Anome, and Hal Eisen.
Read-copy update.
Available: http://en.wikipedia.org/wiki/Read-copy-update [Viewed August 21, 2006], July 2006.

MPI08
MPI Forum.
Message passing interface forum.
Available: http://www.mpi-forum.org/ [Viewed September 9, 2008], September 2008.

MR08
Paul E. McKenney and Steven Rostedt.
Integrating and validating dynticks and preemptable rcu.
Available: http://lwn.net/Articles/279077/ [Viewed April 24, 2008], April 2008.

MS93
Paul E. McKenney and Jack Slingwine.
Efficient kernel memory allocation on shared-memory multiprocessors.
In USENIX Conference Proceedings, pages 295-306, Berkeley CA, February 1993. USENIX Association.
Available: http://www.rdrop.com/users/paulmck/scalability/paper/mpalloc.pdf [Viewed January 30, 2005].

MS98
Paul E. McKenney and John D. Slingwine.
Read-copy update: Using execution history to solve concurrency problems.
In Parallel and Distributed Computing and Systems, pages 509-518, Las Vegas, NV, October 1998.
Available: http://www.rdrop.com/users/paulmck/RCU/rclockpdcsproof.pdf [Viewed December 3, 2007].

MS05
Paul E. McKenney and Dipankar Sarma.
Towards hard realtime response from the Linux kernel on SMP hardware.
In linux.conf.au 2005, Canberra, Australia, April 2005.
Available: http://www.rdrop.com/users/paulmck/RCU/realtimeRCU.2005.04.23a.pdf [Viewed May 13, 2005].

MS08
MySQL AB and Sun Microsystems.
MySQL Downloads.
Available: http://dev.mysql.com/downloads/ [Viewed November 26, 2008], November 2008.

MS09
Paul E. McKenney and Raul Silvera.
Example power implementation for c/c++ memory model.
Available: http://www.rdrop.com/users/paulmck/scalability/paper/N2745r.2009.02.27a.html [Viewed: April 5, 2009], February 2009.

MSK01
Paul E. McKenney, Jack Slingwine, and Phil Krueger.
Experience with an efficient parallel kernel memory allocator.
Software - Practice and Experience, 31(3):235-257, March 2001.

MSM05
Timothy G. Mattson, Beverly A. Sanders, and Berna L. Massingill.
Patterns for Parallel Programming.
Addison Wesley, Boston, MA, USA, 2005.

MSMB06
Paul E. McKenney, Dipankar Sarma, Ingo Molnar, and Suparna Bhattacharya.
Extending RCU for realtime and embedded workloads.
In Ottawa Linux Symposium, pages v2 123-138, July 2006.
Available: http://www.linuxsymposium.org/2006/view_abstract.php?content_key=184 http://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf [Viewed January 1, 2007].

MSS04
Paul E. McKenney, Dipankar Sarma, and Maneesh Soni.
Scaling dcache with RCU.
Linux Journal, 1(118):38-46, January 2004.
Available: http://www.linuxjournal.com/node/7124 [Viewed December 26, 2010].

MT01
Jose F. Martinez and Josep Torrellas.
Speculative locks for concurrent execution of critical sections in shared-memory multiprocessors.
In Workshop on Memory Performance Issues, International Symposium on Computer Architecture, Gothenburg, Sweden, June 2001.
Available: http://iacoma.cs.uiuc.edu/iacoma-papers/wmpi_locks.pdf [Viewed June 23, 2004].

Mus04
Museum Victoria Australia.
CSIRAC: Australia's first computer.
Available: http://museumvictoria.com.au/CSIRAC/ [Viewed: December 7, 2008], 2004.

MW07
Paul E. McKenney and Jonathan Walpole.
What is RCU, fundamentally?
Available: http://lwn.net/Articles/262464/ [Viewed December 27, 2007], December 2007.

Nes06a
Oleg Nesterov.
Re: [patch] cpufreq: mark cpufreq_tsc() as core_initcall_sync.
Available: http://lkml.org/lkml/2006/11/19/69 [Viewed May 28, 2007], November 2006.

Nes06b
Oleg Nesterov.
Re: [rfc, patch 1/2] qrcu: "quick" srcu implementation.
Available: http://lkml.org/lkml/2006/11/29/330 [Viewed November 26, 2008], November 2006.

ONH+96
Kunle Olukotun, Basem A. Nayfeh, Lance Hammond, Ken Wilson, and Kunyung Chang.
The case for a single-chip multiprocessor.
In ASPLOS VII, October 1996.

Ope97
Open Group.
The single UNIX specification, version 2: Threads.
Available: http://www.opengroup.org/onlinepubs/007908799/xsh/threads.html [Viewed September 19, 2008], 1997.

Pos08
PostgreSQL Global Development Group.
PostgreSQL.
Available: http://www.postgresql.org/ [Viewed November 26, 2008], November 2008.

PW07
Donald E. Porter and Emmett Witchel.
Lessons from large transactional systems.
Personal communication <20071214220521.GA5721@olive-green.cs.utexas.edu>, December 2007.

Rei07
James Reinders.
Intel Threading Building Blocks.
O'Reilly, Sebastopol, CA, USA, 2007.

RG01
Ravi Rajwar and James R. Goodman.
Speculative lock elision: Enabling highly concurrent multithreaded execution.
In Proceedings of the 34th Annual ACM/IEEE International Symposium on Microarchitecture, pages 294-305, Austin, TX, December 2001. The Institute of Electrical and Electronics Engineers, Inc.

RHP+07
Chistopher J. Rossbach, Owen S. Hofmann, Donald E. Porter, Hany E. Ramadan, Aditya Bhandari, and Emmett Witchel.
TxLinux: Using and managing hardware transactional memory in an operating system.
In SOSP'07: Twenty-First ACM Symposium on Operating Systems Principles. ACM SIGOPS, October 2007.
Available: http://www.sosp2007.org/papers/sosp056-rossbach.pdf [Viewed October 21, 2007].

SATG+09
Tatiana Shpeisman, Ali-Reza Adl-Tabatabai, Robert Geva, Yang Ni, and Adam Welc.
Towards transactional memory semantics for c++.
In SPAA '09: Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures, pages 49-58, New York, NY, USA, 2009. ACM.

Sco06
Michael Scott.
Programming Language Pragmatics.
Morgan Kaufmann, Burlington, MA, USA, 2006.

Sew
Peter Sewell.
The semantics of multiprocessor programs.
Available: http://www.cl.cam.ac.uk/~pes20/weakmemory/ [Viewed: June 7, 2010].

SMS08
Michael Spear, Maged Michael, and Michael Scott.
Inevitability mechanisms for software transactional memory.
In 3rd ACM SIGPLAN Workshop on Transactional Computing, New York, NY, USA, February 2008. ACM.
Available: http://www.cs.rochester.edu/u/scott/papers/2008_TRANSACT_inevitability.pdf [Viewed January 10, 2009].

SPA94
SPARC International.
The SPARC Architecture Manual, 1994.

Spr01
Manfred Spraul.
Re: RFC: patch to allow lock-free traversal of lists with insertion.
Available: http://marc.theaimsgroup.com/?l=linux-kernel&m=100264675012867&w=2 [Viewed June 23, 2004], October 2001.

Spr08a
Manfred Spraul.
Re: [RFC, PATCH] v4 scalable classic RCU implementation.
Available: http://lkml.org/lkml/2008/9/6/86 [Viewed December 8, 2008], September 2008.

Spr08b
Manfred Spraul.
[RFC, PATCH] state machine based rcu.
Available: http://lkml.org/lkml/2008/8/21/336 [Viewed December 8, 2008], August 2008.

SS94
Duane Szafron and Jonathan Schaeffer.
Experimentally assessing the usability of parallel programming systems.
In IFIP WG10.3 Programming Environments for Massively Parallel Distributed Systems, pages 19.1-19.7, 1994.

SSHT93
Janice S. Stone, Harold S. Stone, Philip Heidelberger, and John Turek.
Multiple reservations and the Oklahoma update.
IEEE Parallel and Distributed Technology Systems and Applications, 1(4):58-71, November 1993.

SSRB00
Douglas C. Schmidt, Michael Stal, Hans Rohnert, and Frank Buschmann.
Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects.
Wiley, Chichester, West Sussex, England, 2000.

ST87
William E. Snaman and David W. Thiel.
The VAX/VMS distributed lock manager.
Digital Technical Journal, 5:29-44, September 1987.

ST95
Nir Shavit and Dan Touitou.
Software transactional memory.
In Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing, pages 204-213, Ottawa, Ontario, Canada, August 1995.

Ste92
W. Richard Stevens.
Advanced Programming in the UNIX Environment.
Addison Wesley, 1992.

Sut08
Herb Sutter.
Effective concurrency.
Series in Dr. Dobbs Journal, 2008.

SW95
Richard L. Sites and Richard T. Witek.
Alpha AXP Architecture.
Digital Press, second edition, 1995.

The08
The Open MPI Project.
MySQL Downloads.
Available: http://www.open-mpi.org/software/ [Viewed November 26, 2008], November 2008.

Tor01
Linus Torvalds.
Re: [Lse-tech] Re: RFC: patch to allow lock-free traversal of lists with insertion.
Available: http://lkml.org/lkml/2001/10/13/105 [Viewed August 21, 2004], October 2001.

Tor03
Linus Torvalds.
Linux 2.6.
Available: ftp://kernel.org/pub/linux/kernel/v2.6 [Viewed June 23, 2004], August 2003.

Tra01
Transaction Processing Performance Council.
TPC.
Available: http://www.tpc.org/ [Viewed December 7, 2008], 2001.

UoC08
Berkeley University of California.
BOINC: compute for science.
Available: http://boinc.berkeley.edu/ [Viewed January 31, 2008], October 2008.

VGS08
Haris Volos, Neelam Goyal, and Michael M. Swift.
Pathological interaction of locks with transactional memory.
In 3rd ACM SIGPLAN Workshop on Transactional Computing, New York, NY, USA, February 2008. ACM.
Available: http://www.cs.wisc.edu/multifacet/papers/transact08_txlock.pdf [Viewed September 7, 2009].

Vog09
Werner Vogels.
Eventually consistent.
Commun. ACM, 52:40-44, January 2009.

Wik08
Wikipedia.
Zilog Z80.
Available: http://en.wikipedia.org/wiki/Z80 [Viewed: December 7, 2008], 2008.


Paul E. McKenney 2011-12-16