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

II-Jezgro operativnog sistema

SADR AJ
3.1 Rasporeivanje procesa i dodela procesora
3.2 Algoritmi za dodelu procesora
3.3 Rasporeivanje u vie redova ekanja
3.4 Real Time sheduling algoritmi
3.5 Rasporeivanje procesa kod vieprocesorskih
sistema

3.1-Rasporeivanje sa predpranjenjem
Prebacivanjem CPU-a sa procesa na proces poveava se produktivnost
sistema
Planiranje je osnovna funkcija operativnog sistema, jer se skoro svi
raunarski resursi planiraju pre upotrebe
CPU mora da odgovori na trapove, programske zahteve i U/I prekide
Osnovni zadatak upravljanja procesorom je prebacivanje procesora sa
aktivnog procesa na neki od spremnih procesa.
O izboru spremnog procesa, na koga se prebacuje procesor, brine
rasporeivanje (scheduling).

Cilj rasporeivanja je da ravnomerno rasporedi procesorsko vreme


izmeu istovremeno postojeih procesa koji su u Ready stanju.
Omoguuje da se zadovolje principi multiuser i multitasking rada

Asihroni i sinhroni procesi

3.1-Rasporeivanje procesa
Procesor se dodeljuje drugom procesu kada:
Proces pree u stanje ekanja na resurs
Proces roditelj eka da se zavri proces dete

Prilikom prelaska iz stanja RUN u STOP


Prilikom prelaska iz stanja RUN u READY
Prilikom prelaska iz stanja WAIT u READY

3.1-Rasporeivanje procesa
Pod rasporeivanjem procesa podrazumevamo promenu aktivnog
kontrolnog bloka procesa (PCB) na koji pokazuje CPU.
Ova promena naziva se kontekstno prebacivanje (context switch).
Proces 2

Proces 1

Kada CPU prelazi na drugi


proces, sistem mora da
upamti status starog procesa i
napuni prethodno upameni
status novog procesa.
Vreme kontekstnog
prebacivanja je reija OS, tj.
sistem ne radi koristan posao
(za korisnika).
Trajanje kontekstnog
prebacivanja zavisi od
hardverske podrke.

Prekid ili sistemski poziv


Lock

Pamenje konteksta starog


procesa u PCB1

Reijsko vreme OS

Izbor sledeeg procesa za


izvravanje

Ucitavanje konteksta novog


procesa iz PCB2
Unlock i Return

3.1 Vrste i uloga planera


dugoroni
kratkoro ni
Operativni sistem ima vie
kraj
poslovi
poslovi
planera: dugoroni, srednjeroni i
Red spremnih procesa
CPU
kratkoroni.
Dugoroni planer (long term ili
planer poslova) odreuje koji e se
U/I
Redovi za U/I ure aje
poslovi propustiti u sistem.
U paketnim sistemima ima vie poslova koji su u sistemu nego onih
koji mogu da budu izvreni. Poslovi koji ekaju kopiraju se na disk.
Dugoroni planer bira poslove iz pula poslova i puni ih u memoriju.
Srednjerono planiranje(medium) odnosi na suspendovane procese.

Kratkoroni planer (short term


planer CPU-a) bira jedan od tih
poslova u memoriji i dodeljuje mu
procesor.
Osnovna razlika ova dva planera je
u frekvenciji njihovog izvrenja.

swap in

Delimini izvreni poslovi

Red spremnih procesa

U/I

swap out

CPU

Redovi za U/I ure aje

kraj

3.1 Vrste i uloga planera

Kratkorono
planiranje
Srednjerono
planiranje
Ready
Start
Dugorono
planiranje

Run

Stop

Wait

Srednjerono
planiranje
Susp.
Ready

Srednjerono
planiranje
Susp.
Wait

3.1-Kriterijumi dodele procesora


Korisniki kriterijumi:
Predvidljivost potrebno je unapred poznavati karakteristike procesa
(vreme za njegovo izvravanje)
Rokovi vreme za koje neki posao treba da se zavri
Vreme obilaska vreme koje protekne od trenutka nailska posla pa do
njegovog zavravanja
Vreme ekanja vreme koje protekne od trenutka nailaska posla pa
sve dok mu se ne dodeli procesor tj. ne pone da se izvrava
Vreme odziva to je vremenski interval od trenutka kada je korisnik
zavrio unoenje svog zahteva do trenutka kada sistem poinje da daje
neki odgovor ta taj zahtev.
Normalizovano ukupno vreme - to je odnos ukupnog vremena prema
vremenu usluge. Ta vrednost ukazuje na relativno kanjenje koje
doivljava proces. Minimalna vrednost za taj odnos je 1 (proces je
odmah izvren), a vea vrednost odgovara smanjenju nivoa usluge.

3.1-Kriterijumi dodele procesora


Sistemski kriterijumi:
Iskorienost procesora varira od 0% do 100 %
Propusna mo broj poslova koji se mogu zavriti u
jedinici vremena
Pravinost ravnopravno izvravanje svih procesa koji se
nalaze u redu spremnih (ready) procesa

Uravnoteenja resursa ravnomerno korienje resursa


Na osnovu prioriteta omoguiti da se procesi veeg
prioriteta ranije zavre (sistemski poslovi, real time zadaci)

3.1-Algoritmi za dodelu
1. FCFS First Come First Servered
2. SJF Shortest Job First
o Sa predpranjenjem
o Bez predpranjenja
3. Na osnovu prioriteta
4. RR Round Robin
5. Vienivovski redovi
6. Vienivovski redovi sa povratnom spregom
7. Real-Time
8. Multiprocesorski

3.2-First Come, First Serverd


Najednostavniji algoritam planiranja poslova
Procesor se dodeljuje onom procesu koji ga je prvi zahtevao.
Implementacija ovog algoritma se lako vri korienjem
FIFO redova.
Kada se proces ubacuje u red spremnih procesa njegov PCB
se stavlja na kraj reda a kada se procesor oslobodi on se
dodeljuje prvom procesu
Performanse ovog algoritma su veoma slabe.
FIFO ( First Input First Output)

P8 P7 P6 P5 P4 P3 P2 P1

CPU

3.2-First Come, First Serverd


PRIMER:
Posmatrajmo sledea tri posla prikazana u tabeli:

Ako su ovi poslovi pristigli u redosledu


navoenja i opsluuju se na osnovu FCFS
algoritma, rezultat ovoga vidimo u sledeoj
Gantovoj karti:

Posao

Vreme izvravanja

24

Vreme obilaska za prvi posao je 24, za drugi 27 a za trei 30.


Srednje vreme obilaska je 27.
Ako su poslovi pristigli u redosledu 2, 3, 1, dobiemo sledeu Gantovu
kartu:
Sada je srednje vreme obilaska jednako 13 to je znaajno smanjenje.
Srednje vreme obilaska za ovaj algoritam u optem sluaju nije
minimalno mogue, a moe znaajno da varira u zavisnosti od
konkretnog sluaja.

3.2-Shortes Job First (SJF)


Razliit pristup planiranju poslova prisutan je kod SJF
(Najkrai posao prvo)
Svakom poslu se pridruuje i podatak o duini njegovog
sledeeg CPU ciklusa.
Kada je procesor slobodan on se dodeljuje onom poslu kod
koga je ta duina najmanja.
Ukoliko postoje dva ili vie poslova iste duine, kao
sekundarni kriterijum koristi se FCFS.
SJF (Shoties Job First )

P6 P5P4 P3 P2

P1

P1

P3 P2 P5P4P6

CPU

CPU

3.2-Shortes Job First (SJF)


PRIMER:
Posmatrajmo sledea tri posla prikazana u tabeli:
Upotreba SJF algoritma daje sledeu Gantovu
kartu.

Posao

Vreme izvravanja

Za srednje vreme obilaska ovde se dobija da je (3+9+16+24)/4=13


Ovaj algoritam je dokazano optimalan, jer daje minimalno srednje
vreme ekanja za neki skup poslova.
U dokazu se pokazuje da premetanje kraeg posla pre dueg
smanjuje vreme ekanja kraeg posla u veoj meri nego to poveava
vreme ekanja dueg posla.
Prema tome, smanjuje se srednje vreme ekanja.
Problem je to mi ne znamo uvek koliko e pojedini posao da traje
tako da je primena ovog algoritma dosta oteana

3.2-Shortes Remaining Time First


Do sada opisani algoritmi su algoritmi bez prekidanja.
SJF algoritam moe biti realizovan i bez prekidanja i sa prekidanjem.
Dilema nastaje kada novi posao moe da ima krai CPU ciklus nego
to je potrebno za dovretak posla kome je ve dodeljen procesor.
SJF sa prekidanjem e prekinuti tekui posao koji se trenutno
izvrava, dok SJF bez prekidanja dozvoljava da se dovri tekui posao.
Varijanta SJF algoritma sa prekidanjem naziva se SRTF (ShortestRemainig-Time-First).
Algoritam na osnovu prioriteta takoe moe biti sa i bez prekidanja.
Kada posao pristie u red spremnih procesa njegov prioritet se poredi
sa prioritetom posla koji se izvrava. Ako je prioritet novog posla vii,
tekui posao e se prekinuti i procesor dodeliti novom poslu.
Algoritmi bez prekidanja (naroito FCFS) nisu pogodni za sisteme sa
deljenjem procesorskog vremena, gde je neophodno da svaki korisnik
dobije deo procesorskog vremena u pravilnim intervalima.

Rasporeivanje na osnovu prioriteta


Prioritet se pridruuje svakom poslu, a CPU se dodeljuje
poslu sa najviim prioritetom.
Poslovi sa istim prioritetom se opsluuju po FCFS
algoritmu.

SJF je u stvari algoritam sa prioritetima gde je prioritet p


jednak recipronoj vrednosti predvienog trajanja CPU
aktivosti, tj. p =1/.
Prioriteti se mogu definisati interno ili eksterno.
Interni prioriteti koriste neku merljivu veliinu za
izraunavanje prioriteta procesa (vremenske granice,
memorijski zahtevi, broj otvorenih fajlova, odnos srednjeg
trajanja U/I aktivnosti i srednjeg trajanja CPU aktivnosti).

Rasporeivanje na osnovu prioriteta


Eksterni prioriteti postavljaju se na osnovu kriterijuma koji
su spoljanji u odnosu na operativni sistem, kao to su vrsta i
iznos plaene naknade za korienje raunara, vanost
naruioca posla.
Glavni problem sa ovim algoritmom je pojava umiranja od
gladi.

(1973. godine na MIT-u, kada je raunar IBM 7094 trebao


da bude zamenjen, pronaen posao niskog prioriteta koji je
prijavljen na sistem 1967 godine i jo uvek se nije izvrio.
Reenje ovog problema je starenje.
Tehnika starenja predvia da se postepeno poveava
prioritet onih poslova koji dugo ekaju u sistemu.

3.2 Round Robin algoritam


Kruni algoritam (round-robin) je algoritam projektovan specijalno za
sisteme sa deljenjem procesorskog vremena.
Definie se mala jednica vremena (kvantum vremena) koja se kree
izmeu 10 i 100 milisekundi.
Red spremnih procesa realizovan je kao kruni red.
Planer procesa svakom procesu iz reda dodeljuje CPU na korienje
tokom intervala koji je manji ili jednak kvantumu vremena. Kada se ovaj
algoritma implementira, red spremnih procesa se realizuje kao FIFO red
procesa.
Novi proces se dodaje na kraj reda.
Planer procesa bira prvi proces iz reda, postavlja tajmer na vreme od
jednog kvantuma i dodeljuje CPU procesu.
Ako proces ima CPU ciklus krai od vremenskog kvantuma, u tom
sluaju on sam oslobaa CPU izdajui U/I zahtev ili terminiranjem.
Ako proces ima CPU ciklus vei od vremenskog kvantuma, tajmer e,
po isteku kvantuma vremena, da izazove prekid.

3.2 Round Robin algoritam

Performanse ovog algoritma veoma zavise od kvantuma vremena.


Ako kvantum vremena tei beskonanosti, ponaanje ovog algoritma
tei ponaanju FCFS algoritma.
Ako je vremenski kvantum veoma mali (1 s), Round-Robin se naziva
deljenje procesora i teoretski izgleda da svaki od n procesa u redu ima
sopstveni procesor koji je n puta sporiji od stvarnog procesora.
Prebacivanje konteksta je sa stanovita izvravanja procesa potpuno
nekoristan posao tj. nepotrebno gubljenje vremena.
Trajanje prebacivanja konteksta zavisi od brzine memorije, broja
registara i postojanja specijalnih instrukcija.
Kvantum treba da je znatno dui od vremena za promenu konteksta.
Vreme obilaska takoe zavisi od kvantuma vremena.
Vreme obilaska je krae ako veina poslova svoju CPU aktivnost
zavrava za jedan kvantum vremena.
Zato je bolje imati dui kvantum vremena, ali to onda konvergira ka
slabom FCFC algoritmu. U praksi se najee tei da kvantum vremena
u 80% sluajeva bude dui od trajanja CPU aktivnosti.

3.2 Round Robin algoritam


Primer: RR sa kvantumom = 1
Proces Vreme dolaska
P1
0
P2
2
P3
4
P4
6
P5
8

CPU vreme
3
6
4
5
2

Rasporeivanje u vie redova ekanja


Procesi se mogu
klasifikovati u vie grupa
koji imaju razliite
prioritete izvravanja.

Sistemski procesi
Interaktivni procesi
Procesi

CPU
Paketna obrada
Korisniki procesi

Algoritmi ovog tipa (Multylevel queue scheduling) dele


procese u vie razdvojenih redova koji imaju razliit prioritet
izvravanja
Svaki red ekanja moe da ima svoj potpuno nezavitan
algoritam za rasporeivanje procesa procesoru koji odgovara
njegovim potrebama
Za izbor procesa koji se stavrno dodeljuje procesoru moe se
koristiti Round Robin ili prema prioritetu.

3.3 Vienivoski redovi


Ova klasa algoritama planiranja kreirana je za situacije kada se
poslovi mogu lako klasifikovati u razliite grupe.
Uobiajena je podela na poslove u prvom planu (interaktivni) i
poslove u pozadini (paketni).
Ova dva tipa poslova imaju sasvim razliite zahteve u pogledu
vremena odziva i mogu da imaju razliite algoritme planiranja, a uz
to interaktivni poslovi mogu imati eksterno dodeljen vii prioritet
od poslova u pozadini.
Red spremnih procesa podeljen u vie redova kod ovog algoritma
Poslovi koji pristiu svrstavaju se u odgovarajui red.
Svaki red ima sopstveni algoritam planiranja, a izmeu samih
redova postoji fiksiran prioritet.
Na taj nain posao koji je prvi u svom redu moe dobiti procesor
na korienje iskljuivo ako je red vieg prioriteta prazan

3.3 Vienivoski redovi sa povratnom


spregom (Multilevel Feedback Queue)
Kod prethodnog algoritma poslovi se dodeljuju redovima po njihovom
ulasku u sistem i oni ne mogu prelaziti iz reda u red.
Ponekad se zahteva dodatna fleksibilnost koja omoguava prelazak
procesa iz jednog reda u drugi.
Poslovi sa razliitim karakteristikama CPU i I/O aktivnosti se izdvajaju
Ako posao koristi previe CPU vremena premeta se u red sa niim
prioritetom dok se I/O procesi prebacuju u red sa visokim prioritetom.
Uvodi se vremenska komponeneta koja spreava gladovanje ako
proces eka suvie dugo premeta se u red vieg prioriteta.
Multilevel-feedback-queue rasporeiva definiu sledei parameteri:
Broj redova
Algoritmi rasporeivanja za svaki red
Metod koji definie kada se proces premeta u prioritetniji red
Metod koji definie kada se proces sputa u red sa niim prioritetom
Metod koji definie u koji red se proces upisuje kada ulazi u sistem

3.3 Vienivoski redovi sa


povratnom spregom - primer
Tri reda:
Q0 time quantum 8 ms
Q1 time quantum 16 ms
Q2 FCFS
Rasporeivanje
Novi posao upisuje se u red Q0 koji se opsluuje po FCFS.
Kada dobije CPU, posao radi 8 ms.
Ako za to vreme ne zavri sa radom, premeta se u red Q1.
U redu Q1 posao se jo jednom opsluuje po FCFS algoritmu, ali sada
dobija 16 ms.
Ako ni tada ne zavri sa radom, istiskuje se i upisuje u red Q2.

3.4 Real Time scheduling


Scheduling algoritmi za rad u realnom vremenu u principu dosta se
razlikuju u odnosu na scheduling politike kod OS-ma opte namene.
Oni ne dozvoljavaju da neki proces ne bude opsluen za mnogo dugo
vreme, ali dozvoljavaju da se neki procesi izvravaju ee od drugih.
Kod RT scheduling-a izrazit je problem krajnjih-rokova (deadlines).
Cena koja treba da se plati ako se propute krajnji rokovi je razliita od
sistema do sistema, ali RT scheduling algoritmi su tako projektovani da
zadovolje zahteve u pogledu krajnjih rokova, a time i ispune zahteve u
pogledu propusnosti (throughput) u radu sistema.
Globalno posmatrano RT scheduling algoritme delimo na soft i hard.
Hard-RT - moraju da izvre neki proces u propisanom terminu da bi
izbegli greku. Raketni sistemi su tipini reprezenti hard-RT sistema.
Soft-RT sistemi se koristi da ukae na bilo koji sistem koji preferira da
ispuni krajnje rokove ali ako to ne ostvari ne dolazi do pogrenog rada
sistema. Primer, korisniki interfejs.

3.5 Rasporeivanje u
vieprocesorskim sistemima
Rasporeivanje procesa kod vieprocesorskih sistema je
komplikovanije jer se zahteva striktna sinhronizacija procesa
Formira se zajedniki red za ekanje

Tehnike koje se tada koriste odnose se na:


Simetrino multiprocesiranje - svi procesori su
ravnopravni i pretrauju red i uzimaju procese koje e
izvravati
Asimetrino procesiranje postoji master CPU koji
odreuje koji e proces biti dodeljen odreenim CPU
(master/slave). Ovde master CPU izvrava sistemske
procese a ostali CPU korisnike

Hvala na panji !!!


Pitanja
? ? ?

You might also like