Commit b3cd30f
committed
Add new section "Shared Resources" and "Lock-Free"
Expand the shared resources from the programmer's view in "Read Modify
Write" to the cache-line perspective in section "Shared Resources".
Move the original "Cache effects and false sharing" to "Shared
Resources". Add an explanation of how the scalability of locks will be
limited by cache coherence.
Change the title of Section "Atomic operations as building blocks" to
"Concurrency tools and synchronization mechanisms". Introduce a blocking
mechanism with its issues, including waiting times, deadlock, and
scalability. Give an example of how synchronization without using a lock
can also lead to a livelock.
Introduce the three types of progress, which are wait-free, lock-free,
and obstruction-free.
- Add a figure containing three tables showing the progress of every
thread and the progress of the overall system.
Give a SPMC problem to explain how to achieve fully lock-free by using
algorithms and data structure designs with appropriate synchronization
mechanisms and concurrency tools.
- Add two flowcharts: one for "lock-based" solution 1 and another for
"lock-based and lock-free" solution 2 and a diagram illustrating
different data structures to show different data structures.1 parent 8d9a4b9 commit b3cd30f
File tree
7 files changed
+290
-69
lines changed- images
7 files changed
+290
-69
lines changedLarge diffs are not rendered by default.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
0 commit comments