Plánování procesů

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Osamostatnění stránky)
 
(Rozšíření textu, vazba na Stavy procesu)
Řádka 1: Řádka 1:
[[Category:VSE]][[Category:Informatika]][[Category:Procesy]]
+
[[Category:VSE]][[Category:Informatika]][[Category:Procesy]][[Category:OSY]]
== Plánovač (scheduler) ==
+
*Součást jádra, zajišťuje přepínání procesů zařizuje součást jádra.
+
  
;Požadavky
+
* V počítači běží obvykle více procesů, než je dostupný počet jader procesoru.
*fairness
+
* Proto ve skutečnosti probíhá přepínání procesů — proces vždy běží jen chvíli a pak dočasně je „uspán“ — viz [[Životní cyklus procesu]].
**všechny procesy by měly dostat přibližně stejný prostor...
+
**ale priority jsou možné
+
*efficiency
+
**omezit čas, který využívá OS sám.
+
*odezva
+
**uživatel by měl mít pocit, že všechny procesy reagují hned.
+
*turnaround
+
**dávky úloh by měly skončit co nejdříve
+
*propustnost
+
**maximalizovat počet dokončených úloh
+
  
== Přepínání procesů ==
+
 
; Zahrnuje:
+
== Kro přepínání procesů provádí? ==
*Uložení hodnot registrů procesoru do operační paměti.
+
* Přepínání procesů řeší ''plánovač (scheduler)'', což je součást jádra operačního systému.
*Načtení hodnot registrů pro právě aktivovaný proces.
+
* Obecně tedy můžeme říci, že přepínání procesů řídí operační systém.
*Zneplatnění obsahu vyrovnávací paměti procesoru...
+
 
 +
 
 +
== Požadavky při přepínání ==
 +
* Dobře naprogramovaný plánovač by měl splňovat následující požadavky:
 +
 
 +
; Fairness (férovost)
 +
* všechny procesy by měly dostat přibližně stejný prostor...
 +
* přitom ale můžeme přidělovat prioritu některým procesům.
 +
; Efficiency (úspornost)
 +
* plánovač je také sám proces a volba, který proces má pokračovat, také zabere nějaký výpočetní výkon.
 +
* Dobrý plánovač procesů by měl být naprogramován efektivně tak, aby sám spotřeboval co nejméně výpočetního výkonu.
 +
* (Proto by výběr neměl být moc složitý — ale přitom nejlépe splňovat i ostatní požadavky.)
 +
; Odezva
 +
* uživatel by měl mít pocit, že všechny procesy reagují hned — nemělo by se stát, že některý proces se dlouho nedostane ke slovu.
 +
; Turnaround
 +
* Dávky úloh by měly skončit co nejdříve.
 +
* Pokud navazující procesy čekají na výsledek tohoto procesu, měl by pokud možno skončit co nejdříve, aby navazující procesy mohly pokračovat.
 +
; Propustnost
 +
* Maximalizovat počet dokončených úloh.
 +
* Pokud už procesu zbývá dokončit jen malou část práce, je neefektivní přepnout kontext — bylo by lepší proces dokončit.
 +
 
 +
<div class="Poznamka">Je evidentní, že některé požadavky si protiřečí. Plánovač procesů tedy musí volit vhodný kompromis a&nbsp;přitom sám nesmí být příliš složitý (viz požadavek na úspornost).</div>
 +
 
 +
 
 +
== Co se při přepnutí procesu děje? ==
 +
* ''Změna kontextu'', neboli přepnutí mezi dvěma procesy, je ve skutečnosti poměrně složitý úkon sám o&nbsp;sobě.
 +
 
 +
; Co se mimo děje při změně kontextu
 +
* Hodnoty [[CPU#Základní_pojmy|registrů procesoru]] se musí zapsat na vhodné místo do operační paměti (zásobník).
 +
* Do registrů se musí načíst správné hodnoty pro právě aktivovaný proces.
 +
* Musí se zneplatnit obsah vyrovnávací paměti procesoru.
 +
* Pokud byly některé paměťové stránky odloženy na disk (swappování), musí se načíst do paměti.
 +
* ...
  
 
<div class="Poznamka">Přepínání procesů samotné tedy zabírá čas a spotřebovává výkon procesoru.</div>
 
<div class="Poznamka">Přepínání procesů samotné tedy zabírá čas a spotřebovává výkon procesoru.</div>
  
*Viz také: [http://cs.wikipedia.org/wiki/Zm%C4%9Bna_kontextu Wikipedia.org > Změna kontextu]
+
 
 +
== Související stránky ==
 +
* [[Životní cyklus procesu]]
 +
 
 +
 
 +
== Zdroje ==
 +
* Viz také: [http://cs.wikipedia.org/wiki/Zm%C4%9Bna_kontextu Wikipedia.org > Změna kontextu]

Verze z 6. 10. 2020, 07:10



Obsah

Kro přepínání procesů provádí?


Požadavky při přepínání

Fairness (férovost)
Efficiency (úspornost)
Odezva
Turnaround
Propustnost
Je evidentní, že některé požadavky si protiřečí. Plánovač procesů tedy musí volit vhodný kompromis a přitom sám nesmí být příliš složitý (viz požadavek na úspornost).


Co se při přepnutí procesu děje?

Co se mimo děje při změně kontextu
Přepínání procesů samotné tedy zabírá čas a spotřebovává výkon procesoru.


Související stránky


Zdroje

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