Keywords: perfbook_html

## 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.