You are on page 1of 19

II-Jezgro operativnog sistema

SADR AJ
2.1 Jezgro
2.2 Proces
2.3 Predstavljanje procesa
2.4 Rasporeivanje procesa
2.5 Operacije nad procesima
2.6 Rutine za interprocesnu komunikaciju
2.7 Laki i teki procesi

2.1 - Jezgro (Nucleus ili Kernel)


Predstavlja osnovni deo svakog operativnog sistema
najblie je hardveru raunara (osim kod strukture sa HAL-

Hardware Abstraction Level Windows)

konekcija - obezbeuje vezu izmeu hardvera raunara i


ostalih slojeva operativnog sistema
apstrakcija hardvera - omoguava programima da pristupe
hardveru bez nekog poznavanja detaljne hardverske strukture
upravlja procesima: kada i koji proces e se izvravati kao i
omoguava meusobnu komunikaciju izmeu procesa

nije potrebno samo ako programi ne ele da koriste njegove


usluge i pristupaju direktno hardveru nemogunost prelaska
iz jednog u drugi program (raunar mora da se resetuje)

2.1 - Jezgro (Nucleus ili Kernel)


Osnovni zahtevi koji se zahtevaju od hardvera raunara:
Mehanizam prekida omoguuje izvravanje prekidne
rutine koja obezbeuje prelazak sa korisnikog na upravljaki
program, tj. omoguuje izvravanje vie uporednih programa

Zatitni mehanizam adresiranja memorije spreava


pogreno adresiranje, tj. meanje podataka iz dva procesa
Skup privilegovanih instrukcija instrukcije koje nisu
dostupne svima, ali se zahteva da procesor ima dva naina
rada: korisniki i sistemski reim
asovnik realnog vremena kontrola i evidentiranje
potronje resursa raunara za sve aktivne procese. Omoguuje
rasporeivanje i izvravanje raznih poslova u nekom trenutku

2.1 - Jezgro (Nucleus ili Kernel)


Osnovni delovi jezgra
1. Prvi nivo obrade (FLIH-First Level Interrupt Handler)
odreivanje izvora prekida i iniciranje servisa koji treba da
se izvre na osnovu tog prekida
2. Dispeer sistema (low-level scheduler) dodeljuje
procesor odreenom procesu na osnovu nekog unapred
definisanog algoritma za dodeljivanje
3. Rutine za interprocesnu komunikaciju obezbeuju da
procesi koji se konkuretno (paraleno) izvravaju mogu
meusobno da komuniciraju putem: slanja poruka,
semafora, imenovanih cevi (named pipes) ili korienjem
zajednike memorije

2.2 - Proces
Predstavlja deo programa koji je u stanju izvravanja
Resurs koji se moe dodeliti procesoru za izvravanje
Resurs koji neto radi na raunaru
Aktivnost koja se sastoji od niza instrukcija koje procesor
izvrava
Svaki proces se sastoji i zauzima u memoriji tri razliita memor.dela:

1. Programski - kod procesa (moe biti zajedniki za jedan


program)
2. Stek privremene podatke: lokalne promenljive
3. Podatke globalne promenljive koje proces obrauje
Osim memorijskih delova proces obuhvata i vrednosti registara CPU
Razliiti nazivi za aktivnosti CPU: procesi (processes), poslovi
(jobs), zadaci (tasks)

2.3-Predstavljanje procesa
U svakom trenutku svaki proces je jednistveno definisan PCB strukturom
PCB (Process Control Blok) je deo radne memorije koja uva:
Jedinstveni identifikator procesa (PID) - uniformno definie svaki
proces
Trenutno stanje procesa spreman (ready), eka (wait) i izvrava (run)
Konteks (okruenje) podaci o registrima CPU dok se proces izvrava
(esto se naziva i HPD - Hardware Process Descriptor)
Prioritet procesa vanost procesa u odnosu na ostale procese
Memorijski ukazatelji programski kod, podaci, mem.blokovi koji su
zajedniki sa ostalim procesima
Listu otvorenih datoteka datoteke koje koristi proces
Status zauzetih U/I resursa U/I zahtevi, U/I ureaji koji su dodeljeni
Dodatne informacije-koliinu procesorskog vremena, vremenske limite
PCB se uvek nalazi u razliitom memorijskom prostoru od koda procesa.

2.3 Stanja procesa


Proces u toku svog rada prolazi kroz nekoliko stanja:
Start formiranje procesa koji ne mora da je u rad.memoriji
Spreman(Ready) nalazi se u radnoj memoriji, ima sve
resurse, i eka da mu se dodeli procesor
Izvravanje (Run) procesor izvrava instrukcije procesa
eka (Wait) proces nema sve resurse da bi se izvrio
Stop - kraj izvrenja procesa, bre se PCB iz liste aktivnih
procesa pa proces moe da se izbaci iz radne memorije
Obustavljen/Spreman (Suspend/Ready) proces koji se
nalazi u stanju spreman moe biti obustavljen i izbaen iz
memorije
Obustavljen/eka (Suspend/Wait) - proces koji se nalazi u
stanju eka moe biti obustavljen i izbaen iz memorije

2.3 Dijagram stanja procesa

Start

Ready

Run

Stop

Wait
Start-Ready: prebacivanje procesa u radnu memoriju
Ready-Run: dodeljivanje procesora procesu
Run-Ready: oduzimanje procesora procesu (istek vremena, prekid)
Run-Wait: proces nema sve resurse da bi mogao da se kompletira/izvri

Wait-Ready: proces je dobio resurs koji mu je neophodan da bi se izvrio


Run-Stop: proces zavrava rad (prirodno ili nasilno)

2.3 Dijagram stanja procesa

Start

Ready
Suspend
Ready

Stop

Run

Wait

Suspend
Wait

Ready-Suspend/Ready: veliki broj procesa u stanju Ready, izbegavanje


zastoja, eksplicitno obustavljanje procesa
Suspend/Ready-Ready: eksciplitno na zahtev korisnika

Suspend/Wait-Wait: eksiplitno na zahtev korisnika


Wait-Suspend/Wait: veliki broj procesa u stanju Wait
Suspend/Wait-Suspend/Ready: osloboen je neophodni resurs za
izvrenje procesa ali je proces i dalje obustavljen

2.4 Rasporeivanje procesa


Procesi mogu da se nau na raznim lokacijama u sistemu
Svi spremni procesi nalaze se u radnoj (operativnoj) memoriji
Svi procesi prolaze kroz nekoliko redova ekanja koji se realizuju kao
povezane liste koje sadre PCB procesa
Zavretak

Novi procesi
Red za ekanje na
CPU

CPU

Proces koji se izvrava moe:


1. Ostati bez CPU

Vremen.kvantum
je istekao

2. Napraviti novi proces

Novi proces

3. Biti prekinut prekid


4. Zahtevati neki U/I resurs
U/I

Generisanje
novog procesa
Prekid

Prekid.rutina

( Interupt)

Red za U/I

Zahtev za U/I
ureajem

2.4 Planer poslova i dispeer


Dva osnovna programa za rasporeivanje procesa su:
planer poslova i dispeer sistema
Funkcije planera poslova (job scheduler):
1. Podela poslova na procese
2. Na osnovu odreenih algoritama pravi redosled izvravanja
procesa
3. Smeta procese u red ekanja na procesor
Poziva se samo kada doe neki novi proces ili kada se proces zavri
Uloga dispeera sistema(dispatcher) je da dodeli procesor procesu:
1. Izborom najprioritetnijeg procesa
2. Promenom konteksta procesa potrebno je da upamti stanje
tekueg procesa (kako bi moga da ga vrati kasnije) i da napuni
memoriju parametrima novog procesa koji treba da se izvrava

2.5 Operacije nad procesima


1. Kreiranje novog procesa
2. Pravljenje veze proces-proces roditelj

3. Zaustavljanje (terminiranje) rada procesa


4. Izbacivanje procesa (brisanje PCB iz reda za ekanje na CPU)
5. Promena stanja procesa
6. Promena prioriteta procesa
7. Izbor procesa

8. Blokiranje procesa
9. Deblokiranje procesa
10. Obustavljanje (suspend) procesa
11. Reaktiviranje procesa

12. Vraanje procesa iz obustavljenih stanja

2.6 Rutine za interproc.komunika.


Svi procesi u odnosu na meusobnu zavisnost toka izvravanja dele se:
Nezavisne-ne utiu na izvrenje drugih procesa, niti drugi procesi utiu
Kooperativne - predstavljaju procese koji imaju meusobni uticaj jedni
na druge, dele zajednike podatke ili bilo kakve resurse. Njih karakterie:
1. Deljenje informacija - obezbediti ravnopravni pristup podacima
2. Ubrzanje rada - ima smisla kod vieprocesnih sistema kao i
viestrukim U/I (RAID struktura)
3. Modularnost - podela sistemskih funkcija na procese i niti
4. Pogodnost - omoguavanje da se vie poslova odvija istovremeno
Potrebno je da zavisni procesi mogu da meusobno komuniciraju
Komunikacija izmeu procesa vri se pomou:
1. Korienjem zajednike memorije - bafera
2. Slanjem poruka
3. Semaforske tehnike
4. Korienjem imenovanih cevi (named pipe)

2.6 Korienje zajednikog bafera


Bafer je realizovan kao cirkularna struktura od N elemenata (0, N-1)
Postoje 2 pokazivaa: in (prvo slobodno mesto) i out (prvo puno mesto)
Proizvoa

Protroa

item sledei_proizveden;

item sledei_potroen;

while (1) {

while (1) {

/*proizvoa proizvodi*/
while (((in+1)%N)==out);

/*bafer je pun, eka se da


potroa neto uzme iz bafera*/

while (in==out);
/*bafer je prazan, eka se da
proizvoa neto stavi u bafer*/
sledei_potroen=buffer[out];

buffer[in]=sledei_proizveden;

in=(in+1)%N;
}

out=(out+1)%N;

/*potroa koristi(uzima)*/
}

2.6 Slanje poruka


Primenjuje se u distribuiranim sistemima kada se procesi odvijaju na dva
nezavisna raunara koji su fiziki odvojeni
Moraju da budu podrane sledee dve operacije:
Slanje poruke (send massage)
Prijem poruke (receive message)
Poruke mogu da budu:
Fiksne duine (manje fleksibilne ali se lake implementiraju)
Promenljive duine (fleksibilnije su ali se tee implementiraju)
Dve eme za realizaciju ove metode:
Sinhrono ili blokirajue slanje i primanje poruke
Asihrono ili neblokirajue slanje i primanje poruke
Komunikacija moe da bude:
Direktna
Indirektna putem potanskih sanduia(mailbox) ili priljuka (ports)

2.6 Semafori
Semafor predstavlja celobrojnu nenegativnu promenljivu koja
oznaava neki resurs i omoguava komunikaciju izmeu procesa koji ga
koriste
Dve nedeljive operacije karakteriu svaki semafor:
Signal(s) poveava vrednost semafora za 1, tj. s=s+1
Wait(s) smanjuje vrednost semafor za 1, tj. s=s-1
Ove operacije ne mogu se podeliti na vie ciklusa, tako da dva procesa
ne mogu istovremeno izvravati ove operacije nad istim semaforom
Naredbe moraju da se implementiraju u jezgru OS jer imaju direktne
veze sa dispeerom sistema jer uvode/izvode resurse iz stanja ekanja
Vrednost semafora moe se odrediti u svakom trenutku sa formulom
val(s)=c(s)+ns(s)-nw(s)
c(s) poetna vrdenost semafora, ns(s) broj operacija signal
nw(w) broj operacija wait

2.6 Named pipes


Omoguavaju sekvencijalnu komunikaciju izmeu 2 povezana procesa
Predstavljaju standardno sredstvo za meuprocesnu komunikaciju
(IPC) na Windows, kao i na Unix platformama.
Svaki kreirani pipe ima unapred utvrenu veliinu u bajtovima i njemu
se pristupa kao obinom fajlu
Predstavlja tehniku koja je serijskog tipa podaci se itaju istim
redosledom kako su i upisani - First-In, First-Out
Jedan proces otvara FIFO za upis, drugi proces otvara FIFO za itanje
a za upis i itanje koriste se funkcije niskog nivoa (write, read)
Kada proces eli da upie neto u pipe to se odmah izvrava ukoliko
ima prostora u njemu, suprotno proces se blokira.
Slino je kod itanja pipe ukoliko se ita manje bajtova nego to se
nalazi u pipe, suprotno, ako je broj bajtova vei proces se blokira
Operativni sistem vodi rauna da se samo jedna operacija moe izvriti
u isto vreme (mutual exclusion)

2.7 Laki i teki procesi


Laki procesi, niti (threads) predstavljaju najmanji programski blok koji
planer (scheduler) moe rasporeivati a koji moe da obavi neki posao
Prebacivanje konteksta je bre a komunikacija izmeu niti je znatno
jednostavnija jer one dele isti memorijski prostor
Teki procesi mogu imati vie niti koje se paralelno izvravaju

Prednosti vienitnog koncepta


Smanjenje vremena odziva
Ekonominost u prostoru,
resursima i uteda u vremenu
Bolje iskorienje
vieprocesorske arhitekture

Jednonitni
PCB

Vienitni proces (3)


kod

podaci

datoteka

TCB

TCB

TCB

stack

stack

stack

registri

registri

registri

kod
datoteka
podaci
stack
registri

Hvala na panji !!!


Pitanja
? ? ?

You might also like