What's the problem with notification?


Commit: 9f76a276 - they're eating the cats and dogs
Author: lhorva <lhorva@student.ethz.ch>
Date: 2026-02-20T10:27:47+01:00
Changes: 14 note(s) changed (13 added, 1 modified, 0 deleted)
ℹ️ Cosmetic Changes Hidden: 1 note(s) had formatting-only changes and are not shown below
K,fisLmPeW
Note did not exist



| Field | Before | After |
|---|---|---|
| Front | What's the problem with notification?<br><br><img src="paste-f2d8f3beeaf6f48f730430087921c3e21aa59aca.jpg"> | |
| Back | No mutual exclusion!<br><br><img src="paste-a3df6d640733f683122a81d29a0d1ccafc0371bf.jpg"> |
K>ug`7HTL`
Note did not exist



| Field | Before | After |
|---|---|---|
| Front | What's an issue of the Readers-Writers pattern?<br><br><img src="paste-5b1101e8375a8f6016a7b86991131d792b56304f.jpg"> | |
| Back | The reader may not be reading at all times, causing input loss!<br><br><img src="paste-48656cf3c97513bbb32ce7e85601825b7d136132.jpg"> |
M`z+&R0ZMn
Note did not exist



| Field | Before | After |
|---|---|---|
| Front | What's the problem with putting up flags first and then checking the neighbor?<br><br><img src="paste-dc4d0a04c8aa3beea684219d0fbb54e515ee9fa4.jpg"> | |
| Back | We still have livelock and starvation!<br><br><img src="paste-4ee017b283384b29010f1bb07f97648b18e38481.jpg"> |
N-`{p4Lt3o
Note did not exist
| Field | Before | After |
|---|---|---|
| Text | Parallel execution can introduce inefficiencies such as {{c1::communication overhead}}, {{c2::load imbalance}}, and {{c3::idle time due to task dependencies or waiting for data exchange}}. |
NAqmdxn~W[
Note did not exist
| Field | Before | After |
|---|---|---|
| Text | Managing shared resources in parallel programming introduces challenges such as {{c1::race conditions, synchronization, deadlock, livelock etc}}. |
P%}^}]&H%f
Note did not exist

| Field | Before | After |
|---|---|---|
| Front | How can we solve starvation in the cat and dog problem? | |
| Back | Combine flags with a turn-based determinator!<br><br><img src="paste-a9b6f4d9dcd618ad0a26b4482f5356d49d20cd09.jpg"> |
eIYu#!KzX_
Note did not exist
| Field | Before | After |
|---|---|---|
| Text | \({{c1::\text{speedup (using p processors)}}} = \frac{{{c2::\text{execution time (using 1 processor)}}}}{{{c3::\text{execution time (using p processors)}}}}\) |
g9lF(k!=m>
Note did not exist



| Field | Before | After |
|---|---|---|
| Front | Which problem remains here?<br><br><img src="paste-6e904e009756ec14d14e931788f4b772eea35049.jpg"> | |
| Back | We still have the general problem of waiting!<br><br><img src="paste-bdfff43e8373bcf39038c2c2d9a30b7aa110d962.jpg"> |
g?g2.P+F4z
Note did not exist



| Field | Before | After |
|---|---|---|
| Front | What's one caveat of the producer-consumer pattern?<br><br><img src="paste-4aead4902f587a2bf7b8cbffb3972fca3d3a596b.jpg"> | |
| Back | The order is not guaranteed!<br><br><img src="paste-dbec8fb5ba0fa1863e35ee06d39eb8a6b41c6cd8.jpg"> |
j_M%FT*ye3
Note did not exist
| Field | Before | After |
|---|---|---|
| Text | {{c1::Parallel programming}} refers to dividing a problem into smaller tasks, which are processed at the same time on different computing resources to make the solution faster and more efficient. |
k+S4n^4+Tx
Note did not exist



| Field | Before | After |
|---|---|---|
| Front | What's the problem with alternation?<br><br><img src="paste-ad8f32e8d8a4867f60aff4aeab512e322c67fe76.jpg"> | |
| Back | Starvation!<br><br><img src="paste-ee8a99e1b3f8ca1b947a3f128452c2831a7ce5ef.jpg"> |
n*pnVv+nib
Note did not exist
| Field | Before | After |
|---|---|---|
| Text | Access to shared resources needs {{c1::synchronization}}. |
q#;#HVzA)B
Note did not exist



| Field | Before | After |
|---|---|---|
| Front | Why does checking flags twice not work in the notification system?<br><br><img src="paste-11ce087816d909219d34a0506969277618d007da.jpg"> | |
| Back | We could reach a deadlock!<br><br><img src="paste-1efbb84fb9f56ed0de39e234d255f35cc07e9cf8.jpg"> |