Plánování procesů
Z MiS
(Rozdíly mezi verzemi)
(Osamostatnění stránky) |
m (Drobné opravy.) |
||
(Není zobrazena 1 mezilehlá verze od 1 uživatele.) | |||
Řádka 1: | Řádka 1: | ||
− | [[Category:VSE]][[Category:Informatika]][[Category:Procesy]] | + | [[Category:VSE]][[Category:Informatika]][[Category:Procesy]][[Category:OSY]] |
− | + | ||
− | + | ||
− | ; | + | * V počítači běží obvykle více procesů, než je dostupný počet jader procesoru. |
− | + | * 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]]. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == Přepínání procesů == | + | |
− | + | == Kdo přepínání procesů provádí? == | |
− | * | + | * Přepínání procesů řeší ''plánovač (scheduler)'', což je součást jádra operačního systému. |
− | * | + | * Obecně tedy můžeme říci, že přepínání procesů řídí operační systém. |
− | * | + | |
+ | |||
+ | == 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 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 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] |
Aktuální verze z 21. 10. 2020, 09:27
- V počítači běží obvykle více procesů, než je dostupný počet jader procesoru.
- 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.
Obsah |
Kdo přepínání procesů provádí?
- Přepínání procesů řeší plánovač (scheduler), což je součást jádra operačního systému.
- Obecně tedy můžeme říci, že přepínání procesů řídí operační systém.
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.
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?
- Změna kontextu, neboli přepnutí mezi dvěma procesy, je ve skutečnosti poměrně složitý úkon sám o sobě.
- Co se mimo děje při změně kontextu
- Hodnoty 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.
- ...
Přepínání procesů samotné tedy zabírá čas a spotřebovává výkon procesoru.
Související stránky
Zdroje
- Viz také: Wikipedia.org > Změna kontextu