3.2.Planovani procesu
- System s jednim procesorem muze v danou chvili obsluhovat pouze jeden proces. Prepinani mezi procesy
ukazuje Obr. 38. Procesy jsou pro pridelovani procesoru razeny do tzv. planovacich front.

Obr. 38 Prepinani CPU mezi procesy
3.2.1. Planovaci fronty
- V okamziku, kdy je proces vytvoren je jeho zaznam vlozen do fronty procesu (job queue). Tato
fronta obsahuje vsechny procesy v systemu.
- Procesy, ktere jsou ve fyzicke pameti a cekaji na prideleni procesoru jsou ve fronte pripravenych
(ready queue). Tato fronta je fronta ukazatelu. Hlavicka fronty pripravenych obsahuje ukazatel na
PCB bloky prvniho a posledniho procesu ve fronte. Kazdy PCB blok potom obsahuje polozku ukazatele na
PCB blok nasledujiciho procesu ve fronte pripravenych.
- Sejde-li se najednou vice pozadavku na urcite I/O zarizeni, OS tyto pozadavky manazeruje pomoci
fronty zarizeni (device queue). Kazde I/O zarizeni ma svou vlastni frontu zarizeni. (viz.
Obr. 39).

Obr. 39 Planovaci fronty OS
- Na Obr. 40 je diagram front OS. Kazdy obdelnik reprezentuje jednu
frontu. Je na nem mozno nalezt 2 zakladni
typy front: (1) frontu pripravenych; (2) fronty I/O zarizeni.
Kazdy kruh reprezentuje zdroj,
ktery obsluhuje tu kterou frontu a sipky urcuji toky pozadavku v systemu.
- Novy proces je inicializovan, zarazen do fronty pripravenych a ceka na prideleni CPU. V okamziku, kdy
se mu dostane je spusten a muze nastat nektera z nasledujicich moznosti:
- Proces pozaduje I/O operaci a je zarazen do prislusne I/O fronty.
- Proces vytvoril podproces a ceka na jeho dokonceni.
- Procesu je nasilne odebrana CPU v dusledku preruseni a je ulozen zpet do fronty pripravenych.
- V prvnich dvou pripadech se proces dostava do stavu cekajici a po dokonceni I/O operace je navracen zpet
do fronty pripravenych a tedy do stavu pripraven. Proces probiha timto cyklem dokud neni ukoncen. Potom je
vymazan ze vsech front a jeho PCB je uvolnen.

Obr. 40 Diagram front OS
3.2.2. Planovaci
- Zivotni cyklus procesu sestava z presunu mezi jednotlivymi planovacimi frontami OS. To, ktery proces je
treba zaradit do ktere fronty rozhoduje OS pomoci tzv. planovacu.
- V davkovych systemech byva casto mnoho procesu odlozeno v zalozni pameti nez budou spusteny. Tyto
procesy jsou spoolovany (nejcasteji na disku) pro pozdejsi spusteni. Planovac uloh (job scheduler)
vybira procesy z tohoto spoolu a zavadi je do fyzicke pameti ke spusteni. Planovac procesu (CPU
scheduler) vybira z pripravenych procesu ten, kteremu bude pridelen procesor.
- Tito dva planovaci se od sebe vyrazne lisi frekvencemi, s jakymi jsou spousteni. Planovac procesu
musi vybirat proces pro prideleni CPU mnohem casteji. Proces muze byt spusten jen na par milisekund, nez je
nucen napr. cekat na nejakou I/O operaci. Casto je planovac procesu spousten i kazdych 100 ms. Behem
pridelovani CPU musi tedy byt Planovac procesu velmi rychly. Pokud by preprideleni
procesoru trvalo jen 10 ms, potom 10/(10 + 100) = 9% z casu CPU je zabrano jen pro jeho pridelovani.
- Planovac uloh je naopak spousten s mnohem mensi frekvenci. Mezi vstupem noveho procesu do
systemu mohou ubehnout radove minuty. Planovac uloh sleduje pocet procesu v pameti (degree of
multiprograming). Delsi dobu mezi vstupy jednotlivych procesu do systemu muze planovac uloh
venovat rozhodovani, ktery proces dalsi do systemu zaradit.
- Planovac uloh musi vpoustet ulohy do systemu. Procesy se v podstate daji rozdelit na ty, ktere
prevazne vyuzivaji I/O zarizeni (I/O-bound process) nebo CPU (CPU-bound process). Je vhodne, aby
planovac procesu zatahoval do systemu rovnomerne oba tyto typy procesu. Pokud by vsechny procesy
vyuzivaly prevazne I/O zarizeni, potom by fronta pripravenych byla casto prazdna a planovac procesu by mel
malo co na praci. Pokud by vsechny procesy vyuzivaly prevazne CPU, potom by byly prazdne I/O fronty,
zarizeni by byla malo vyuzita a system by byl nevyvazeny.
- V nekterych systemech neni planovac uloh implementovany, nebo je minimalizovan. V
systemech se sdilenim casu velmi casto planovac neni a vsechny procesy jsou zavadeny primo do pameti a
predany planovaci procesu. Stabilita takovych systemu je limitovana jednak hardwarovymi aspekty (napr.
poctem terminalu v zavislosti na velikosti pameti) a take psychickymi vlastnostmi uzivatelu (pokud vykon
klesne pod prijatelnou uroven, rozumni odchazeji delat neco jineho).
- Zejmena systemy se sdilenim casu maji navic interaktivni uroven pridelovani. Myslenka spociva v tom,
ze nekdy muze pro OS byt vyhodne odstranit aktivni proces na cas z pamet i od CPU a snizit tak pocet uloh v
pameti. Pozdeji muze byt proces opet do pameti zaveden a spusten tak, ze pokracuje ve vypoctu od mista, kde
byl prerusen - swapping. Swapovani ridi planovac stredni doby (medium-term scheduler).
Swapovani je vhodne pro predelovani CPU nebo pokud naroky zmen v pameti presahuji jeji soucasnou volnou
cast apod.

Obr. 41 Swapovaci mechanismus v diagramu front
3.2.3. Prepinani kontextu
- Prideleni procesoru jine uloze vyzaduje ulozit stav procesu, ktery procesor opousti na nacist stav procesu,
ktery k procesoru prichazi. Tato vymena se nazyva prepinani kontextu (context switch).
- Prepinani kontextu predstavuje ciste rezii systemu, protoze ten behem prepinani kontextu nemuze delat
nic jineho. Rychlost prepinani je ruzna mezi jednotlivymi stroji. Je podminena vybavovaci rychlosti pameti,
poctem registru, ktere musi byt prekopirovany apod. Typicka je doba mezi 1 az 1000 ms.
- Prepinani kontextu zahrnuje nejdrive zmenu ukazatele do pameti na aktualni kontext. Ten je pak z pameti
nacten (pri vstupu procesu) nebo je do pameti ulozen aktualni stav (pokud proces procesor opousti).
Zpet
Obsah
Vpred