Plánování procesů v interaktivních systémech
(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) {...) |
|||
| Řá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 | |
| − | + | ||
| − | dat potrebnych k | + | 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 | ||
· Základní problém - každý proces je jedinečný a nepredikovatelný, nedá se říci, jak dlouho poběží, než se zablokuje | · Základní problém - každý proces je jedinečný a nepredikovatelný, nedá se říci, jak dlouho poběží, než se zablokuje | ||
Verze z 23. 8. 2011, 23:12
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
· 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 · 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 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 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