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