The art of multiprocessor programming /
Maurice Herlihy, Nir Shavit, Victor Luchangco and Michael Spear
- Second edition
Includes index
Includes bibliography
Front Cover; The Art of Multiprocessor Programming; Copyright Page; Table of Contents; Acknowledgments; Preface; Chapter 1. Introduction; 1.1 Shared Objects and Synchronization; 1.2 A Fable; 1.3 The Producer-Consumer Problem; 1.4 The Readers-Writers Problem; 1.5 The Harsh Realities of Parallelization; 1.6 Parallel Programming; 1.7 Chapter Notes; 1.8 Exercises; Part I: Principles; Chapter 2. Mutual Exclusion; Chapter 3. Concurrent Objects; Chapter 4. Foundations of Shared Memory; Chapter 5. The Relative Power of Primitive Synchronization Operations; Chapter 6. Universality of Consensus. Part II: PracticeChapter 7. Spin Locks and Contention; Chapter 8. Monitors and Blocking Synchronization; Chapter 9. Linked Lists: The Role of Locking; Chapter 10. Concurrent Queues and the ABA Problem; Chapter 11. Concurrent Stacks and Elimination; Chapter 12. Counting, Sorting, and Distributed Coordination; Chapter 13. Concurrent Hashing and Natural Parallelism; Chapter 14. Skiplists and Balanced Search; Chapter 15. Priority Queu.
Multiprocessor programming, also known as multicore programming, requires new principles, algorithms, and programming tools. This book provides a comprehensive presentation of the principles and tools available for programming multiprocessor machines. It will be of immediate use to programmers working with the new architectures.