vault backup: 2025-03-24 08:59:23
This commit is contained in:
parent
e8a07c2570
commit
2db08c4e95
1 changed files with 10 additions and 1 deletions
|
@ -6,5 +6,14 @@ Critical sections (locks) have drawbacks:
|
|||
the liveness properties used so far cannot be used anymore, since they rely on CSs.
|
||||
(example: if we have only atomic R/W registers, these are the only atomic things that we have. But we may also have atomic primitives like *test&set*, *compare&swap* ecc.).
|
||||
|
||||
1. **Obstruction freedom:**
|
||||
#### Liveness properties
|
||||
We have four new liveness properties
|
||||
1. **Obstruction freedom:** every time an operation is run in isolation (no overlap with any other operation on the same object), it terminates
|
||||
2. **Non-blocking:** whenever an operation is invoked on an object, eventually one operation on that object terminates
|
||||
- reminds deadlock-freedom in MUTEX-based concurrency
|
||||
3. **Wait freedom:** whenever an operation is invoked on an object, it eventually terminates
|
||||
- reminds starvation-freedom in MUTEX-based concurrency
|
||||
4. **Bounded wait freedom:** W.F. plus a bound on the number of steps needed to terminate
|
||||
- reminds bounded bypass in MUTEX-based concurrency
|
||||
|
||||
*REMARK:* these notions naturally cope with (crash) failures. Fail stop is another way of terminating, there is no way of distinguishing a failure from an arbitrary long sleep (because of asynchrony).
|
Loading…
Add table
Add a link
Reference in a new issue