Revised and updated with improvements conceived in parallel programming courses, The Art of Multiprocessor Programming is an authoritative guide to multicore programming. It introduces a higher level set of software development skills than that needed for efficient single-core programming. This book provides comprehensive coverage of the new principles, algorithms, and tools necessary for effective multiprocessor programming. Students and professionals alike will benefit from thorough coverage of key multiprocessor programming issues.
Table of Contents
1. Introduction
2. Mutual Exclusion
3. Concurrent Objects and Linearization
4. Foundations of Shared Memory
5. The Relative Power of Synchronization Methods
6. The Universality of Consensus
7. Spin Locks and Contention
8. Monitors and Blocking Synchronization
9. Linked Lists: the Role of Locking
10. Concurrent Queues and the ABA Problem
11. Concurrent Stacks and Elimination
12. Counting, Sorting and Distributed Coordination
13. Concurrent Hashing and Natural Parallelism
14. Skiplists and Balanced Search
15. Priority Queues
16. Futures, Scheduling and Work Distribution
17. Barriers
18. Transactional Memory
Appendices