Proces
- proces určuje stav výpočtu v danou chvíli
- je buď přímo vykonávám nebo reprezentován jako pokračování
- v OS charakterizován pomocí: kód programu, paměťový prostor, data, zásobník, registry
- context switch … přepínání procesů
- proces se může nacházet v několika stavech
- běžící - procesor vykonává instrukce procesu
- připravený - proces může být vykonán
- blokovaný - nemůže být vykonán, může ho odblokovat bežící proces
Sdílené vazby
- umožní komunikaci mezi procesy
- nový proces sdílí s procesem, který jej vytvořil všechny vazby definované v době vzniku
Paralelní program
- paralelní program … určuje více procesů, které spolupracují na splnění úkolu
- např. UI, OS, paralelní algoritmy, databázové systémy
- velký úkol se rozdělí na menší části, které se vykonávají naráz
- přináší určitá úskalí, která je nutno řešit (sdílení vazeb, sdílení zdrojů, přepínání procesů)
Plánovač
- uloží běžící proces a následně obnoví náhodně nebo jinak vybraný proces
- zajišťuje přepínaní mezi procesy, tak aby se dostaly ke zdrojům
- spouštíme po
- náhodně zvoleném čase (čas jako počet kroků zásobníkového stroje)
- nebo při vyprázdnění programového zásobníku
Algoritmy pro plánování
- First comed first served
- první proces získá procesor, zbytek čeká ve frontě
- Shortes job first
- vybírá proces, který spotřebuje nejméně času
- dobrá průchodnost, ale je nutno odhadnout potřebný čas
- Shortest remaining time next
- pokud následující potřebuje méně času, tak je přepnut
- Round robin
- každý proces má časové kvantum (> než je nutné)
- zbytek řazen ve frontě
- je spravedlivý
- Prioritní fronta
- každý proces má danou prioritu (dána staticky či dynamicky, po I/O vyšší)
- pro každou prioritu zvlášť fronta
- procesy s nízkou prioritou mohou vyhladovět
- Shortes process next
- odhad podle předchozí aktivity procesu
- vhodný pro interaktivní OS
- Guaranteed scheduling
- každý proces dostane stejně času → postupně se určuje poměr kolik času měl vs kolik potřeboval
- volí se ten co má poměr nejmenší
- Lottery scheduling
- náhodně volení losů (možnsot výměny losů mezi procesy)
- Fair share scheduling
- podle skupin procesů
Multitasking
- zjednodušeně - jeden procesor, více procesů
- procesor střídavě vykonává jednotlivé procesy
1. Kooperativní multitasking
- proces se musí dobrovolně zříci procesoru
- např. starší OS, JavaScript
2. Preemptivní multitasking (pro nás hlavní)
-
systém rozhoduje o odebrání procesoru procesu
-
např. současné OS
-
atomická operace … během vykonání je NELZE přerušit
-
historie … posloupnost stavů atomických operací
Slabá férovost
- historie je slabě férová pokud v každém stavu platí: “jestliže se proces chystá vykonat operaci, musí se dále v historii objevit”
- plánovač je slabě férový pokud jsou slabě férová všechny jeho historie