Info
Pravidlo nejvýše jednou pro výraz
Proces splňuje pravidlo nejvýše jednou pokud odkazuje na nejvýše jednu proměnnou
x
, která může být změněna v jiném procesu a odkazuje na ni nejvýše jednou.
Info
Pravidlo nejvýše jednou pro přiřazení
x <- e
Buď výraz
e
splňuje pravidlo nejvýše jednou ax
není čtena v jiném procesu, neboe
neodkazuje na žádnou proměnnou, která může být změněna v jiném procesu.
- výraz (přiřazení), který splňuje pravidlo nejvýše jednou považujeme za atomický
- atomický výraz jsme označovali v hranatých závorkách
[výraz]
- atomický výraz jsme označovali v hranatých závorkách
Atomická operace
- Jedná se o operace, která se provede celá a nemůže být její provádění přerušeno jiným procesem (případně se neprovede vůbec)
- Jsou důležité při paralelním programování a synchronizaci
- Na úrovni assembleru se jedná o jednu instrukci
- Používají se taktéž v databázích (často nazývané jako transakce)
- test and set - nastaví hodnotu proměnné
a
a vrátí její původní hodnotu (použití v semaforech nebo zámcích) - swap - atomicky prohodí hodnoty 2 proměnných
- compare and swap - atomicky porovná 2 proměné a pouze při úspěchu jejich hodnoty prohodí
- fetch and add - přičte k
a
a vrátí původní hodnotua
- load link - načte hodnotu a sleduje zda se ji někdo snaží změnit
- store conditional - pokusí se zapsat novou hodnotu, úspěšné pouze pokud se nikdo jiný nepokusil zapsat, vrátí
t
nebonil