Progress conditions
並行プログラムの主要な(?) progress conditions,
- deadlock-free
- starvation-free
- lock-free
- wait-free
- obstruction-free
についての雑メモ.
これらの関係¶
from [Herlihy+, 2011]
Lock-free¶
A method is lock-free if some thread that calls that method eventually returns.
Wait-free¶
A method is wait-free if every thread that calls that method eventually returns.
Wait-free bounded¶
TODO
Obstruction-free¶
We say that a method call executes in isolation for a duration if no other threads take steps during that time.
A method is obstruction-free if every thread that calls that method returns if that thread executes in isolation for long enough.
The obstruction-free property requires the scheduler to allow each thread to run in isolation for a sufficient duration.
Non-blocking properties らの関係性¶
wait-free => lock-free => obstruction-free
Deadlock-free and starvation-free が要求していること¶
-
These properties guarantee progress only if each thread eventually leaves each critical section.
-
deadlock-free requirement constrains both
- the scheduler, which cannot halt a thread in a critical section,
- and the software, which must use the lock correctly
Refs:¶
- papers:
- books:
- others:
Last update: 2021-03-02