Professional Documents
Culture Documents
OS Predavanje 2 2015
OS Predavanje 2 2015
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.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:
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.
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
Start
Ready
Suspend
Ready
Stop
Run
Wait
Suspend
Wait
Novi procesi
Red za ekanje na
CPU
CPU
Vremen.kvantum
je istekao
Novi proces
Generisanje
novog procesa
Prekid
Prekid.rutina
( Interupt)
Red za U/I
Zahtev za U/I
ureajem
8. Blokiranje procesa
9. Deblokiranje procesa
10. Obustavljanje (suspend) procesa
11. Reaktiviranje procesa
Protroa
item sledei_proizveden;
item sledei_potroen;
while (1) {
while (1) {
/*proizvoa proizvodi*/
while (((in+1)%N)==out);
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 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
Jednonitni
PCB
podaci
datoteka
TCB
TCB
TCB
stack
stack
stack
registri
registri
registri
kod
datoteka
podaci
stack
registri