Вы находитесь на странице: 1из 7

1. to je OS, koji su osnovni zadaci?

Operativni sustav je programski paket koji djeluje kao suelje izmeu korisnika
i
hardvera, to je ujedno i skup programa koji vode kontrolu koritenja
resursa(procesora, glavne memorije..) ; kontrolira izvoenje programa,
dodjeljivanje
memorije, upravljanje podacima.
Glavni cilj OS-a je da omoguava
Jednostavnije koritenje raunala tako da korisnik pri radu ne mora voditi
rauna o specifinosti hardvera
Efikasnije koritenje resursa
2. Koji su zadaci Osa?
Zadaci Os-a su:
Upravljanje procesima: Proces je program koji se izvodi. Os mora obavljati
stvaranje i ponitavanje korisnikih i sistemskih procesa, odgaanje odnosno
prekidanje i ponovno aktiviranje procesa, sinkronizaciju, komunikaciju meu
procesima i rjeavanje deadlocka.
Upravljanje radnom memorijom: Os mora: pratiti koji su memorijski dijelovi
trenutno zauzeti i od koga; odluivati kojem procesu e dodijeliti osloboeni
memorijski prostor; dodjeljivati i oslobaati memorijski prostor po potrebi.
Upravljanje sekundarnom memorijom: Os mora: upravljati slobodnim
memorijskim prostorom; dodjeljivati memoriju; upravljati zahtjevima za pristup
sekundarnoj memoriji.
Upravljanje ulazom/izlazom
Upravljanje datotekama: Os mora omoguiti: stvaranje i unitavanje
datoteka, direktorija; osnovne operacije s datotekama; organizirati sustav
pristupa.
Zatita koritenja sustava
Otkrivanje pogreki u radu
Rad s mreom
Tumaenje korisnikih naredbi
3. to je proces, ime je odreen i kako OS vodi evidenciju o procesu?
Proces je program u izvoenju jer mijenja sadraj resursa. Sustav se sastoji od:
korisnikih procesa - izvode korisniki kod
procesa OS-a - izvode sistemski kod
Procesi se izvode paralelno meusobno dijelei procesor. Obuhvaaju trenutne
aktivnosti u sustavu opisane sadrajima registara procesora i sadrajima
memorijskih
lokacija koje koristi proces. Sadri programski odsjeak i stog procesa koji
sadri
privremene i globalne podatke pohranjene u podatkovnoj memoriji. Proces je
program u izvoenju sa programskim brojilom i pripadajuim skupom registara
i
memorijskih lokacija kao i resursa koje koristi.
Operativni sustav vodi evidenciju o procesu u PCB-u (Process Control Block).
To je
struktura u kojoj su smjetene informacije o procesu. Svaki PCB sadri id
procesa, ime
procesa, trenutno stanje procesa, image na disku, sadraj registara, podatke o
memoriji koju proces koristi, popis otvorenih datoteka, informacije o korisniku

procesa, pokazivae(na parent, child procese , ako postoje)...


4. Navedi i objasni stanja u kojima se proces nalazi tijekom izvoenja!
Stanje procesa je odreeno njegovom trenutnom aktivnou.

Proces se moe nalaziti u jednom od stanja:


Novi (new) stanje u kojem se proces nalazi nakon to je stvoren, kreira se
PCB i
proces ide u sljedee stanje pripravan.
Pripravan (ready) oznaava proces koji se nalazi u redu za izvravanje.
Nakon
nekog vremena, kada dobije pravo koritenja procesora, proces prelazi u
stanje aktivan.
Aktivan oznaava proces koji se trenutno izvrava. Ukoliko OS prekine
aktivan
proces tada se taj proces prebacuje u stanje pripravan, a ukoliko proces
mora obaviti neku I/O operaciju, tada ide u stanje eka. (U oba sluaja se
zapamti trenutno stanje popunjavanjem PCB-a).
2 eka (waiting) oznaava stanje procesa u kojem proces eka na npr.
Ulazno/Izlaznu operaciju.
Zavrio (terminated) oznaava stanje procesa u kojem je obrada zavrena,
brie se PCB.
U jednom trenutku samo jedan proces moe biti aktivan, dok ih vie moe biti u
stanju
pripravan ili eka.
5. Kako OS organizira procese kako biih prebacivao iz stanja u stanje
Stanja pripravan, eka na disk, I/O.. su u memoriji prikazana kao redovi
realizirani
pomou vezanih lista. U Data segmentu OS-a nalaze se pokazivai:
Pripravan poetak (pokazuje na prvi proces u redu pripravan)
Pripravan kraj (pokaziva na kraj reda pripravan)
Aktivan (pokaziva na trenutno aktivan proces)
Za svaki red eka pokaziva na poetak i kraj (slino kao i pripravni
pokazivai, samo za red eka)
OS jednostavno prebacuje procese iz stanja u stanje tako da stavi proces u
odreen
red. PCB meu ostalim podacima sadri i pokazivae koji e pokazivati na
sljedei i
prethodni u redu, te polje u kojem je zapisano stanje procesa. Prebacivanje iz
reda u
red se obavlja jednostavnim preusmjeravanjem pokazivaa.
6. Objasni context switch
Context switch je izmjena aktivnog procesa. Kod prebacivanja obrade s jednog
procesa na drugi procesor mora sauvati stanje prekinutog procesa tako da ga
zapie u PCB , te obnoviti stanje procesa (tako da uita sve potrebne podatke iz
PCB-a) koji postaje aktivan. Sam context switch traje neko odreeno vrijeme i
nastojimo da to vrijeme bude to krae. Problem je to u PCB upisujemo i
informacije

o dodijeli i koritenju memorije procesa. Taj proces dodatno usporava context


switch.
Zbog toga koristimo niti (threadove) koje smanjuju broj izmjena konteksta.
Koraci izmjene konteksta:
1. Sadraj spremnika upie se u PCB na koji pokazuje pokaziva aktivan
2. PCB iz reda aktivan stavi u red eka
3. Prvi proces iz reda pripravan stavi u red aktivan
4. Obnovi stanje procesa koji postaje aktivan(prepie stanja registara iz PCB-a).
7. Strategije dodjele procesora.
Postoje razliiti algoritmi za dodjelu procesora. Kriteriji po kojima
usporeujemo koliko
je dobro neko rjeenje su:
Iskoristivost hardvera
Vrijeme ekanja to krae tako da korisnik dobije to bru uslugu
Algoritmi za dodjelu procesora:
1. Prvi u redu prvi posluen (FIFO) ima najgore teka
2. Krai poslovi prvi (shortest jobs first, SJF) problem troenja vremena na
raunanje vremena izvravanja pojedinih procesa
3. Round Robin - time sharing kojemu je temelj FIFO uz uvoenje
ogranienja
vremena koje proces moe provesti u izvoenju
4. Ograniavanjem vremena u aktivnom stanju na vremenski kvant T - teka je
relativno dobro. Treba odabrati optimalno vrijeme kvanta T(ne smije biti
premalo zbog izmjene konteksta). Ako se izvravanje procesa prekine zbog
isteka T onda ga ponovno vraamo u red pripravan ali mu poveamo T.
8. Na primjeru proizvoapotroa objasni kritini odsjeak.
Dva procesa su nezavisna ako nemaju zajednike varijable i ne koriste iste
dijelove
memorije.
Primjer zavisnih procesa je problem proizvoa-potroa. Proizvoa proizvodi
poruke, kojih moe biti maksimalno n, a potroa ita poruke i tako ih troi. Da
se
osigura da proizvoa ne unosi poruku u pun spremnik, odnosno da potroa ne
oitava poruku iz praznog spremnika uvodi se varijabla brojac koja se
inicijalizira na
vrijednost nula:
proizvoa potroa
int in = 0; int out = 0;
while (1) while (1)
{{
proizvedi podatak; while (brojac = = 0) nop;
while (brojac = = N) nop; procitaj podatak iz buffer[OUT];
stavi podatak u buffer[in]; out+ +;
in+ +; if (out >= N) out = out % 8;
if (in >= N) in= in% 8; brojac - -;
brojac + +; potroi podatak;
}}
Varijabla brojac je varijabla koju dijele oba procesa. U asemblerskom obliku
naredbe
za smanjivanje, odnosno za poveavanje brojaa glase ovako:

proizvoa potroa
mov ax, brojac mov ax, brojac
inc ax dec ax
mov brojac, ax mov brojac, ax
Ako npr. doe do prekida nakon prvog reda izvoenja naredbe za
inkrementaciju
brojaa i procesor se prebaci na izvoenje drugog procesa (potroa), varijabla
brojac ostaje nepromijenjena te dolazi do greke. Taj dio procesa, u kojem se
prvo
ita zajednika varijabla, zatim se obrauje i na kraju ta izmijenjena vrijednost
upisuje, se naziva kritian odsjeak. Kritian odsjeak openito se definira kao
dio
procesa u kojem proces pristupa ili mijenja zajednike varijable ili datoteke. Za
operacijski sustav je bitno da osigura da kada je jedan proces u kritinom
odsjeku
tada niti jedan drugi zavisan proces ne smije izvoditi svoj kritian odsjeak.

9. Kako se rjeava kritini odsjeak pomou test&set?


NEKRITIAN
DIO
KRITIAN
ODSJEAK
ULAZ
IZLAZ
Naredbom test&set proces signalizira procesoru da ulazi u kritini
odsjeak i time osigurava da ga se, u tom dijelu, ne prekine u
izvravanju. Prilikom ulaska u kritian odsjeak proces provjerava da l
je neki drugi proces u kritinom odsjeku i ako je, eka da taj pr
izae i tek onda ulazi u njega. Kada proces izae iz kritinog
odsjeka jednostavno signalizira da je izaao.
i
oces
Na ulazu u kritian dio koristimo: while (test&set(flag)) nop; - s tim
kodom provjeravamo da li je neki proces ve u kritinom odsjeku i
ako je ekamo da izae iz njega.
Na izlazu iz kritinog odsjeka koristimo flag=0;
10. Objasni semafor
Koritenje semafora efikasno rjeava:
problem ulaska procesa u kritian odsjeak
probleme vezene uz sinkronizaciju meu procesima
Sam semafor je realiziran kao struktura koja se sastoji od cjelobrojne varijable
(koja je
u poetku inicijalizirana na npr. 1) i pokazivaa na PCB (na poetku null).
Problem
ostalih algoritama je u tome to proces koji nije dobio dozvolu za ulazak u
kritini
odsjeak aktivno eka troei vrijeme procesora. Kod semafora taj se problem

rjeava primjenom operacija ekaj i postavi.


ekaj (semafor S)
{
s.vrijednost--;
if(s.vrijednost<0)
{
upii stanje procesa u PCB
stavi PCB procesa u red ekanja na S;
aktiviraj prvi proces iz reda pripravan;
}
}
Postavi (semafor S)
{
s.vrijednost++;
if(s.vrijednost<=1)
{
prvi proces iz reda eka semafora S
stavi u red pripravan
}
}
Proces koji izvodi operaciju ekaj i zakljui da ne smije nastaviti izvoenje
mora sam
prekinuti svoje izvoenje i stati u red ekanja na semaforu. Potom se izvoenje
predaje operacijskom sustavu koji aktivira neki proces iz reda aktivnih procesa.
Uz
svaki oblik kritinih odsjeaka vezan je jedan semafor koji ima svoj red
ekanja. Kad
proces izvodi operaciju postavi na semaforu; jedan proces, koji eka u redu na
taj
semafor, se aktivira i prebaci u red pripravan. Same naredbe promjene
vrijednosti
semafora moraju biti nedjeljive i njima direktno upravlja OS.
11. Kako pomou semafora rijeiti problem proizvoa potroa?
Proizvoa:
while (1)
{
proizvodi poruku;
while (brojac == N) nop;
stavi poruku u buffer;
in++;
if (in==N) in=0;
ekaj(S);
brojac++;
postavi(S);
}
Potroa:
while (1)
{
while (brojac == 0) nop;

proitaj poruku iz buffera;


out++;
if (out==N) out=0;
ekaj(S);
brojac--;
postavi(S);
}
Kritian dio programa proizvoa, potroa je dio u kojem se mijenja vrijednost
zajednike varijable brojac. Problem kritinog dijela moemo rijeiti koristei
semafor
S.
U ovom programu postoji i problem sinkronizacije u dijelu while (brojac == N)
nop; i while
(brojac == 0) nop. Taj problem rjeavamo uvoenjem dvaju semafora Spun i
Sprazan.
Sada program izgleda:
Proizvoa:
while (1)
{
ekaj(Spun);
proizvodi poruku;
stavi poruku u buffer;
postavi(Sprazan);
in++;
if (in==N) in=0;
}
Potroa:
while (1)
{
ekaj(Sprazan);
proitaj poruku iz buffera;
postavi(Spun);
out++;
if (out==N) out=0;
}
Ako koristimo semafore, tada vie nema potrebe za koritenjem naredbi while
(brojac
== N) nop;
i while (brojac == 0) nop. Inicijaliziramo Spun.vrijednost = n (veliina buffera)
i
Sprazan.vrijednost=0. Kako se buffer puni (u programu proizvoa) tako se
vrijednost
varijable Spun.vrijednost smanjuje, a vrijednost Sprazan.vrijednost raste.
Spun.vrijednost se moe smanjivati maksimalno do -1 (to e ujedno znaiti da
je
buffer pun) jer e tada funkcija ekaj(Spun) staviti proces proizvoa u red
ekanja
Spun i aktivirati proces potroa. Proces potroa: kako se buffer prazni tako
funkcija

eka(Sprazan) smanjiva vrijednost Sprazan.vrijednost, a f-ja postavi(Spun)


poveava
vrijednost Spun.vrijednost. Vrijednost Sprazan.vrijednost se takoer moe
smanjivati
samo do -1 kada f-ja ekaj(Sprazan) stavi proces potroa u red ekanja na
Sprazan
i ponovo prebaci izvoenje na proces proizvoa. Glavna prednost ovakvog
koritenja je u tome to se izbjegava prazan hod kod procesa proizvoa(kada je
buffer pun) i kod procesa potroa (kada je buffer prazan).
12. Problem potpunog zastoja (deadlock)
Vie procesa moe istovremeno zahtijevati uporabu istih resursa raunarskog
sustava.
Primjer: Imamo dva procesa P1 i P2. P1 rezervira resurs S1 i izvravanje se
prebaci na
P2 koji rezervira resurs S2. U iduem prebacivanju izvoenje se vrati na P1 koji
sada
eli rezervirati S2 ali taj resurs je rezerviran od strane P2 pa P1 prebacimo u
stanje
ekanja. Procesor prebaci izvravanje na P2 koji sada eli rezervirati S1, ali ne
moe
pa se i on prebaci u stanje ekanja. Ne izvrava se niti jedan proces. Ovakva
situacija se naziva potpuni zastoj (deadlock).
n, m oznaavaju koliko istih resursa imamo.

Kvadrati S1 i S2 oznaavaju resurse(hardverske i softverske), dok krugovi P1 i


P2
oznaavaju procese. Potpuna petlja oznaava da postoji zastoj

Вам также может понравиться