Slide 1

Slide 1 text

Eric Shull (@exupero) COMMUNICATING SEQUENTIAL PROCESSES

Slide 2

Slide 2 text

SHARING MEMORY THE PROBLEM: NON-DETERMINISM RACE CONDITIONS DEADLOCKS HARD TO REPRODUCE HARD TO DEBUG HARD TO ENSURE RELIABILITY

Slide 3

Slide 3 text

MUTEXES & LOCKS SEMAPHORES COMPARE & SWAP ATOMIC OPERATIONS SYNCHRONIZATION SOLUTIONS?

Slide 4

Slide 4 text

WRITE LOCK? WRITE UNLOCK. READ LOCK? FAIL! READ LOCK? DEADLOCK? GOT IT! GOT IT! COMPLEX

Slide 5

Slide 5 text

LEAKY

Slide 6

Slide 6 text

NON-COMPOSABLE

Slide 7

Slide 7 text

WANTED SIMPLICITY ABSTRACTIONS COMPOSABILITY CONCURRENCY

Slide 8

Slide 8 text

PIPESSIMPLE COMPOSABLE NON-LEAKY PARALLEL

Slide 9

Slide 9 text

CSP COMMUNICATING SEQUENTIAL PROCESSES BY C.A.R. HOARE

Slide 10

Slide 10 text

(x → P) αCTR={up, right} µX : A • F(X) (s⌒t)n+1=s⌒(t⌒s)n⌒t A* = { s | s ↾ A = s } (c?x → P(x)) = (y : { y | channel(y) = c } → P(message(y))) (c!v → P) || (c?x → Q(x)) = c!v → (P || Q(v)) (right!v → P)≫(left?y → Q(y)) = P≫Q(v) DON’T PANIC π-calculus

Slide 11

Slide 11 text

CONCEPTUAL THE MATH DEMONSTRATES SOUNDNESS

Slide 12

Slide 12 text

PROCESSES NO THREADS NO SHARED MEMORY

Slide 13

Slide 13 text

CHANNELS COMMUNICATION PASS DATA STRUCTURES VALUES AREN’T SHARED

Slide 14

Slide 14 text

ONE-TO-ONE

Slide 15

Slide 15 text

ONE-TO-MANY

Slide 16

Slide 16 text

MANY-TO-ONE

Slide 17

Slide 17 text

MANY-TO-MANY

Slide 18

Slide 18 text

SOUNDS LIKE ERLANG, EXCEPT... SYNCHRONY ... CHANNEL, NOT MAILBOX

Slide 19

Slide 19 text

CSPC.A.R. HOARE NEWSQUEAK ROB PIKE SQUEAKROB PIKE LUCA CARDELLI GO ROB PIKE KEN THOMPSON ROBERT GRIESEMER

Slide 20

Slide 20 text

CHANNELS FUNCTIONS OR GOROUTINES FUNCTIONS OR GOROUTINES NOT THREADS MIGHT HAVE MILLIONS MORE LIGHTWEIGHT GOROUTINES:

Slide 21

Slide 21 text

EXAMPLES ASYNCHRONOUS I/O EVENT COORDINATION SYNCHRONOUS I/O SHARING

Slide 22

Slide 22 text

DON’T COMMUNICATE BY SHARING MEMORY; SHARE MEMORY BY COMMUNICATING

Slide 23

Slide 23 text

CSP COMMUNICATING SEQUENTIAL PROCESSES PLAY WITH IT UNDERSTAND IT USE IT