Concurrency: state models and design patterns Flashcards
monitor
a monitor is a synchronization construct that allows threads to have both mutual exclusion and the ability to wait (block) for a certain condition to become true
Monitors also have a mechanism for signaling other threads that their condition has been met. A monitor consists of a mutex (lock) object and condition variables. A condition variable is basically a container of threads that are waiting for a certain condition. Monitors provide a mechanism for threads to temporarily give up exclusive access in order to wait for some condition to be met, before regaining exclusive access and resuming their task.
model
an abstraction of the real world that makes it
easier to focus on the points of interest
FSP
finite state process
LTS
labelled transition system
state space
The state space of two composed processes is
(at most) the Cartesian product of the individual state spaces
monitor vs. lock
tbd
trace
the sequence of actions produced by the execution of a process (or set of processes)
various kinds of liveness problems
- Starvation (AKA “indefinite postponement”)
- Dormancy
- Premature termination
- Deadlock
how to state liveness properties?
…
Four necessary and sufficient conditions for deadlock
- Serially reusable resources
- Incremental acquisition
- No pre-emption
- Wait-for cycle
progress property
asserts that whatever state a system is in, it is always the case that a specified action will eventually be executed
Specialist Parallelism
t
flow architectures
t
Software Architecture
t
Layered
Architectures
t