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 <- eBuď výraz
esplňuje pravidlo nejvýše jednou axnení čtena v jiném procesu, neboeneodkazuje 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é
aa 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
aa 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í
tnebonil