Plánování procesů v interaktivních systémech
Z FAV wiki
(Rozdíly mezi verzemi)
(Založena nová stránka: Zakladni stavy procesu � bezici � pripraven -ceka na CPU � blokovan { ceka na zdroj nebo zpravu � novy (new) { proces byl prave vytvoren � ukonceny (terminated) {...) |
m (kategorizace) |
||
| (Není zobrazeno 7 mezilehlých verzí od 1 uživatele.) | |||
| Řádka 1: | Řádka 1: | ||
| − | + | Základní stavy procesu | |
| − | + | * běžící | |
| − | + | * připravený - čeká na CPU | |
| − | + | * blokovaný - čeká na zdroj nebo zprávu | |
| − | + | * novy (new) - proces byl právě vytvořen | |
| − | + | * ukončený (terminated) - proces byl ukončen | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | Správce procesů - udržuje tabulku procesů. Záznam o konkretním procesu - PCB (Process Control Block) - souhrn dat potrebnych k řízení procesu. | |
| − | + | ||
| − | + | Plánovač vs. dispatcher | |
| − | + | ||
| − | Algoritmus cyklické obsluhy | + | * dispatcher předává řízení procesu vybranému short time planovacem |
| − | + | ** prepnuti kontextu | |
| − | + | ** prepnuti do user modu | |
| − | + | ** skok na vhodnou instrukci daneho programu | |
| − | + | * vice pripravenych procesu k behu { planovac vybere, ktery spusti jako prvni | |
| − | + | * planovac procesu (scheduler) - pouziva planovaci algoritmus (scheduling algorithm) | |
| − | + | * Preemptivni vs. non-preemptive planovani | |
| − | Prioritní plánování | + | |
| − | + | ||
| − | + | ||
| − | + | == Plánování v interaktivních systémech == | |
| − | Plánovač spravedlivého sdílení | + | - preemptivní |
| − | + | ||
| − | Plánování pomocí loterie | + | * Základní problém - každý proces je jedinečný a nepredikovatelný, nedá se říci, jak dlouho poběží, než se zablokuje |
| − | + | * Aby proces neběžel příliš dlouho, má počítač vestavěné hodiny, které provádějí pravidelné přerušení | |
| − | + | * Při přerušení se vyvolá obslužný podprogram přerušení v jádře | |
| − | + | * OS rozhodne, zda dovolí procesu pokračovat nebo zda dá CPU jinému procesu | |
| − | + | ||
| − | + | ||
| + | |||
| + | == Algoritmus cyklické obsluhy (Round RObin) == | ||
| + | |||
| + | * Každému procesu je přiřazen časový interval = časové kvantum, po které může běžet | ||
| + | * Pokud běží ještě na konci kvanta, je provedena preempce a je naplánován a spuštěn další připravený proces | ||
| + | * Pokud proces skončil, nebo se zablokoval ještě před spotřebováním časového kvanta, je také naplánován a spuštěn další připravený proces | ||
| + | * Délka časového kvanta: | ||
| + | ** Krátké: vysoká režie | ||
| + | ** Dlouhé: vyšší efektivita, může zhoršovat dobu odpovědi | ||
| + | * znevýhodnění I/O vázaných úloh, protože zpravidla využijí pouze malou část kvanta a zablokují se (výpočetně vázané úlohy jsou zvýhodněné) | ||
| + | |||
| + | |||
| + | == Prioritní plánování == | ||
| + | |||
| + | * Interaktivní procesy mohou mít vyšší prioritu než procesy běžící na pozadí | ||
| + | ** Staticky - např. při startu procesu | ||
| + | ** Dynamicky - např. pokud mají I/O procesy vyšší prioritu, budou se moci po krátkém použití CPU opět zablokovat. S délkou běhu klesá dynamická priorita | ||
| + | * celková priorita = statická + dynamická | ||
| + | * rozdělení procesů do priotitních tříd, v nich je využíváno round robin | ||
| + | |||
| + | |||
| + | |||
| + | == Plánovač spravedlivého sdílení == | ||
| + | |||
| + | * Přidělovat čas každému uživateli proporciálně bez ohledu na to, kolik má procesů | ||
| + | |||
| + | |||
| + | == Plánování pomocí loterie == | ||
| + | |||
| + | * Procesy obdrží tikety (losy) | ||
| + | * Plánovač vybere náhodně jeden tiket | ||
| + | * Vítězný proces obdrží cenu - 1 kvantum času na CPU | ||
| + | * Důležitější procesy mohou obdržet více tiketů, aby se zvýšila jejich šance na výhru | ||
| + | * Spolupracující procesy si mohou předávat losy | ||
| + | |||
| + | |||
| + | == Plánování vláken == | ||
| + | Buď jsou vlákna plánována v OS nebo ve vlastním procesu (obvykle pomocí RR) | ||
| + | |||
| + | |||
| + | {{fav-kiv-bzinf}} | ||
| + | |||
| + | |||
| + | [[Kategorie:fav-kiv-bzinf]] | ||
Aktuální verze z 20. 2. 2014, 06:48
Základní stavy procesu
- běžící
- připravený - čeká na CPU
- blokovaný - čeká na zdroj nebo zprávu
- novy (new) - proces byl právě vytvořen
- ukončený (terminated) - proces byl ukončen
Správce procesů - udržuje tabulku procesů. Záznam o konkretním procesu - PCB (Process Control Block) - souhrn dat potrebnych k řízení procesu.
Plánovač vs. dispatcher
- dispatcher předává řízení procesu vybranému short time planovacem
- prepnuti kontextu
- prepnuti do user modu
- skok na vhodnou instrukci daneho programu
- vice pripravenych procesu k behu { planovac vybere, ktery spusti jako prvni
- planovac procesu (scheduler) - pouziva planovaci algoritmus (scheduling algorithm)
- Preemptivni vs. non-preemptive planovani
Obsah |
[editovat] Plánování v interaktivních systémech
- preemptivní
- Základní problém - každý proces je jedinečný a nepredikovatelný, nedá se říci, jak dlouho poběží, než se zablokuje
- Aby proces neběžel příliš dlouho, má počítač vestavěné hodiny, které provádějí pravidelné přerušení
- Při přerušení se vyvolá obslužný podprogram přerušení v jádře
- OS rozhodne, zda dovolí procesu pokračovat nebo zda dá CPU jinému procesu
[editovat] Algoritmus cyklické obsluhy (Round RObin)
- Každému procesu je přiřazen časový interval = časové kvantum, po které může běžet
- Pokud běží ještě na konci kvanta, je provedena preempce a je naplánován a spuštěn další připravený proces
- Pokud proces skončil, nebo se zablokoval ještě před spotřebováním časového kvanta, je také naplánován a spuštěn další připravený proces
- Délka časového kvanta:
- Krátké: vysoká režie
- Dlouhé: vyšší efektivita, může zhoršovat dobu odpovědi
- znevýhodnění I/O vázaných úloh, protože zpravidla využijí pouze malou část kvanta a zablokují se (výpočetně vázané úlohy jsou zvýhodněné)
[editovat] Prioritní plánování
- Interaktivní procesy mohou mít vyšší prioritu než procesy běžící na pozadí
- Staticky - např. při startu procesu
- Dynamicky - např. pokud mají I/O procesy vyšší prioritu, budou se moci po krátkém použití CPU opět zablokovat. S délkou běhu klesá dynamická priorita
- celková priorita = statická + dynamická
- rozdělení procesů do priotitních tříd, v nich je využíváno round robin
[editovat] Plánovač spravedlivého sdílení
- Přidělovat čas každému uživateli proporciálně bez ohledu na to, kolik má procesů
[editovat] Plánování pomocí loterie
- Procesy obdrží tikety (losy)
- Plánovač vybere náhodně jeden tiket
- Vítězný proces obdrží cenu - 1 kvantum času na CPU
- Důležitější procesy mohou obdržet více tiketů, aby se zvýšila jejich šance na výhru
- Spolupracující procesy si mohou předávat losy
[editovat] Plánování vláken
Buď jsou vlákna plánována v OS nebo ve vlastním procesu (obvykle pomocí RR)