Download as pdf or txt
Download as pdf or txt
You are on page 1of 66

Sistemski softver (operativni sistemi)

Prof. Boris Damjanović

Boris Damjanović P 1.1


Dodjela procesora (scheduling)

• Najjednostavniji algoritmi dodjele procesora


– su oni koji se odnose
– na jednoprocesorske sisteme.

• Dodjela procesora je jedan od osnovnih zadataka


– svih savremenih operativnih sistema.

• Koncept koji se primjenjuje je


– koncept dijeljenja resursa,
– odnosno preciznije, dijeljenje procesora.

• Povezivanjem procesora
• i više jednonitnih procesa
– u kratkim vremenskim intervalima
– operativni sistem povećava produktivnost datog računara .

Boris Damjanović P 1.2


Dodjela procesora (scheduling)

• Prije predstavljanja algoritama za dodjelu procesora,


– potrebno je definisati neke pojmove.

• (1) Zadatak (task) se još često naziva i posao (job).

– Zadatak (task) može biti različitih veličina,


» od iscrtavanja ekrana,
» preko pomicanja miša na drugu poziciju
» do izračunavanja oblika novootkrivenog proteina.
»
– Termin task se u literaturi ponekada
» koristi umjesto termina proces odnosno nit.

Boris Damjanović P 1.3


Dodjela procesora (scheduling)

• (2) Gladovanje (starvation)


– je nedostatak progresa kod jednog zadatka (task)
– uslijed davanja resursa drugim zadacima višeg prioriteta.

• (3) Podjela vremena (time slicing)


– predstavlja jednu od tehnika
» pomoću koje se izvodi konkurentno izvršenje.
– Time slice je period vremena
» u toku kojeg je nekom zadatku dozvoljeno da se izvršava,
» prije nego što se pređe na drugi zadatak.

Boris Damjanović P 1.4


Dodjela procesora (scheduling)

• (4) Opterećenje (workload)


– predstavlja skup zadataka
» koje neki sistem mora da obavi,
– zajedno sa trenutkom njihovog pristizanja
» i vremenom potrebnim za njihovo izvršenje.

• (5) Compute bound (CPU-bound task) zadatak


– je čija brzina izvršenja zavisi
» samo od brzine procesora.
– Ovaj zadatak rijetko čeka na dovršenje ulazno-izlaznih operacija,
» on koristi mnogo CPU izračunavanja.

Boris Damjanović P 1.5


Dodjela procesora (scheduling)

• (6) I/O bound zadatak je zadatak koji


– većinu vremena provodi u čekanju
» da se dovrši neka ulazno/izlazna operacija,
– a mali dio vremena u izračunavanju.

• (7) Promjena konteksta (context switching)


– predstavlja prebacivanje sa jednog zadatka na drugi.

Boris Damjanović P 1.6


Dodjela procesora (scheduling)

• (8) Preemptive (sa prekidanjem) i non-preemptive (bez


prekidanja) algoritmi.
– Algoritmi dodjele zadataka mogu biti
» bez prekidanja (non-preemptive) i
» sa prekidanjem (preemptive).

• (8-a) Neki non-preemptive algoritam dodjele procesora


– odabere neki proces i potom mu dozvoljava izvršenje
– sve dok se njegovo izvršenje ne blokira
» (npr. zbog neke ulazno/izlazne operacije)
– ili kada dobrovoljno napusti izvršenje
» (npr. jer je završio posao).

Boris Damjanović P 1.7


Dodjela procesora (scheduling)

• (8) Preemptive (sa prekidanjem) i non-preemptive (bez


prekidanja) algoritmi.

• (8-b) Za razliku od njega, neki preemptive algoritam odabere


proces
– i dozvoli mu da se izvršava u toku
– unaprijed definisanog fiksnog intervala.
• Ako se on po isteku tog vremena i dalje izvršava,
– tada algoritam (ili preciznije raspoređivač, planer)
» suspenduje njegovo izvršenje,
– a potom bira slijedeći proces
» kojem će dozvoliti da se izvršava (ukoliko ima kandidata).

Boris Damjanović P 1.8


Dodjela procesora (scheduling)

• Kada je u pitanju dodjela procesorskog vremena


– pojedinim zadacima,
• primjenjuju se različite politike dodjele vremena
– odnosno različiti algoritmi
• u zavisnosti od sistema i potreba.

• Razlikujemo
– Jednoprocesorske algoritme dodjele
» (uni-processor scheduling),
– Višeprocesorske algoritme dodjele
» (multi-processor scheduling),
– Energetski-štedljive algoritme dodjele
» (energy-aware scheduling)

Boris Damjanović P 1.9


Uloga dispečera i planera

• Mnogi računari imaju samo jedan procesor,


– tako da je neophodno da svi programi
– koji se izvršavaju na tom procesoru
– efikasno dijele taj zajednički resurs.

• Dijeljenje procesora je neophodno


– kada se dva ili više zadataka (task)
– istovremeno nalaze u stanju spremnosti.

• Dijelovi operativnog sistema


– koji upravljaju dodjelom procesora se zovu
– planer i dispečer.

Boris Damjanović P 1.10


Dugoročni i kratkoročni planer

• Određivanje načina na koji se procesorsko vrijeme


– dodjeljuje zadacima se zove planiranje.

• Program koji vrši dodjelu procesorskog vremena


– se zove planer (scheduler).

• Kod operativnih sistema postoje


– sljedeće dvije vrste planera (scheduler):
» dugoročni planer ("long-term scheduler”) i
» kratkoročni planer ("short-term scheduler").

Boris Damjanović P 1.11


Dugoročni i kratkoročni planer

• Dugoročni planer selektuje zadatak (task)


– iz skupa zadataka koji su poslati na izvršenje
– i prebacuje ga u red zadataka
» spremnih za izvršenje.

• Kratkoročni planer selektuje zadatak


– iz reda zadataka spremnih za izvršavanje
» i dodjeljuje mu centralni procesor.

Boris Damjanović P 1.12


Dugoročni i kratkoročni planer

• Učestanost pozivanja kratkoročnog i dugoročnog


– planera se bitno razlikuje.

• Kratkoročni planer se
– poziva veoma često.
– To vrijeme se mjeri milisekundama.

• Dugoročni planer se
– ne poziva tako često,
– već su u pitanju minuti ili sekunde.

Boris Damjanović P 1.13


Dispečer

• Pored planera za dodjelu procesora


– bitan je i dispečer.

• Dispečer je softverski modul


– koji dodjeljuje procesor zadatku (task)
– koji je izabran od strane kratkoročnog planera.

• Funkcije dispečera su:


– promjena konteksta,
– prelazak u korisnički način rada,
– skok na odgovarajuću lokaciju
» unutar korisničkog programa
» radi ponovnog startovanja tog programa.

Boris Damjanović P 1.14


Dispečer

• Bitno je da dispečer bude što je moguće brži,


– jer se poziva pri svakom prelasku
– sa jednog zadatka (task) na drugi.

• Vrijeme koje je potrebno da dispečer


– zaustavi jedan zadatak
– i pokrene drugi se zove
– dispečersko kašnjenje (“dispatch latency”).

Boris Damjanović P 1.15


Algoritmi dodjele procesora

• Algoritmi dodjele procesora ili algoritmi planiranja


– se koriste kod
• planiranja dodjele procesora zadacima (task).

• Prilikom dodjele procesora


– različiti algoritmi planiranja
» mogu da favorizuju jednu klasu procesa
» u odnosu na neku drugu klasu procesa
– u zavisnosti od primijenjenog kriterijuma.

Boris Damjanović P 1.16


Algoritmi dodjele procesora

• Kriterijumi koji se koriste kod


– algoritama planiranja su slijedeći (prvi dio):

» iskorišćenje centralnog procesora,


» propusnost sistema (“throughput"):
• broj zadataka (task) koji mogu da završe obradu u
datom vremenskom intervalu,
» vrijeme zadatka (task) provedeno u sistemu:
• zbir vremena koje je zadatak proveo
– čekajući da uđe u memoriju,
– vremena koje je proveo u redu zadataka
spremnih za izvršavanje,
– vremena potrošenog na U/l operacije i
– vremena potrošenog na procesorsko
izvršavanje

Boris Damjanović P 1.17


Algoritmi dodjele procesora

• Kriterijumi koji se koriste kod


– algoritama planiranja su slijedeći (drugi dio):

» vrijeme čekanja:
• vrijeme provedeno u redu zadataka (task)
– spremnih za izvršavanje i
» vrijeme odziva (“response time”):
• vrijeme koje protekne od zahtjeva
– do početka davanja odgovora.

Boris Damjanović P 1.18


Algoritmi dodjele procesora

• Mogući opseg vrijednosti


– za iskorišćenje procesora
– je od 0 do 100 procenata.

• Kod realnih sistema iskorišćenje procesora


– je najčešće u granicama od 40 do 90 procenata.

• Dobro je da iskorišćenje procesora bude što veće,


– ali se u praksi rijetko prelazi 90 procenata
– u dužem vremenskom periodu.

Boris Damjanović P 1.19


Algoritmi dodjele procesora

• Propusnost sistema
– zavisi od vrste zadatka (task) koji se izvršavaju.

• Za neke zadatke
» koji dugo traju
– to može biti jedan zadatak po satu,
– dok za zadatke koji kratko traju,
» kao na primjer, elektronske finansijske transakcije,
– to može biti 100 u sekundi.

Boris Damjanović P 1.20


Algoritmi dodjele procesora

• Vrijeme čekanja
– ne uključuje vrijeme koje je zadatku (task)
– potrebno da završi U/l aktivnost,
» kada se nalazi u stanju čekanja,
– već samo zbir vremena provedenih
– u redu zadataka spremnih za izvršavanje.

• Vrijeme odgovora
– ne uključuje vrijeme koje je potrebno
» za prikaz odgovora,
– već samo vrijeme potrebno
» za početak odgovora.
– Vrijeme odgovora je veoma bitno za interaktivne sisteme,
» a praktično najvažnije za sisteme
» koji rade u realnom vremenu.

Boris Damjanović P 1.21


Algoritmi dodjele procesora

• Različite aplikacije i različiti tipovi operativnih


sistema
– imaju različite ciljeve
– po pitanju dodjele procesora.

• Drugim riječima, optimizacija dodjele procesora


– nije ista za sve sisteme.

• U literaturi se razlikuju tri okruženja:


– paketna obrada (batch),
– interaktivan rad i
– rad u realnom vremenu.

Boris Damjanović P 1.22


Algoritmi dodjele procesora

• Kod sistema sa paketnom obradom


– može se smanjiti broj prebacivanja (“context
switching”)
» sa jednog procesa na drugi
– tako što će se zadaci (task) izvršavati
» bez prekidanja
» ili sa prekidanjem,
• ali sa dužim vremenskim kvantumom.

Boris Damjanović P 1.23


Algoritmi dodjele procesora

• Ako se koriste interaktivni sistemi


– tada je prekidanje izvršavanja zadatka (task)
» veoma bitno,
– kako se ne bi desilo da
» neki zadatak zauzme centralni procesor
» i da ga drugi zadaci ne mogu dobiti.

• Takva situacija bi mogla nastati


– i ako je u pitanju programska greška.

Boris Damjanović P 1.24


Algoritmi dodjele procesora

• Razlika između interaktivnih sistema


• i sistema za rad u realnom vremenu
– je u tome što se
» kod sistema za rad u realnom vremenu
– procesor dodjeljuje zadatku (task)
» kome najranije ističe maksimalno dozvoljeno vrijeme
» za dodjelu procesora
– dok kod interaktivnih sistema
» to može biti na proizvoljan način

Boris Damjanović P 1.25


Algoritam 1: FCFS (First Come First Served)

• Algoritam FCFS (First Come First Served),


– odnosno prvi došao, prvi opslužen
– se u literaturi često naziva i FIFO
» (First In First Out).

• Ovo je jedan od najjednostavnijih algoritama dodjele,


– koji funkcioniše tako da se zadaci obrađuju
– redom kojim pristižu.

• Kada ovaj algoritam započne sa izvršavanjem nekog zadatka,


– on ga izvršava sve do njegovog završetka.

• Ukoliko imamo manji broj zadataka (task),


– FCFS će imati dobru propustnu moć,
– jer će na kraju svaki zadatak biti opslužen.

Boris Damjanović P 1.26


Algoritam 1: FCFS (First Come First Served)

• Algoritam dozvoljava zadatku


• koji trenutno koristi procesor
– da ga koristi sve dok mu je potreban,
– odnosno ne prekida se zadatak koji se trenutno
izvršava
» (“non-preemptive”).

• Svi ostali zadaci koji se kasnije pojave


– se stavljaju na kraj reda čekanja
– zadataka spremnih za izvršavanje.

Boris Damjanović P 1.27


Algoritam 1: FCFS (First Come First Served)

• Kada se blokira zadatak koji se trenutno izvršava


– prvi slijedeći zadatak iz reda čekanja
– počinje sa izvršavanjem.

• Kada blokirani zadatak postane spreman on se


– stavlja na kraj reda čekanja
– zadataka spremnih za izvršavanje.

• Kod implementacije FCFS algoritma


– svi spremni zadaci se mogu predstaviti
– pomoću jednostruko spregnute liste.

Boris Damjanović P 1.28


Algoritam 1: FCFS (First Come First Served)

• Prednost ovog algoritma je jednostavnost.

• Međutim, ovaj algoritam je


• neodgovarajući za interaktivne sisteme,
– jer se može desiti da zadaci koji kratko traju
– čekaju na završetak zadataka koji dugo traju
– i moguće su velike varijacije srednjeg vremena
izvršavanja programa.

Boris Damjanović P 1.29


Algoritam 1: FCFS (First Come First Served)

• Ako se desi da prvi zadatak u redu


– traži npr. sekundu procesorskog vremena
» za svoje izvršenje,
– a da se samo trenutak nakon početka njegovog izvršenja
– pojavi slijedeći zadatak koji će trajati
» npr. samo milisekundu,
– on će morati da čeka da se dugački zadatak završi.

• U ovom slučaju, prosječno vrijeme odgovora


– će biti nešto veće od sekude,
– iako je optimalno vrijeme odgovora znatno manje

• Ovaj algoritam pokazuje odlične rezultate


– u slučajevima kada treba da obradi veliki broj kratkih zadataka

Boris Damjanović P 1.30


Algoritam 2: SJF (Shortest Job First)

• Algoritam SJF (Shortest Job First)


– se još naziva najkraći posao prvi.

• Kako smo već naveli,


– postoje dvije klase zadataka –
– CPU bound i l/O bound.

• CPU bound zadaci


– intenzivno koriste centralni procesor,
• dok l/O bound procesi
– intenzivno koriste ulazno-izlazne aktivnosti,
• kao što je prikazano na slici.

Boris Damjanović P 1.31


Algoritam 2: SJF (Shortest Job First)

• Primjeri CPU bound zadataka su


– programski prevodilac,
– igrice,
– MP3 enkoder itd.
• Primjeri l/O bound zadataka su
– Web pretraživač,
– editor teksta,
– programi za rad sa bazama podataka itd.

Boris Damjanović P 1.32


Algoritam 2: SJF (Shortest Job First)

• Planer iz reda čekanja


» poslova spremnih za izvršavanje
– bira posao koji zahtjeva
– najmanje procesorskog vremena do završetka rada.

• Ako postoji više zadataka


» sa istim potrebnim vremenom,
– tada se primjenjuje FCFS algoritam.

• SJF algoritam
– minimizira prosječno vrijeme
– provedeno u sistemu.

• SJF algoritam se još zove


– i SPTF (“Shortest Processing Time First”) algoritam.

Boris Damjanović P 1.33


Algoritam 2: SJF (Shortest Job First)

• Algoritam radi
– bez prekidanja zadatka koji se trenutno izvršava.

• Implementacija nije jednostavna,


– jer nisu unaprijed poznata vremena izvršavanja svih
zadataka.

• SJF algoritam je optimalan


– samo kada su svi poslovi raspoloživi istovremeno.

• Ako se neki od poslova pojavljuju naknadno,


– SJF algoritam ne mora biti optimalan.

Boris Damjanović P 1.34


Algoritam 2: SJF (Shortest Job First)

• Nedostatak mu je da u opštem slučaju


– (kada ne postoje podaci o preostalom vremenu)
– algoritam ne može biti implementiran.

• Takođe, moguće je “gladovanje” (starvation),


– tj. da neki zadatak ne može da dobije procesor,
» jer se stalno pojavljuju zadaci kojima je
» za završetak rada potrebno manje procesorskog
vremena.

• SJF algoritam se
– samo u kombinaciji sa drugim algoritmima
– koristi u operativnim sistemima.

Boris Damjanović P 1.35


Poređenje FIFO (FCFS) i SJF

• Poređenje FIFO (FCFS) i SJF

Boris Damjanović P 1.36


Algoritam 3: SRTF
(Shortest Remaining Time First)
• Algoritam SRTF (Shortest Remaining Time First)
– izvršava prvi posao
– kojem je preostalo najmanje vremena
– do završetka.

• Pojedini autori spajaju ovaj algoritam sa


– SFJ (odnosno SPTF) algoritmom.

• Ipak, ovdje su ta dva algoritma razdvojena


» u smislu da se kod prethodnog
– SPTF algoritma zadaci ne mogu prekidati
» (non-preemptive),
– dok se kod algoritma SRTF dozvoljava prekidanje
zadataka (preemptive).

Boris Damjanović P 1.37


Algoritam 3: SRTF
(Shortest Remaining Time First)
• Pretpostavimo da imamo način
– da izmjerimo vrijeme koje svakom zadatku (task)
– potrebno da završi svoj posao.

• U tom slučaju, uvijek bi mogli da rasporedimo


– da se prvo izvršava zadatak
– koji ima najmanje vremena do kraja.

• Na ovaj način bi bitno smanjili


– prosječno vrijeme odziva.

Boris Damjanović P 1.38


Algoritam 3: SRTF
(Shortest Remaining Time First)
• Prema ovom algoritmu,
– ako se prvo pojavi neki dugačak zadatak,
– algoritam će početi da ga izvršava.

• Ako se nakon početka njegovog izvršavanja


– pojavi kraći zadatak,
» algoritam će prekinuti (preempt) izvršenje dugačkog
zadatka
– i prebaciti se na izvršenje kratkog.

• Ako se pojavi više kratkih zadataka,


– svi oni će biti izvršeni,
– pa će potom biti izvršen i dugački zadatak

Boris Damjanović P 1.39


Algoritam 3: SRTF
(Shortest Remaining Time First)
• Kada se pominje najkraći zadatak,
– ovdje se misli na vrijeme koje je preostalo
» da se dovrši izvršenje zadatka,
– a ne na njihovu ukupnu dužinu.

• Ako je potrebna još samo jedna nanosekunda


– da se završi neki dugotrajan zadatak
» (ukupne dužine npr 20 minuta),
– najbolji rezultat se postiže ako se završi taj zadatak.

• Lošiji rezultati bi se postigli


– ako bi se taj dugotrajni zadatak prekinuo (preempt)
» da bi se izvršio neki kraći,
– kome do kraja ostaje još jedna minuta

Boris Damjanović P 1.40


Algoritam 3: SRTF
(Shortest Remaining Time First)
• Dakle, kod ovog algoritma
– moguće je prekidanje zadatka
» koji se trenutno izvršava.

• Ako se u trenutku izvršavanja datog zadatka


– pojavi novi zadatak koji zahtjeva
» manje procesorskog vremena do svog završetka,
– izvršavanje datog zadatka se prekida
» i procesor se dodjeljuje tom drugom zadatku.

• I kod SRTF algoritma


– vrijeme izvršavanja procesa
– mora da bude poznato unaprijed.

• SRTF algoritam omogućava


– novim kratkim poslovima
– odličan servis

Boris Damjanović P 1.41


Algoritam 3: SRTF
(Shortest Remaining Time First)
• Ovaj algoritam izvršava
– kratke zadatke
» najbrže što može,
– ali istovremeno on izvršava dugačke zadatke
» najsporije što može.

• Ukoliko pristigne dovoljan broj kratkih zadataka,


– dugački zadaci mogu da pate
– od nedostatka progresa (starvation)

Boris Damjanović P 1.42


Algoritam 4: HPF (Highest Priority First)

• Algoritam HPF (Highest Priority First)


– se još naziva i algoritam planiranja po prioritetu.

• Kod ovog algoritma, svaki zadatak (task)


– ima pridružen odgovarajući prioritet.

• Naredni zadatak za izvršavanje


– je onaj zadatak koji ima najviši prioritet.

• Ako se moraju izvršavati zadaci


– sa istim prioritetom
– tada se primjenjuje FCFS algoritam.

Boris Damjanović P 1.43


Algoritam 4: HPF (Highest Priority First)

• Za zadatke niskog prioriteta


– vrši se povezivanje prioriteta
– i vremena koje je zadatak
» proveo u sistemu.

• Specijalan slučaj algoritma planiranja po prioritetu


– je SJF algoritam,
– kod koga se prioritet zadatka može definisati
– inverzno od slijedećeg potrebnog procesorskog
vremena

Boris Damjanović P 1.44


Algoritam 4: HPF (Highest Priority First)

• Kod Linux operativnog sistema


– postoje dva opsega prioriteta
– i načina označavanja.

• Prvi je pomoću cjelobrojne varijable


– pod imenom nice
– koja određuje prioritet korisničkih procesa
» u rangu od -20 do +19,
– gdje je prioritet nula (0)
» podrazumjevani prioritet.

• <-- viši prioritet


• -20_ _ _ _ _ 0 _ _ _ _ _+19

Boris Damjanović P 1.45


Algoritam 4: HPF (Highest Priority First)

• Prioriteti real-time procesa


» kod Linux operativnog sistema
– se mogu podešavati u rangu od 0 – 99.

• Ove prioritete može da podešava i koristi


– samo jezgro operativnog sistema

• viši prioritet -->


• 0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _99

• Kod UNIX operativnog sistema imamo


– invertovanu skalu prioriteta u odnosu na Linux

Boris Damjanović P 1.46


Algoritam 4: HPF (Highest Priority First)

• Objedinjeno, Linux kernel koristi skalu


– od 0 do 139 različitih prioriteta,
» gdje su nivoi od 0 do 99 rezervisani
• za real-time (sistemske) procese,
» a nivoi od 100 do 139
» (mapirane vrijednosti varijable nice od -20 do +19)
• za korisničke procese

• <-- viši prioritet

• 0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _99_100_ _ _ _ _ _ _ _ _ _ _139

• real-time normal

Boris Damjanović P 1.47


Algoritam 4: HPF (Highest Priority First)

• U slučaju Windows operativnog sistema,


– postoji 16 real-time nivoa prioriteta
» koji su namijenjeni sistemu,
– 15 varijabilnih nivoa
» koji su namijenjeni korisnicima
– i jedan nulti nivo
» ponovo rezervisan za sistem

Boris Damjanović P 1.48


Algoritam 4: HPF (Highest Priority First)

• Često je podesno da se zadaci grupišu


– u klase na osnovu prioriteta koji imaju.

• Obično je implementacija takva


– da za svaki nivo prioriteta
– postoji poseban red čekanja.

• Unutar svakog reda čekanja
– koristi se Round Robin algoritam.

Boris Damjanović P 1.49


Algoritam 4: HPF (Highest Priority First)

• Ako je dati red čekanja prazan


– prelazi se na slijedeći red čekanja
– sa prvim nižim prioritetom.

• Ponekad se može desiti


– da zadaci koji pripadaju
– klasama nižeg prioriteta "gladuju”

Boris Damjanović P 1.50


Algoritam 4: HPF (Highest Priority First)

• Operativni sistem Windows koristi


• interesantan način da podijeli procese i niti
» (ovdje nećemo koristiti termin zadatak)
– u odgovarajuće klase.

• Operativni sistem Windows najprije


– organizuje procese u nivoe
– prema prioritetu po kojem su pokrenuti.

• Ovi procesi mogu dobiti slijedeće prioritete:


– Real-Time
– High
– Above Normal
– Normal
– Below Normal
– Idle

Boris Damjanović P 1.51


Algoritam 4: HPF (Highest Priority First)

• Pošto u se u procesima može naći više niti,


– svaka pojedina nit unutar nekog procesa
– dobija svoj relativni prioritet:
» Time-Critical (15)
» Highest (2)
» Above-Normal (1)
» Normal (0)
» Below-Normal (–1)
» Lowest (–2)
» Idle (–15)

Boris Damjanović P 1.52


Algoritam 4: HPF (Highest Priority First)

• Prilikom kreiranja procesa,


– svakoj niti se najprije dodijeli vrijednost
– koja je podrazumijevana za navedeni prioritet procesa.
• Podrazumijevani prioriteti procesa su npr.
– IDLE – 4,
– BELOW NORMAL – 6,
– NORMAL – 8,
– ABOVE NORMAL – 10,
– HIGH – 13

Podrazumijevani nivoi prioriteta niti u OS Windows

Boris Damjanović Mapiranje prioriteta Windows jezgra na API P 1.53


Algoritam 5: RR (Round Robin)

• Algoritam RR (Round Robin)


– je algoritam koji omogućava
– da se izbjegne gladovanje (starvation)
» zadataka (tasks).

• Uz pomoć ovog algoritma,


– zadaci se izvršavaju na procesoru
– samo ograničen period vremena.

• Algoritam dodjeljuje procesor


– prvom zadatku u listi
– a potom podesi tajmer prekid (interrupt)
» na neki interval (time quantum).

Boris Damjanović P 1.54


Algoritam 5: RR (Round Robin)

• Ako po isteku navedenog intervala


– zadatak nije završen, algoritam ga prekida
– i dodjeljuje procesor drugom zadatku.

• Prekinuti (preempted) zadatak se vraća u listu


– spremnih procesa i čeka da ponovo dođe na red.

• Korišćenjem RR algoritma,
– ne postoji mogućnost da neki zadatak
– pati od nedostatka progresa (starvation)

Boris Damjanović P 1.55


Algoritam 5: RR (Round Robin)

• Interval vremena (time quantum)


– moramo da biramo oprezno.

• Ako bi interval bio previše mali,


– procesor bi više vremena provodio
– u prebacivanju sa procesa na proces
» (context switching)
– nego u izvršavanu samih zadataka.

• Ako bi interval bio previše veliki,


– zadaci bi morali dugo da čekaju
» dok ne dođu na red,
– čime bi stvorili utisak da je sistem trom i da ima spor odziv.

Boris Damjanović P 1.56


Algoritam 6: MLS (Multilevel Scheduling)

• Algoritam MLS (Multilevel Scheduling),


– često se još naziva i
» (Multilevel Queue Scheduling) te
» Planiranje sa redovima čekanja u više nivoa.

• U sistemu obično postoji više grupa zadataka


(tasks),
– kao što su na primjer:
» interaktivni zadaci,
» sistemski zadaci
» i zadaci koji rade u paketnom režimu rada.

Boris Damjanović P 1.57


Algoritam 6: MLS (Multilevel Scheduling)

• Za svaku grupu formira se


– poseban red čekanja.

• Planiranje se zatim vrši


– po prioritetu redova
– ili po procentualnoj raspodjeli
» procesorskog vremena između redova.

• Vremenski kvantum može imati


– različite vrijednosti
– na različitim nivoima ovakvog sistema.

• Procesi kojima je potrebna češća dodjela procesora,


– kao na primjer kod editora,
– mogu biti u redu čekanja
– sa malim vremenskim kvantumom.

Boris Damjanović P 1.58


Algoritam 6: MLS (Multilevel Scheduling)

• Procesi kojima nije potrebna česta dodjela


procesora
– mogu da budu u redu čekanja
– sa velikim vremenskim kvantumom,
» odnosno da se ne pozivaju često.

• Na taj način povećava se efikasnost


– korišćenja datog računara

Boris Damjanović P 1.59


Algoritam 6: MLS (Multilevel Scheduling)

• Kod ovakvog pristupa,


– red sa zadacima koji su spremni za izvršenje
» je podijeljen u nekoliko dijelova
» za svaku klasu zadataka.

Boris Damjanović P 1.60


Algoritam 6: MLS (Multilevel Scheduling)

• Na slici prikazane su tri klase zadataka,


– od kojih svaka klasa može da ima
– svoj algoritam dodjele procesora.

• Na primjer, redovi 1 i 2 (Queue1 i Queue2)


– koriste Round Robin algoritam,
• a red 3 (Queue3)
– koristi FCFS (First Come First Served) algoritam.

Boris Damjanović P 1.61


Algoritam 6: MLS (Multilevel Scheduling)

• Raspodjela vremena između procesa


– može da se vrši npr. pomoću slijedećih metoda:

• (1) Podjela vremena (time slicing) je metoda pomoću koje


– svaki red dobija svoju porciju vremena.

– Na primjer, red 1 (Queue1) dobija 50% vremena,


– red 2 dobija 30%
– a red 3 dobija 20% vremena,
» slično Round Robin algoritmu sa više redova.

Boris Damjanović P 1.62


Algoritam 6: MLS (Multilevel Scheduling)
Fixed priority preemptive scheduling (1)
• (2) Fixed priority preemptive scheduling method ili
– Fiksni metod preemptivnog rasporeda prioriteta.
• Kod ove metode, svaki red
– ima apsolutni prioritet
– iznad reda nižeg nivoa.

• Ako imamo slijedeći raspored prioriteta redova:


– Queue1> Queue2>Queue3.

• Prema ovom algoritmu,


– ni jedan zadatak u redu 3 (Queue3)
– neće biti izvršen dok god ima zadataka
» u višim redovima (Queue1 i Queue2).

Boris Damjanović P 1.63


Algoritam 6: MLS (Multilevel Scheduling)
Fixed priority preemptive scheduling (2)
• Ako se izvršava bilo koji zadatak u redu Queue3,
– a pojavi se novi zadatak u npr. redu Queue1,
• izvršenje zadatka u trećem redu (Queue3) se prekida
– u korist novog zadatka u prvom redu.

Boris Damjanović P 1.64


MFQ (Multilevel Feedback Queue)

• Jedna varijanta MLS (Multilevel Scheduling)


– algoritma je i MFQ (Multilevel Feedback Queue).

• Većina komercijalnih operativnih sistema danas,


– uključujući Windows, MacOS i Linux
• koristi Multilevel Feedback Queue algoritam

Boris Damjanović P 1.65


MFQ (Multilevel Feedback Queue)

• MFQ algoritam je proširenje algoritma


» MLS (Multilevel Scheduling)
– nastalo kao mješavina
– metoda raspodjele vremena između redova:

» Podjela vremena (Time Slicing ili Round Robin)


• koja važi za zadatke istog nivoa prioriteta
• (u istom redu) i
» Fixed priority preemptive scheduling method,
• pomoću kojeg zadaci višeg nivoa
• mogu da prekidaju zadatke nižeg nivoa.

– Najvažnija razlika između


» MFQ algoritma i MLS algoritma je ta
– što se u MFQ algoritmu niti mogu da se sele
» iz nivoa (reda) višeg prioriteta
» u nivo (red) nižeg prioriteta.
Boris Damjanović P 1.66

You might also like