Title Statements
- Full title :Shared-memory synchronization / Michael L. Scott.
Summary
Since the advent of time sharing in the 1960s, designers of concurrent and parallel systems have needed to synchronize the activities of threads of control that share data structures in memory. In recent years, the study of synchronization has gained new urgency with the proliferation of multicore processors, on which even relatively simple user-level programs must frequently run in parallel. This lecture offers a comprehensive survey of shared-memory synchronization, with an emphasis on "systems-level" issues. It includes sufficient coverage of architectural details to understand correctness and performance on modern multicore machines, and sufficient coverage of higher-level issues to understand how synchronization is embedded in modern programming languages. The primary intended audience is "systems programmers" - the authors of operating systems, library packages, language run-time systems, concurrent data structures, and server and utility programs. Much of the discussion should also be of interest to application programmers who want to make good use of the synchronization mechanisms available to them, and to computer architects who want to understand the ramifications of their design decisions on systems-level code.
Read More ↓Edition Statements
- Publication Date:©2013.
Publication Statements
- Publisher(s):Morgan & Claypool
- Place of Publication:San Rafael, Calif
- Language:eng
- Publication Date:©2013.
Notes
In: Synthesis digital library of engineering and computer science.
Visionné le 18 octobre 2013.
The Physical Object
- Description:1 online resource (1 texte électronique (xvii, 203 p.)) : : illustrations
Edition Identifiers
- ISBN:9781608459575, 1608459578
- oclc:ocn862113356
- LC Classification:QA76.9.M45
- Dewey Decimal:005.43
Table of Contents
1. Introduction -- 1.1 Atomicity -- 1.2 Condition synchronization -- 1.3 Spinning vs. blocking -- 1.4 Safety and liveness
2. Architectural background -- 2.1 Cores and caches: basic shared-memory architecture -- 2.1.1 Temporal and spatial locality -- 2.1.2 Cache coherence -- 2.1.3 Processor (core) locality -- 2.2 Memory consistency -- 2.2.1 Sources of inconsistency -- 2.2.2 Special instructions to order memory access -- 2.2.3 Example architectures -- 2.3 Atomic primitives -- 2.3.1 The ABA problem -- 2.3.2 Other synchronization hardware
3. Essential theory -- 3.1 Safety -- 3.1.1 Deadlock freedom -- 3.1.2 Atomicity -- 3.2 Liveness -- 3.2.1 Nonblocking progress -- 3.2.2 Fairness -- 3.3 The consensus hierarchy -- 3.4 Memory models -- 3.4.1 Formal framework -- 3.4.2 Data races -- 3.4.3 Real-world models
4. Practical spin locks -- 4.1 Classical load-store only algorithms -- 4.2 Centralized algorithms -- 4.2.1 Test and set locks -- 4.2.2 The ticket lock -- 4.3 Queued spin locks -- 4.3.1 The MCS lock -- 4.3.2 The CLH lock -- 4.3.3 Which spin lock should I use? -- 4.4 Interface extensions -- 4.5 Special-case optimizations -- 4.5.1 Locality-conscious locking -- 4.5.2 Double-checked lockin…
Subjects
Writers
More from this Series
No reviews yet. Be the first to rate this work.
Files & Downloads
-
Shared-Memory Synchronization -- (.pdf)
PDF · 1.1 MB · updated
Rate & Review