Otázka č. 13 - Správa procesů
Správa procesů
Proces
- Procesy patří mezi základní prostředky všech OS
- Proces popisujeme z různých pohledů, které se navzájem doplňují
3 základní pohledy
Genetický
- Proces je instancí programu
- Program je nejčastěji reprezentován souborem, který obsahuje kód aplikace a její iniciální data( spustitelný soubor )
Dynamický
- Proces je postupným vykonáváním instrukcí
- Proces ovlivňuje a může být ovlivňován prostředky a okolím
Systémový pohled
-
Udržuje informace o užívaných prostředcích a jejich stavech
-
Důležitou vlastností procesu je jeho jednoznačná identifikace mezi všemi ostatními procesy
-
Proces z dynamického hlediska předpokládá změnu stavu, po provedení každé instrukce
-
Závislost budoucích stavů na stavu aktuálním je velmi vysoká
Kontext procesu
- Souhrn stavů všech prostředků, které proces v danou chvíli využívá
- Kontext se musí ukládat i obnovovat v rámci přepínání procesů při multitáskingu a to by trvalo až vteřiny o Řešení – Vyhražený prostředek
Vyhražený prostředek
- Vytvořena iluze že prostředek je využíván výhradně jedním procesem
- Je rozdělen a přidělován procesům
- Není nutné ukládat a obnovovat jeho stav
Průběh života procesu
- Proces začíná ve stavu Nový[N]
- Končí ve stavu Zombie[Z]
- Většinu života však proces stráví však ve dvou základních cyklech
- Kratší obsahuje stavy Wait[W] ( proces čeká na procesor )
- Running[R] kdy proces běží
- 2 podstavy
- RU a RK podle aktuální úrovně privilegovanosti
- Delší cyklus navíc obsahuje stav Sleep[S] (proces čeká na externí událost)
New[N]
-
Proces si alokuje své paměťové regiony v LAP (je mu přidělena paměť)
-
Nový proces je vždy vytvářen v podstatě vždy vytvářen jako požadavek jiného procesu
-
Na popud jiného procesu
-
Na základě požadavku uživatele
-
Na základě požadavku OS
-
Rodičovský proces zavolá systémovou službu, po vytvoření nového dětského procesu rutiny této služby nový proces vytvoří
-
- Vytvoření záznamu v tabulce procesů
-
- Alokace logických prostředků, především paměti
-
Během celé této doby se proces nachází ve stavu New[N], ale v této chvíli není schopen běhu
-
Teprve po úplném vytvoření je proces přesunut do stavu Waiting[W] a tím začíná jeho samostatná existence
-
Oba procesy(rodič i dítě) jsou zcela nezávislé a nemají žádné zvláštní vztahy
Waiting[W]
- Připravený přejít do stavu běžící Running[R]
- Jsou zde procesy, které jsou připraveny na vykonání, ale musí čekat na procesor, který je v danou chvíli obsazen
- Proto jsou procesy ve stavu waiting organizovány do jediné fronty FIFO - tato fronta je prioritní(s předbíháním)