Skip to content

Commit b3cd30f

Browse files
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

7 files changed

+290
-69
lines changed

concurrency-primer.tex

Lines changed: 290 additions & 69 deletions
Large diffs are not rendered by default.

images/false-sharing.pdf

9.06 KB
Binary file not shown.

images/progress-type.pdf

10 KB
Binary file not shown.

images/spinlock.pdf

9.68 KB
Binary file not shown.

images/spmc-solution1.pdf

11.4 KB
Binary file not shown.

images/spmc-solution2.pdf

9.4 KB
Binary file not shown.

images/spmc-solution3.pdf

9.43 KB
Binary file not shown.

0 commit comments

Comments
 (0)