You are on page 1of 15

Operan systmy Plnovanie procesov

4.

4. Plnovanie procesov

lnovanie asu procesora patr do zkladnch funkci operanho systmu. Prideovanm procesora jednotlivm procesom sa prca celho potaovho systmu zefektvni.

4.1 Zkladn princpy


Plnovanie asu procesora je zkladom multiprogramovania. Prepnanm CPU medzi procesmi OS zefektvuje prcu potaa. Zkladnou mylienkou multiprogramovania je, aby stle bealo niekoko procesov, aby sa procesor maximlne vyuval. V jednoprocesorovch systmoch samozrejme be v danom ase vdy len jeden proces v danom ase. Ak v systme je viac procesov, tie musia aka, km sa procesor uvon. Idea multiprogramovania je jednoduch. Proces sa vykonva, km nemus z uritch dvodov aka napr. na dokonenie V/V opercie. V jednoduchom OS procesor v tejto dobe bude von a nebude vykonva iadnu uiton prcu. V multiprogramovom systme sa pokame tento as vyui efektvnejie. V pamti je viac programov naraz. Ak beiaci proces je zablokovan a mus aka, OS mu odoberie procesor a pridel ho aliemu procesu. Plnovanie patr medzi najzkladnejie lohy OS. Skoro vetky prostriedky sa musia pred pouitm naplnova. Plnovanie asu procesora, ako najzkladnejieho prostriedku tvor podstatn as nvrhu OS. 4.1.1 Cykly prce procesora a perifri Pozorovanm prce procesov sa zistilo, e vykonanie procesu pozostva z cyklov prce procesora a akania na V/V opercie. Prca procesu zana cyklom procesora a pokrauje striedanm cyklu procesora sa so stavmi akania na V/V. Proces kKon zasa cyklom procesora, aby prca procesu mohola by dokonen tandardnmi dokonovacmi operciami.

47

Operan systmy Plnovanie procesov

4.

fre kvencia 180 160 140 120 100 80 60 40 20 0 8 16 24 32 40 trvanie cyklu ( v m s)

Obr. 4.1 Histogram cyklov CPU

Aby bolo mon ohodnoti proces, bolo zmeran trvanie cyklov prce procesora.

Aj ke od procesu k procesu a od potaa k potau sa hodnoty tchto asov mu znane li, ich frekvenn krivka m charakter, ak je ukzan na obr.4.1, t.j. exponencila alebo hyperexponencila. Z nej meme vyta, e mnostvo krtkych intervalov vyuitia procesora je vek a mnostvo dlhch intervalov akania na V/V je mal. Programy, viazan prevane na V/V bud ma vemi mal peridy vyuitia procesora a naopak, programy viazan na procesor bud ma tieto peridy vemi dlh. Tieto rozdiely s dleit pre sprvny vber plnovacieho algoritmu pre as procesora. 4.1.2 Plnova asu procesora Kedykovek procesor zostane von, OS mus vybra jeden z procesov z frontu pripravench procesov pre vykonanie. Vber uskuton krtkodob plnova asu procesora, alebo jednoducho plnova. Ten vyberie jeden z procesov v pamti a pridel mu procesor. Front pripravench procesov nemus by vdy zoraden v porad prchodu (FIFO). Poda rznych algoritmov plnovania, tento front me by FIFO, prioritn front, strom alebo jednoduch neusporiadan zreazen zoznam. Zznamy, ktor tvoria tento front, s obyajne riadiace bloky procesov (PCB). 4.1.3 Preemptvne plnovanie Rozhodovanie o plnovan asu procesora sa me urobi vdy pri jednom z nasledovnch prechodov: 1. Ke proces prepna zo stavu beiaci do stavu akajci (akanie na dokonenie V/V opercie alebo akanie na ukonenie potomka). 2. Ke proces prepna zo stavu beiaci do stavu pripraven. 3. Ke proces prepna zo stavu akajci do stavu pripraven. 4. Ke proces kon. 48

Operan systmy

4. Plnovanie procesov

Pri prechodoch v bodoch 1 a 4 nemme monos vberu. Nov proces sa mus vybra pre vykonanie. Ke sa plnovanie vykonva len v prpadoch 1 a 4 hovorme, e sa jedn o nepreemptvne plnovanie, in plnovanie je preemptvne. Pri nepreemptvnom plnovan, ke sa raz procesor pridel procesu, proces sa vykonva a do svojho ukonenia, alebo pokia nevznikne poiadavka na V/V. Tto metda plnovania je pouit v OS Microsoft Windows. Pre urit HW platformy toto je jedin mon metda plnovania, pretoe nevyaduje pecilny HW (napr. asovatimer). Preemptvne plnovanie je nronejie. V tomto prpade je treba rta s procesmi, ktor zdieaj dta, a je potrebn udriava tieto dta v konzistentnom tvare pri prepnut kontextu procesu. To vyaduje dodaton synchronizan prostriedky, ako uvedieme alej. Preemptvne plnovanie m vplyv na nvrh jadra operanho systmu. Poas spracovania systmovho volania jadro vykonva innos v prospech procesu. Poas tohto spracovania je mon, e jadro mus meni dleit dta (napr. V/V fronty). Ak poas tejto innosti je proces prepnut, systmov dta zostan v nekonzistentnom stave, o je neprpustn stav. Niektor OS, vrtane viny verzi Unix-u, rieia tento problm akanm na ukonenie systmovho volania alebo na V/V operciu, pred prepnutm kontextu procesu. 4.1.4 Dispeer al komponent, ktor sa zastuje na plnovan asu procesora, je dispeer. Dispeer je modul, ktor umouje procesoru riadi procesy, vybran krtkodobm plnovaom. Jeho funkcie s: prepnanie kontextu, prepnanie do uvateskho reimu, skok na prslun adresu po optovnom spusten programu. Dispeer mus by o najrchlej, pretoe sa vol pri kadom prepnut procesov.

4.2 Kritria plnovania


Jednotliv plnovacie algoritmy maj rzne vlastnosti a mu uprednostova rzne skupiny procesov. Pri vbere algoritmu pre dan situciu musme ma na vedom vlastnosti jednotlivch algoritmov. Pre posudzovanie vlastnost plnovacch algoritmov je mon zvoli rzne kritria. Poda toho, ktor charakteristiky s zvolen pre porovnanie algoritmov, je mon zska znan rozdiely pri urovan optimlneho algoritmu. Pouvan kritria s nasledovn: Vyuitie procesora. Snaha je zamestnva procesor o najviac. Vyuitie procesora me by od 0 do 100 percent. V relnom systme vyuitie procesora by malo by v hraniciach od 40 % (pre malo zaaen systm) do 90 % (pre silne zaaen systm) percent. 49

Operan systmy Plnovanie procesov

4.

Priepustnos. Ak procesor spracovva proces, vykonva prcu. Jedna z monost merania vykonanej prce je poet ukonench procesov pre dan asov jednotku., Tto veliinu ktor nazvame priepustnos. as vykonania. asov interval od vzniknutia procesu do jeho ukonenia sa nazva as vykonania. Je to set asuov na akaniae napre vstup do pamte , asu strvenho vo fronte pripravench procesov, asu vykonvania a asu pre V/V opercie. as akania. Algoritmy plnovania neovplyvuj as, ktor proces venuje vykonvaniu V/V operci, ale len as , ktor proces strvi akanm vo fronte pripravench procesov. as odozvy. V interaktvnom systme as vykonania nemus by najvhodnejie kritrium. asto proces produkuje nejak vsledky a potom pokrauje vo vpote alch, km sa predchdzajce dostan k uvateovi. Inm ukazovateom je as od vystavenia poiadavky do prvej odozvy na tto poiadavku, ktor nazvame as odozvy.

Obecne je iadce maximalizova vyuitie procesora a priepustnos a minimalizova as vykonania, as akania a as odozvy. Avak niekedy s okolnosti, ke je iadce optimalizova maximlne a minimlne hodnoty namiesto priemernch hodnt. Napr. ak chceme aby vetci uvatelia dostali dobr sluby, budeme sa snai minimalizova maximlnu dobu odozvy.

4.3 Plnovacie algoritmy


Plnovanie asu procesora riei problm, ktormu procesu z frontu pripravench procesov m by pridelen procesor. V nasledujcom oddieliy popeme niektor z tchto algoritmov. 4.3.1 Spracovanie v porad prchodu (FCFS - First Come, First Served) Najjednoduch z algoritmov plnovania je algoritmus spracovania v porad prchodu. Poda tohoto algoritmu proces, ktor poiadal prv o pridelenie procesora ho dostane ako prv. Implementcia tohoto algoritmu sa uskutouje pomocou frontu FIFO. Ke proces vstpi do frontu pripravench procesov, jeho riadiaci blok (PCB) sa zarad na koniec frontu. Ke sa procesor uvon, pridel sa procesu, ktor je na ele frontu. Beiaci proces sa odstrni z frontu. Stredn doba akania pri pouit FCFS je asto vemi dlh. Predpokladajme, e nasledovn mnoina procesov vznik v ase 0 a m poiadavky na as procesora, ktor s zadan v milisekundch (alej ms):

50

Operan systmy

4. Plnovanie procesov
Proces P1 P2 P3 Poadovan as procesora 24 3 3

Ak procesy prdu v porad P1, P2, P3 a s obsluhovan v porad FCFS, potom zskame tento diagram:
0 24 27 30

P1

P2

P3

Pre asy akania zskame nasledovn hodnoty. Proces P1 nebude aka, P2 bude aka 24 ms, P3 bude aka 27 ms. Take priemern doba akania je (0 + 24 + 27)/3=17 ms. Ak procesy prdu v porad P2, P3, P1, potom vsledok pre as akania bude (6 + 0 + 3)/3=3 ms. Podstatn je znenie asu akania. Take priemern as akania pri plnovan poda poradia prchodu je obecne dos vek a men sa znane poda poiadaviek procesov na as procesora. Algoritmus plnovania v porad prchodu nie je preemptvny. Ke proces dostane raz pridelen procesor, vykonva sa a do ukonenia, alebo km nepoiada o V/V operciu. Plnovanie procesov poda poradia ich prchodu me nemerne predi as akania krtkych procesov. Tento algoritmus je ako pouiten v time-sharing-ovch systmoch, kde je dleit, aby kad uvate zskaval as procesora v pravidelnch intervaloch a nie je iadce, aby jeden proces zadral procesor na dlhiu dobu. 4.3.2 Najkrat proces najskr (SJF - Shortest Job First) Tento algoritmus poskytuje k plnovaniu in prstup. Poradie spracovania procesov sa uruje poda poadovanej doby obsluhy procesu. Ke sa procesor uvon, pridel sa procesu, ktor poaduje najmeniu dobu na svoje dokonenie (ak proces medzitm bol iastone spracovan). Ak dva procesy maj rovnak poadovan doby obsluhy, vyberaj sa poda poradia prchodu. itate si urite vimne, e nzov algoritmu nezodpoved celkom jeho popisu, ale v literatre sa ujal pod tmto nzvom, preto je pouit aj v tomto texte. Pre ilustrciu znova pouijeme mnoinu procesov s rznymi poiadavkami na as procesora.

51

Operan systmy Plnovanie procesov Proces Poadovan as procesora P1 6 P2 P3 P4 8 7 3 Doba akania 3 16 9 0

4.

Poda algoritmu SJF poradie spracovania procesov bude P4 , P1 , P3 , P2.


0 3 9 16 24

P4

P1

P3

P2

Priemern doba akania je (3+16+9+0)/4=7 ms. Ak pouijeme algoritmus FCFS, priemern doba akania bude 10.25 ms. Algoritmus SJF je optimlny v tom, e dva najlepie vsledky v priemernej dobe akania pre dan mnoinu procesov. Nedostatkom tohoto algoritmu je, e je potrebn dopredu vedie dku poadovanej doby obsluhy. Pri dvkovom spracovan meme poui asov limit pre spracovanie dvky, ktor zadva uvate. Tak s uvatelia nten odhadova poadovan doby presne, pretoe to im zaist rchlejiu odozvu. Tento algoritmus sa asto pouva pri dlhodobom plnovan. Aj ke algoritmus SJF dva optimlne vsledky, ned sa poui pre krtkodob plnovanie, pretoe nie je znma dka alej poiadavky procesu na as procesora. Jeden mon prstup je odhad tejto hodnoty, ktor nevieme, ale meme predpoveda. Oakvame, e alia poiadavka bude ma dku podobn predchdzajcim. Potom na zklade predpovedanch dok meme vybra proces s najmenou poiadavkou. alia poiadavka sa obyajne odhaduje ako exponencilny priemer nameranch dok predchdzajcich poiadaviek. Nech tn je dka n-tej poiadavky na as procesora a nech n+1 je naa predpove dky alej poiadavky. Potom pre , kde 0 1 definujeme

n+1 = .(tn + (1-). n


Tento vzorec definuje exponencilny priemer. Hodnota tn obsahuje posledn informciu, n obsahuje histriu. Parameter definuje relatvnu vhu blzkej a vzdialenejej histrie naich predpoved. Ak = 0, potom n+1 = n t.j. blzka histria nem vplyv; ak = 1, potom n+1 = tn t.j. vzdialenejia histria nem vplyv. Najastejie = 1/2, o znamen, e blzka a vzdialenejia histria predpoved rovnako ovplyvuje nov predpove. Algoritmus SJF me by preemptivny a nepreemptvny . Vber sa rob, ke do frontu pripravench procesov prde nov proces a predchdzajci sa ete vykonva. Nov proces me ma menie 52

Operan systmy

4. Plnovanie procesov

poiadavky na as procesora ako zostvajce poiadavky prve vykonvanho procesu. Preemptvny algoritmus prepne beiaci proces, zatia o nepreemptvny ho nech dobehn. Preemptvny algoritmus sa niekedy nazva plnovanie poda najkratej zostvajcej doby na vykonanie (shortest remaining time first). Nasledujci prklad uvdza 4 procesy, dka doby vykonania a as prchodu sje uvedendan v ms.

Proce s

as prchodu

Poadovan as proce sora

P1 P2 P3 P4

0 1 2 3

8 4 9 5

Plnovanie procesov poda SJF bude nasledovn:


0 1 5 10 17 26

P1

P2

P4

P1

P3

Proces P1 tartuje v ase 0, pretoe je jedin proces vo fronte. Proces P2 prichdza v ase 1. Zostavvajci as procesu P1 (7 ms) je v ako as, ktor poaduje P2 (4 ms), take proces P1 je prepnut a je naplnovan proces P2 . Priemern as akania z tohoto prkladu je ((10 - 1) + (1+1) + (17 - 2) + (5 - 3))/4 = 6.5 ms. Nepreemptvne plnovanie by dosiahlo akaciu dobu 7.75 ms. 4.3.3 Prioritn plnovanie Algoritmus SJF je pecilny prpad obecnho algoritmu plnovania poda priort. Poda algoritmu plnovania poda priort, kad proces m pridelen prioritu a procesor je pridelen procesu s najvyou prioritou. Procesy s rovnakou prioritou sa plnuj poda poradia prchodu (FCFS). Priority patria obyajne do pevnho intervalu celch sel napr. od 0 do 7 alebo od 0 do 4095. Neexistuje obecne prijat ustanovenie, e 0 je najniia alebo najvyia priorita. Niektor systmy pouvaj menie sla pre oznaenie menej priority, in naopak. V tomto texte niie sla bud oznaova vyiu prioritu. V nasledujcom prklade predpokladme, e mnoina procesov prichdzajca v ase 0 je v porad P1, P2 , ....., P5 s dkami poadovanej doby obsluhy udanmi v ms.

53

Operan systmy Plnovanie procesov

4.

Proces

Poadovan as procesora

Priorita

P1 P2 P3 P4 P5

10 1 2 1 5

3 1 3 4 2

Poda prioritnho plnovania sa procesy bud vykonva v tomto porad: 0 P2 1 P5 6 P1 16 18 19 P3 P4

Priemern doba akania je 8.2 ms. Priority mu by definovan bu interne alebo externe. Interne definovan priority vyuvaj niektor meraten hodnoty, aby urili prioritu procesu, napr. asov limity, poiadavky na pam, poet otvorench sborov, pomer priemernch poiadaviek na V/V k priemeru poiadaviek na procesor. Extern priority sa nastavuj poda kritri, ktor s extern vzhadom na OS, ako napr. dleitos procesu, alebo nejak pracovn faktory, vyplvajce zod povahy nasadenia. Prioritn plnovanie me by preemptvne alebo nepreemptvne . Ke proces prde do frontu pripravench procesov, jeho priorita sa porovnva s prioritou beiaceho procesu. Pri preemptvnom plnovan proces bude prepnut, ak priorita novho procesu je vyia ako jeho. Pri nepreemptvnom plnovan nov proces sa umiestni na zaiatokele frontu pripravench procesov. Hlavn problm v prioritnom plnovan je nekonen blokovanie alebo starvcia. Proces, ktor je pripraven na spustenie, ale nedostva procesor, sa me poklada za blokovan. Pri prioritnom plnovan je mon, e v silne zaaenom systme niektor procesy s niou prioritou bud aka nekonene dlho na pridelenie procesora. Obecne mu nasta dva prpady: bu proces bude niekedy spusten alebo systm spadne a zruia sa vetky nedokonen procesy s niou prioritou. (Napr. ke nastal pd systmu IBM 7094 na MIT v roku 1973, zistilo sa, e tam akali nedokonen procesy s niou prioritou od roku 1967 !!!). Rieenm tohoto problmu je postupne zvyovanie priority procesov, ktor dlho akaj. Napr. ak mme interval priort od 0 do 127, mohli by sme zvyova prioritu akajcich procesov kadch 15 mint. V takom prpade proces, ktor m poiaton prioritu dokonca 0, bude nakoniec ma najvyiu prioritu a bude vykonan, aj ke zvyovanie priority zaberie viac ako 32 hodn!! 4.3.4 Cyklick plnovanie (Round Robin) Algoritmus cyklickho plnovania (Round Robin - RR) bol navrhnut pecilne pre time- sharing-ov systmy. Je podobn algoritmu FCFS, ale 54

Operan systmy

4. Plnovanie procesov

je preemptvny . Definuje sa mal asov sek - asov kvantum (q) , ktor je obyajne od 10 do 100 ms. Front pripravench procesov sa spracovva ako cyklick front. Plnova prideuje postupne kadmu procesu z frontu jedno asov kvantum. Cyklick plnovanie sa implementuje tak, e front pripravench procesov je typu FIFO. Nov proces sa pridva na jeho koniec. Plnova vyber proces vdy zo zaiatkuz ela frontu, nastavuje asova na 1 asov kvantum a spa proces. alia innos procesu me by nasledovn: proces me potrebova procesor na men as ako je asov kvantum a v takomto prpade uvon dobrovone procesor. Plnova vyberie a spust al z pripravench procesov. Ak proces potrebuje as dlh ako je asov kvantum, po uplynut kvanta asova spsob preruenie. ZaOdpamt sa kontext procesu a proces sa ulo na koniec frontu, z ktorho sa vyberie al pripraven proces. Priemern doba akania pri algoritme RR je niekedy dos dlh. Predpokladajme prchod nasledovnch procesov v ase 0. Poadovan doby spracovania kadho procesu s v ms.
Proces Poadovan as procesora

q =4 m s

P1 P2 P3

24 3 3

Prv asov kvantum dostane proces P1, pretoe tento proces potrebuje alch 20 ms, bude preruen po uplynut q. Potom sa spust P2, ale tento proces nespotrebuje cel asov kvantum. alej sa bude spracovva proces P3. Ke kad z procesov dostane 1 asov kvantum, prde na rad znova proces P1. Vsledn poradie vykonvania bude nasledovn: P1 0 4 P2 7 P3 10 P1 14 P1 18 P1 22 P1 26 P1 30

Priemern doba akania je 17/3 = 5.66 ms. Algoritmus RR je preemptivny, ak proces potrebuje viac ako 1 asov kvantum, jeho vykonanie je preruen, kontext zaodpamtan a proces odloen na koniec frontu pripravench procesov. Ak v systme mme n procesov a prideujeme asov kvantum q, potom kad proces dostva 1/n -t as z asu procesora v dvkach najviac po 1q. Kad proces ak nie viac ako (n-1)xq asovch kvnt, km prde znovu na rad. Vkonnos algoritmu RR silne zvis od vekosti asovho kvanta. V extrmnom prpade, ke q je nekonene vek, RR bude rovnocenn s FCFS. Ak q je vemi mal, potom vsledn efekt (len teoreticky) by bol, ako keby proces mal pre seba procesor s rchlosou 1/n z rchlosti skutonho procesora, kde n je poet procesov. 55

Operan systmy Plnovanie procesov

4.

V skutonosti, ale musme zobra do vahy as na prepnutie kontextu procesu. Predpokladajme, e mme len jeden proces s poadovanou dobou obsluhy 10 ms. Ak q = 12 ms, potom prepnutie nebude potrebn. Ak q = 6, bude potrebn jedno prepnutie a ak q = 1 ms, potom bude potrebnch 9 prepnut, o nleite spomal proces - pozri obr. 4.2 poadovan doba obsluhy = 10
0 10

q 12 6 1

poet prepnut

10

1 9

10

Obr.4.2 Vplyv vekosti asovho kvanta na poet prepnut as vykonania tie zvis od asovho kvanta. Ako je ukzane na obr.4.3, priemern doba vykonania pre mnoinu procesov sa nemus nutne skracova s nrastom asovho kvanta. Vo veobecnosti priemern doba vykonania sa me zlepi, ak vina procesov ukon svoje vykonanie behom jednho asovho kvanta. Napr. ak mme 3 procesy a kad poaduje 10 asovch jednotiek a q = 1, potom priemern as vykonania je 29. Ak q = 10, potom priemern doba vykonania klesne na 20. Ak pridme k tomu as potrebn pre prepnutie kontextu, priemern doba vykonania narast pre menie asov kvantum, pretoe sa poaduje v poet prepnut kontextu. Ke zoberieme do vahy predchdzajce protichodn poiadavky, tak nm vychdza, e optimlny je prpad, ke 80% procesov kon svoje vykonanie behom jednho asovho kvanta. Najastejie sa pouva q = 100 ms, o znamen, e pribline 10 - 30 % asu je venovanch reijnej prci systmu pre prepnutie kontextu.

56

Operan systmy

4. Plnovanie procesov

priem ern 12,5 as vykonania

12,0 11,5 11,0 10,5 10,0 9,5 9,0 1 2 3 4 5 6 7


asov kvantum

Proces P1 P2 P3 P4

as 6 3 1 7

Obr.4.3 Vplyv ve kosti asovho kvanta na celkov as vykonania procesu

4.3.5 Plnovanie s viacermi frontmi Tto trieda plnovacch algoritmov bola navrhnut pre situcie, kedy sa procesy daj ahko rozdeli na rzne skupiny. Naprklad, vemi asto procesy v systme sa delia na interaktvne a dvkov. Tieto dve skupiny maj odlin poiadavky na as odozvy a tie mu ma odlin potreby plnovania. Plnovanie s viacermi frontmi del front pripravench procesov na niekoko frontov, pozri obr.4.4. Procesy s zaraovan do prslunho frontu poda niektorej vlastnosti procesu - napr. vekos, priorita, typ procesu at. Kad front m svoj plnovac algoritmus,. napr. mu by pouit oddelen fronty pre interaktvne procesy a pre procesy na pozad. Interaktvne procesy by sa mohli plnova poda RR a procesy na pozad poda FCFS algoritmu.

57

Operan systmy Plnovanie procesov


Najvyia priorita

4.

systmov procesy interaktvne procesy interaktvne editovacie procesy dvkov procesy procesy tudentov
Najniia priorita

Obr. 4.4 Plnovanie s viacermi frontmi

Navye sa tu mus vykona aj plnovanie medzi frontmi, ktor sa bene implementuje ako preemptvne plnovanie s pevnmi prioritami. Napr. procesy na popred vdy maj vyiu prioritu ako procesy na pozad. Na obr.4.4 je uveden prklad plnovania s 5-timi frontmi: 1. Systmov procesy 2. Interaktvne procesy 3. Interaktvne editovacie procesy 4. Dvkov procesy 5. Procesy tudentov Kad front m absoltnu prioritu nad frontmi s niou prioritou. Napr. iadny z dvkovch procesov neme by vykonan, km fronty pre systmov procesy, interaktvne procesy a interaktvne editovacie procesy nebud przdne. In alternatva plnovania je rozdelenie asu procesora medzi frontmi. Kad front dostva urit as asu procesora a del ju medzi procesy vo fronte. Napr. ak mme dva fronty - pre procesy na popred a pre procesy na pozad, potom front procesov na popred me dosta 80% asu procesora, ktor me rozdeli medzi procesymi na zklade algoritmu RR, a front procesov na pozad dostane 20% asu procesora, ktor me rozdeli medzi procesysmi na zklade algoritmu FCFS. Pri plnovan s viacermi frontmi procesy s pevne spojen s jednm frontom a nemenia ho km sa nedokonia. Je to dan tm, e rozdelenie procesov je uroben za zklade charakteristiky procesu, ktor zostva nemenn. Tm sa zskava vhoda niej rie pri plnovan, ale veobecne tento algoritmus je mlo flexibiln. 4.3.6 Plnovanie s viacermi frontmi so sptnou vzbou Plnovanie s viacermi frontmi so sptnou vzbou dovouje procesom pohybova sa medzi frontmi. Zkladn mylienka je rozdeli procesy poda ich poiadaviek na cyklus procesora (pozri 4.1.1). Napr. predpokladajme plnova, ktor m 3 fronty - oslovan 0, 1, 2 (obr.4.5). Plnova 58

Operan systmy

4. Plnovanie procesov

najskr vykon vetky procesy z frontu 0. Ke bude front 0 przdny, zan sa vykonva procesy z frontu 1 a potom procesy z frontu 2. Ak medzitm prde proces do frontu 0, preru vykonanie procesu z frontu 1 .Podobnea tie prchod procesu do frontu 1, preru vykonanie procesu z frontu 2. Proces pripraven na vykonanie sa dva do frontu 0. Vo fronte 0 proces dostva asov kvantum 8 ms. Ak sa proces nedokon v tomto ase, presunie sa na koniec alieho frontu. Ak front 0 je przdny, vyberie sa na vykonanie prv proces z frontu 1. V tomto fronte procesy dostvaj asov kvantum 16 ms. Ak sa proces ani za tento as nedokon, presunie sa do frontu 2, kde sa procesy vykonvaj poda algoritmu FCFS, za predpokladu, e fronty 0 a 1 s przdne. Tento algoritmus uprednostuje procesy, ktor maj as cyklu CPU 8 ms alebo menej. Takto procesy zskaj procesor, vykonaj jeden cyklus CPU a pokrauj s cyklom V/V. Procesy, ktor potrebuj viac ako 8 ms, ale menej ako 24 ms s tie obslen rchlo, aj ke s menou prioritou ako kratie procesy. Dlhie procesy automaticky klesn do frontu 2, kde s obslen v porad FCFS.
q =8

q =16

FCFS

Obr.4.5 Plnovanie s viacerm i frontm i so sptnou vzbou

Plnova, pouvajci fronty so sptnou vzbou je definovan pomocou tchto parametrov: poet frontov, plnovac algoritmus pre kad front, metda, ktor sa pouva pre urenie momentu, kedy proces m by presunut do frontu s vyou prioritou, metda, ktor sa pouva pre urenie momentu, kedy proces m by presunut do frontu s niou prioritou, metda, ktor sa pouva pre urenie frontu, do ktorho sa zarad proces, ktor potrebuje by obslen. Algoritmus plnovania pouvajci fronty so sptnou vzbou je najuniverzlnej plnovac algoritmus, ale i najzloitej. Me by 59

Operan systmy Plnovanie procesov prispsoben pre rzne systmy, ale potrebuje starostliv vber parametrov, aby sa docielilo optimlne plnovanie. 4.3.7 Plnovanie viacprocesorovho systmu

4.

Plnovanie procesov v systme s viacermi procesormi je zloitejia loha, ako u jednoprocesorovho systmu. Aj v tomto prpade boli vyskan viacer algoritmy, ale iadny nie je idelny. V alom texte uvedieme strune problmy, sprevdzajce plnovaniea viacprocesorovch systmov. Procesory v systme s viacermi procesormi s vinou funkne identick (homognne ). To znamen, e procesy mu by vykonvan na ubovolnom procesore. Ak s procesory neidentick (heterognne ), to znamen to, e proces me by vykonan len na procesore, pre ktorho intrukn sbor bol skompilovan. To je prpad niektorch distribuovanch systmov. Pokia mme k dispozci niekoko identickch procesorov, meme poui stratgiu zdieania zaaenia (load sharing ). To znamen, e sa prca del medzi jednotliv procesory. Obyajne sa udruje jeden front pripravench procesov a ke sa niektor procesor uvon, pridel sa mu jeden proces z frontu. Poda tejto schmy sa mu uplatni dva prstupy. Poda prvho kad procesor sa sm star o svoju prcu. Ke sa uvon, preskma front pripravench procesov a vyberie si proces na vykonvanie. Tto loha je zloit, pretoe potrebuje synchronizciu prstupu k spolonm dtovm truktram. Druh prstup je tak, e sa ur jeden procesor ako plnovac a on prideuje procesom procesory. Niektor systmy rieia vetky problmy, spojen s plnovanm, V/V a inmi systmovmi aktivitami tak, e jeden procesor je tzv. master server. Tento prpad asymetrickho multiprocesing-u je jednoduch ako symetrick multiprocesing, kedy procesory s rovnocenn, lebo len jeden procesor pracuje so systmovmi dtami, a tak odpad potreba synchronizova k nm prstup k nm. 4.3.8 Plnovanie systmov relneho asu Systmy relneho asu sa delia na dve skupiny. Systmy s pevnmi termnmi ukonenia (hard real-time) s tak systmy, kde sa poaduje ukonenie zadanej lohy do uritho pevne stanovenho termnu. Obyajne sa proces dodva aj s termnom ukonenia. Plnova v takomto prpade bu prijme proces a garantuje, e bude ukonen do stanovenho termnu, alebo ho odmietne ako nesplniten. Garancia vyaduje, aby plnova presne vedel, koko asu vyaduje urit systmov funkcia. Garancia nie je mon v systmoch s virtulnou alebo sekundrnou pamou. V tchto prpadoch sa ned predvda as, za ktor sa vykon urit proces. Take systmy relneho asu sa skladaj zo pecilnych programov, ktor beia na platformch navrhnutch pre prslun poiadavky systmu. Tmtoieto systmomy chba postrdaj univerzlnos a pln funknos modernch operanch systmov. Systmy s variabilnmi termnmi ukonenia (soft real-time) nie s tak obmedzujce ako tie s pevnmi termnmi ukonenia. U tchto systmov sa poaduje, aby kritick procesy dostali vyiu prioritu ako 60

Operan systmy

4. Plnovanie procesov

ostatn procesy. Ak ben time-sharig-ov systm m aj tieto monosti, me sa sta, e prideovanie prostriedkov bude nespravodliv a spsob spomalenie alebo starvciu niektorch procesov. Ale s aj prpady, kedy univerzlny systm potrebuje spa nronejie lohy ako s multimedilne aplikcie alebo vysokorchlostn interaktvna grafika, ktor by nepracovali sprvne v prostred, ktor nem tieto vlastnosti. Implementcia funkci pre relny as vyaduje starostliv nvrh plnovaa a adekvtne vlastnosti operanho systmu. Po prv, systm mus pouva prioritn plnovanie, priom procesy relneho asu musia ma najvyiu prioritu a t nesmie klesa, aj ke obyajnm procesom by sa priorita menila. Po druh, as reakcie dispeera mus by krtky. m je as reakcie dispeera men, tm rchlejie me by odtartovan proces relneho asu. Mnoho operanch systmov, vrtane viny verzi Unixu, neme zaisti dostatone mal as reakcie dispeera, pretoe pred prepnutm kontextu procesu musia aka, ak sa vykonva V/V opercia alebo systmov volanie. V tchto prpadoch oneskorenie dispeera je vek, lebo niektor systmov volania s zloit a V/V zariadenia s pomal. Rieenie tchto problmov je mon niekokmi spsobmi: napr. dovoli preempciu systmovch volan alebo navrhn cel jadro ako preruiten! Toto je metda, pouit v systme Solaris 2.

61

You might also like