Plánování procesů v interaktivních systémech

Z FAV wiki
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (kategorizace)
 
(Není zobrazeno 5 mezilehlých verzí od 1 uživatele.)
Řádka 1: Řádka 1:
−
// dodělat
 
−
 
 
Základní stavy procesu
 
Základní stavy procesu
 
* běžící
 
* běžící
Řádka 20: Řádka 18:
 
* Preemptivni vs. non-preemptive planovani
 
* 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
+
== Plánování v interaktivních systémech ==
−
· OS rozhodne, zda dovolí procesu pokračovat nebo zda dá CPU jinému procesu
+
- preemptivní
−
Algoritmus cyklické obsluhy
+
 
−
· Každému procesu je přiřazen časový interval = časové kvantum, po které může běžet
+
* Základní problém - každý proces je jedinečný a nepredikovatelný, nedá se říci, jak dlouho poběží, než se zablokuje
−
· Pokud běží ještě na konci kvanta, je provedena preempce a je naplánován a spuštěn další připravený proces
+
* Aby proces neběžel příliš dlouho, má počítač vestavěné hodiny, které provádějí pravidelné přerušení
−
· 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
+
* Při přerušení se vyvolá obslužný podprogram přerušení v jádře
−
· Délka časového kvanta:
+
* OS rozhodne, zda dovolí procesu pokračovat nebo zda dá CPU jinému procesu
−
- 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í
+
== Algoritmus cyklické obsluhy (Round RObin) ==
−
- 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
+
* Každému procesu je přiřazen časový interval = časové kvantum, po které může běžet
−
Plánovač spravedlivého sdílení
+
* Pokud běží ještě na konci kvanta, je provedena preempce a je naplánován a spuštěn další připravený proces
−
· Přidělovat čas každému uživateli proporciálně bez ohledu na to, kolik má 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
−
Plánování pomocí loterie
+
* Délka časového kvanta:
−
· Procesy obdrží tikety (losy)
+
** Krátké: vysoká režie
−
· Plánovač vybere náhodně jeden tiket
+
** Dlouhé: vyšší efektivita, může zhoršovat dobu odpovědi
−
· Vítězný proces obdrží cenu - 1 kvantum času na CPU
+
* 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é)
−
· 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
+
 
 +
== 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

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


Obsah

[editovat] Plánování v interaktivních systémech

- preemptivní


[editovat] Algoritmus cyklické obsluhy (Round RObin)


[editovat] Prioritní plánování


[editovat] Plánovač spravedlivého sdílení


[editovat] Plánování pomocí loterie


[editovat] Plánování vláken

Buď jsou vlákna plánována v OS nebo ve vlastním procesu (obvykle pomocí RR)


Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje