Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| courses:cs377-202651:week13 [2026/04/28 15:04] – [Final Assignment] mlsmith | courses:cs377-202651:week13 [2026/04/30 15:03] (current) – [Simulating Models of Concurrency] mlsmith | ||
|---|---|---|---|
| Line 26: | Line 26: | ||
| * recall Legoland as implemented in Peter Welch' | * recall Legoland as implemented in Peter Welch' | ||
| * implementing Legoland in golang presents a challenge: no PAR! | * implementing Legoland in golang presents a challenge: no PAR! | ||
| - | * demo without | + | * demo without |
| + | * demo with a PAR | ||
| + | * and some lambdas... | ||
| * demo of sort pump with PAR and Replicated PAR | * demo of sort pump with PAR and Replicated PAR | ||
| + | |||
| + | ==== Simulating Models of Concurrency ==== | ||
| + | |||
| + | * Discussion: modeling one model of concurrency with another | ||
| + | * shared memory (critical sections, etc.) | ||
| + | * we've seen implementing semaphores with monitors/ | ||
| + | * can we model condition variables with semaphores? | ||
| + | * Golang: channels (message passing) | ||
| + | * motto: // | ||
| + | * simulate memory accesses with a goroutine? | ||
| + | * Ruby/Rinda: Linda and Tuple Space | ||
| + | * tuples are semaphores! | ||
| + | * immutable so no race conditions / critical sections | ||
| + | * similar perils to using semaphores, but offer more possibilities | ||
| + | * Simulate Linda/TS with another model? | ||
| + | * with combination of dictionaries, | ||
| + | * shared memory with semaphores | ||
| + | * goroutines to protect access | ||
| + | * other ideas? | ||
| + | * We don't always get to choose our language/ | ||
| + | |||