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/15 21:15] lachmanfrantisek |
mgr-szz:in-pos:1-pos [2020/04/12 16:56] (aktuální) |
||
---|---|---|---|
Řádek 244: | Řádek 244: | ||
* Toto je úkol dlouhodobého (strategického) plánovače | * Toto je úkol dlouhodobého (strategického) plánovače | ||
* Vybírá který proces lze zařadit mezi připravené procesy. | * Vybírá který proces lze zařadit mezi připravené procesy. | ||
+ | * Řeší přechod ze stavu ''nový'' do stavu ''připravený''. | ||
* Plánovač je spouštěn je relativně málo často. | * Plánovač je spouštěn je relativně málo často. | ||
* Typicky při ukončení jednoho procesu rozhodne, kterou úlohu dále vybrat k zavedení do paměti a spuštění. | * Typicky při ukončení jednoho procesu rozhodne, kterou úlohu dále vybrat k zavedení do paměti a spuštění. | ||
* Nemusí být super rychlý. | * Nemusí být super rychlý. | ||
* Určuje stupeň multiprogramování. | * Určuje stupeň multiprogramování. | ||
+ | * Nemusí být ve všech systémech přítomen. | ||
=== Krátkodobý plánovač === | === Krátkodobý plánovač === | ||
Řádek 369: | Řá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 376: | Řá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 381: | Řá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 391: | Řá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 503: | Řá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 560: | Řá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> | ||