Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
|
mgr-szz:in-pos:1-pos [2019/06/16 19:33] lachmanfrantisek |
mgr-szz:in-pos:1-pos [2020/04/12 16:56] (aktuální) |
||
|---|---|---|---|
| Řádek 371: | Řádek 371: | ||
| </box> | </box> | ||
| - | ===== Synchronizace procesů ===== | + | ===== Komunikace a synchronizace procesů ===== |
| Synchronizace běhu procesů = "Jeden proces čeká na událost z druhého procesu." | Synchronizace běhu procesů = "Jeden proces čeká na událost z druhého procesu." | ||
| Řádek 378: | Řádek 378: | ||
| Se souběžně běžícími procesy se můžeme setkat buď v přímo paralelním prostředí, kde je jedna paměť sdílena více procesy, nebo v prostředí distribuovaném, kde má každý proces vlastní lokální paměť. Hlavním problémem výskytu souběžných procesů je sdílení prostředků (paměť, zařízení, soubory, atd.) Tento problém se vyskytuje dokonce i v mnohouživatelských OS, kdy se např. řeší sdílení paměti mezi hlavní linií výpočtu v jádře a obslužnou rutinou přerušení při I/O operaci. Především při sdíleném přístupu do paměti nebo do souboru mohou vznikat neočekávané problémy – časové závislé chyby. | Se souběžně běžícími procesy se můžeme setkat buď v přímo paralelním prostředí, kde je jedna paměť sdílena více procesy, nebo v prostředí distribuovaném, kde má každý proces vlastní lokální paměť. Hlavním problémem výskytu souběžných procesů je sdílení prostředků (paměť, zařízení, soubory, atd.) Tento problém se vyskytuje dokonce i v mnohouživatelských OS, kdy se např. řeší sdílení paměti mezi hlavní linií výpočtu v jádře a obslužnou rutinou přerušení při I/O operaci. Především při sdíleném přístupu do paměti nebo do souboru mohou vznikat neočekávané problémy – časové závislé chyby. | ||
| </note> | </note> | ||
| + | |||
| Řádek 383: | Řádek 384: | ||
| * **Komunikaci mezi procesy** | * **Komunikaci mezi procesy** | ||
| - | * komunikace – způsob synchronizace, koordinace různých aktivit | + | * zasílání zpráv |
| - | * může dojít k uváznutí (každý proces čeká na zprávu od nějakého jiného procesu) | + | * synchronizace |
| - | * může dojít ke stárnutí (dva procesy si opakovaně posílají zprávy zatímco třetí proces čeká na zprávu nekonečně dlouho) | + | * sdílená paměť |
| + | * vzdálené volání procedur (RPC) | ||
| * **Sdílení prostředků** | * **Sdílení prostředků** | ||
| Řádek 393: | Řádek 395: | ||
| * operace čtení mohou být realizovány souběžně | * operace čtení mohou být realizovány souběžně | ||
| * pro zabezpečení integrity dat se používají kritické sekce | * pro zabezpečení integrity dat se používají kritické sekce | ||
| + | |||
| + | |||
| + | |||
| + | Komunikace – způsob synchronizace, koordinace různých aktivit | ||
| + | * může dojít k uváznutí (každý proces čeká na zprávu od nějakého jiného procesu) | ||
| + | * může dojít ke stárnutí (dva procesy si opakovaně posílají zprávy zatímco třetí proces čeká na zprávu nekonečně dlouho) | ||
| + | |||
| Řádek 505: | Řádek 514: | ||
| * zamezujeme současné platnosti všech nutných podmínek | * zamezujeme současné platnosti všech nutných podmínek | ||
| * prostředek se nepřidělí, pokud by hrozilo uváznutí (hrozí stárnutí) | * prostředek se nepřidělí, pokud by hrozilo uváznutí (hrozí stárnutí) | ||
| - | |||
| <box 95% round blue|Bankéřův algoritmus > | <box 95% round blue|Bankéřův algoritmus > | ||
| Řádek 562: | Řádek 570: | ||
| * postupně předbíhat uváznuté procesy | * postupně předbíhat uváznuté procesy | ||
| * zamezit současné platnosti nutných podmínek | * zamezit současné platnosti nutných podmínek | ||
| + | |||
| + | |||
| + | <box 90% blue|Resource-Allocation Graph, RAG> | ||
| + | * množina uzlů (procesy ⚫, zdroje ⬛) | ||
| + | * hrany | ||
| + | * požadavků (proces -> zdroj) | ||
| + | * přidělení (zdroj -> proces) | ||
| + | * zdroje mohou mít více instancí | ||
| + | |||
| + | Jestliže se v RAG nevyskytuje cyklus: | ||
| + | * => k uváznutí nedošlo | ||
| + | Jestliže se v RAG vyskytuje cyklus: | ||
| + | * existuje pouze jedna instance daného typu => k uváznutí došlo | ||
| + | * existuje více instancí daného typu => k uváznutí může dojít | ||
| + | </box> | ||
| + | |||
| + | |||
| + | <box 90% blue|Wait-for-Graph, WFG> | ||
| + | * vztahy pouze mezi procesy | ||
| + | * hrana = proces čeká na uvolnění zdroje druhým procesem | ||
| + | |||
| + | * Systém uvázl, pokud je v grafu cyklus. | ||
| + | </box> | ||