You are on page 1of 257

8.

GOSPODARENJE SPREMNIČKIM PROSTOROM

1. Gdje se generiraju adrese unutar procesora?


Programsko brojilo adrese instrukcija
Registar kazaljke stoga stogovne adrese
Sadržaj adresnih dijelova instrukcija adrese podataka

2. Kako je podijeljen procesni adresni prostor?


Dretveni prostori + zajednički prostor

3. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindri, staze,


sektori).
Disk se sastoji od više ploča na istoj osovini. Kružnice na ploči predstavljaju staze, a staze su
podijeljene na jednake dijelove (kružne lukove s jednakim središnjim kutom) – sektore. Staze
jednakih polumjera svih diskova čine cilindar.

4. Čime je određena jedinstvena adresa svakog sektora na disku?


• Rednim brojem ploče
• Rednim brojem staze na ploči
• Rednim brojem sektora na stazi
Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na temelju
položaja glave, a redni broj sektora dobiva se tako da se mjere kutovi vrtnje počevši od
posebne oznake na ploči koja označava početni kut.

5. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk - radni spremnik?

1
6. Od Čega se sastoji trajanje traženja staze (seek time)?
• Ubrzavanje (ručice glave)
• Gibanje konstantnom brzinom
• Usporavanje
• Fino pozicioniranje

7. Koliko iznosi prosječno vrijeme traženja u odnosu na vrijeme koje je potrebno za


prijelaz preko svih staza?
Za vrijeme traženja se uzima trećina vremena potrebnih za prijelaz svih staza

8. Zbog čega nastaje rotacijsko kašnjenje i koliko ono iznosi?


Rotacijsko kašnjenje (Tr) nastaje zbog toga što se nakon postavljanja glave na odabranu stazu
mora prije početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor.
U najlošijem slučaju može se dogoditi da je adresirani sektor upravo prolazio ispod glave kad
je ona prispjela na stazu i tada mora čekati puni krug.
Najpovoljniji slučaj je onaj kada traženi sektor upravo nailazi ispod glave u trenutku njezina
postavljanja na stazu (rotacijsko kašnjenje je nula). Zato se za rotacijsko kašnjenje uzima
prosječna vrijednost, odnosno pola trajanja jednog okretaja (Tr=Tr/2).

9. Čime je određena brzina prijenosa podataka s diska u spremnik diskovne upravljacke


jedinke?
Trajanje prijenosa određeno je brzinom prijenosa i količinom prenesenih podataka. Brzina
prijenosa može se izračunati tako da se broj sektora na stazi pomnoži s brojem bajtova u
sektoru i taj umnožak podijeli s trajanjem jednog okretaja.

10. Neka je trajanje traženja staze Ts nekog diska s 2000 staza opisano sa sljedeće tri
formule, gdje je D udaljenost izmedu trenutnog položaja glave i tražene staze:

• Ts = 1.5 x D ms za D ≤ 4,
• Ts = 4.0 + 0.5 x D1/2 ms za 4 < D ≤ 400,
• Ts = 10.0 + 0.01 x D ms za D > 400.

Koliko iznosi prosjecno vrijeme traženja staze?

2
11. Navesti sadržaj procesnog informacijskog bloka.
Procesni informacijski blok sastoji se od tablica sektora u kojima je program procesa
pohranjen na disku, podataka o smještaju programa u radnom spremniku.

12. Opisati postupke statičkog i dinamičkog dodjeljivanja spremnika.

Statičko dodjeljivanje:
Kod statičkog raspoređivanja programi se tijekom svog boravka u sustavu nalaze u istom
dijelu radnog spremnika. Spremnik se dijeli na dijelove stalne veličine tzv stalne particije.
Particije različitih veličina omogućavaju bolje iskorištenje radnog spremnika jer se manji
programi spremaju na manje particije a veći programi u veće. Programi se nalaze na disku i
mogu se po ukazanoj potrebi napuniti u radni spremnik. Ako ih se privremeno izbaci iz
radnog spremnika oni se kasnije vraćaju u istu particiju. Pošto radni spremnik nije iskorišten
dolazi do problema fragmentacije. Dvije vrste fragmentacije:
- VANJSKA: javlja se zbog toga što se programi ne mogu izvoditi u drugim dijelovima
memorije nego u onima za koje su kompajlirani
- UNUTARNJA: javlja se zbog toga što je program manji od dodijeljene particije
Dinamičko dodjeljivanje:
Programi se upisuju jedan iza drugog. Dodan je sklop s kojim se početna adresa pribraja
svakoj adresi koju proces proizvede. Programi se priređuju tako da svaki ima svoj adresni
prostor. Važno je da se prije izvođenja u bazni registar pohrani aktualna početna adresa.

13. Navesti vrste fragmentacije prilikom statičkog dodjeljivanja spremnika.


Unutarnja fragmentacija: Programi nisu jednake veličine kao particije pa ce dijelovi
particija ostati neiskorišteni.
Vanjska fragmentacija: Tijekom rada se može dogoditi da svi procesi čiji su programi
smješteni u istu particiju bivaju blokirani pa ta particija radnog spremnika ostaje prazna.
Pritom može postojati više procesa čiji programi čekaju na dodjelu radnog spremnika, ali oni
ne mogu biti napunjeni u radni spremnik jer nisu pripremljeni za tu particiju.

14. Problem fragmentacije prilikom dinamičkog dodjeljivanja spremnika se ne može


izbjeći, ali se može ublažiti. Kako?
Rupe se održavaju što većima kako bi se u njih mogao smjestiti novi program.
• Pri svakom oslobađanju nekog procesnog prostora novo nastala rupa spaja se s
eventualnim susjednim rupama u novu veću rupu
• Pri svakom novom zahtjevu za spremničkim prostorom potraži se najmanja rupa u
koju se može smjestiti novi program

15. Unatoč tome što se problem fragmentacije prilikom dinamičkog dodjeljivanja


spremnika može ublažiti, fragmentacija može postati prevelika. Što treba tada učiniti?
Privremeno obustaviti izvođenje dretvi i „presložiti“ programe u kompaktni prostor. Time se
na kraju spremnika dobiva dovoljno velika rupa u koju se može smjestiti program koji čeka na
dodjelu radnog spremnika.

3
16. Navesti i dokazati Knuthovo pedesetpostotno pravilo.

Knuthovo pravilo: u stacionarnom stanju de u spremniku biti broj rupa jednak polovici broja
punih blokova. (vjerojatnost oslobađanja spremničkog prostora jednaka je vjerojatnosti
zahtjeva).

Izvod:
Knuthovo pravilo pretpostavlja da je vjerojatnost oslobađaja spremničkog prostora jednaka
vjerojatnosti zahtjeva. Pretpostavlja se da de zbog toga tijekom vremena u sustavu dodi do
stohastičkog ravnotežnog stanja odnosno da de prosječan broj rupa i punih blokova biti stalan.
U tom slučaju možemo predpostaviti da postoje 4 tipa blokova razvrstavjudi ih po kriteriju da
li im im jepredhodnik i sljedbenik rupa ili puni blok.
A xxx, B xx0, C 0xx, D 0x0

Veliko slovo je tip bloka, a malo slovo je broj blokova tog tipa. Blokova tipa A ima a.
Vjerojatnost da de se pronadi neka rupa koja de točno odgovarati veličini zahtjevanog
prostora je zanemariva i označava se sa q, a vjerojatnost (p= 1 - q) je zato približno jednaka 1.

Sad idemo prebrojat rupe, blokove tipa ne brojimo jer oni nemaju rupa, a blokove tipa D
brojimo dva puta jer imaju po dve rupe. E sad bududi da ako, recimo, imamo blok tipa B(xx0)
i blok tipa C(0xx) jedan do drugoga vidimo da smo ovu nulu brojili dva puta
i zato moramo cijelu sumu podjelit još sa dva.

n(rupa) = (b+c+2d)/2

Uz to bududi da ako jednom bloku (C) slijedi nula, to mora značiti da de slijededem (B)
prethoditi, što znači da de broj blokova tipa C i tipa B bit jednak c=b .

Znači,

n(rupa)=(2b+2d)/2 = b + d
m(količina punih segmenata)=a + b + c + d

Vjerojatnost da de nastati jedna rupa (znači mora nestat jedan blok tipa A) je a/m.
Vjerojatnost da de se popunit rupa (mora nestat blok tipa D) je d/m + vjerojatnost da postoji
zahtjev veličine jedne rupe u koju de se novi program smjestiti (ili krade q).
Zbog onog prvog uvjeta vjerojatnost popunjavanja i pražnjenja rupa moraju biti otprilike
jednaki znači:

a/m = d/m + q ; pomnoži s m, zamjeni q sa 1-p


a=d + m(1-p)

uvrstimo sad taj a u

4
m=a+b+c+d;
m=d + m(1-p) +b+c+d ;

sad se sjetimo odprije da je c=b i b+d=n

m=d + m-pm + b +b + d
m=m-pm +2(n)
pm = 2n
n=1/2pm ; ududi da je p približno 1
n(rupa)=1/2m(memorije)

50% memorije čine rupe .

17. Kako treba podijeliti program (koji u cijelosti ne stane u radni spremnik) u
prekloponom nacinu uporabe radnog spremnika?
Na jedan osnovni dio koji se uvijek nalazi u radnom spremniku i na dijelove koji se
naizmjenično smještaju u preostali dio korisničkog dijela fizičkog spremnika.

18. Kako je podijeljen logicki, a kako fizicki adresni prostor u sustavu sa stranicenjem?
Logički adresni prostor se dijeli na jednako velike dijelove koje nazivamo stranicama
(page). Prikladno je da stranice imaju veličinu koja je cjelobrojna potencija broja dva.

Fizički adresni prostor možemo podijeliti na dijelove koji su jednaki veličini stranice
logičkog adresnog prostora. Te zamišljene dijelove nazivamo okvirima (frames). U jedan
okvir fizičkog radnog spremnika može se smjestiti jedna stranica logičkog adresnog prostora

Logički adresni prostor je prostor u kojem su sve adrese unutar programa izračunate kao da je
početna adresa jednaka nuli, dijeli se na stranice, ovisi o arhitekturi. Ne mijenja se tekom
izvođenja programa
Fizički adresni prostor: Program će se smjestiti u radni spremnik u prostor koji započinje s
početnom adresom PA. Taj ćemo prostor nazivati fizičkim adresnim prostorom. Dijeli se na
okvire, ovisi o RAM‐u

19. O čemu ovisi velicina fizickog i logickog adresnog prostora?


Logički adresni prostor ovisi o arhitekturi, a fizički o RAM-u.

20. Mogu li stranice logickog adresnog prostora biti smještene u okvire fizickog
spremnika proizvoljnim redoslijedom?
Mogu. Time se izbjegava problem fragmentacije.

5
21. Čemu služi tablica prevodenja? Od kojih se elemenata sastoji?
Služi za prevođenje logičkog u fizički adresni prostor. Sastoji se od direktorija stranica i
tablica stranica.
U tablici prevođenja se stanje stranice može označiti posebnim bitom prisutnosti koji se
dodaje svakom njezinom retku:
➢ vrijednost 1 neka označava prisutnost stranice u
okviru fizičkog spremnika,
➢ a vrijednost 0 neka označava da se stranica ne nalazi
u fizičkom spremniku.

Tablica prevođenja ima dvije razine adresa organizirane po stranicama veličine 4 KB. U prvoj
razini je jedna stranica s 1024 kazaljki od po 32 bita (direktorij stranica). Kazaljke direktorija
pokazuju na stranice u kojima je opet smješteno po 1024 riječi od po 32 bita (tablica stranica)

22. U čemu se razlikuju prekidi izazvani zbog promašaja stranice kod stranicenja na
zahtjev od ostalih vrsta prekida?
Prekid zbog adresiranja nepostojede stranice se dogodi usred instrukcije. Nakon obrade
prekida mora se ponoviti instrukcija unutar koje se dogodio prekid. Kod ostalih vrsta prekida,
postojanje prekida se provjerava nakon izvodjenja instrukcije, a ponovno pokretanje dretve
započinje sljedečom instrukcijom.
može se dogoditi za vrijeme izvođenja instrukcije, provjerava se na kraju
ponovno se mora izvesti naredba umjesto da se prelazi na sljedeću kao kod ostalih
prekida
to je omogućeno skrivenim kopijama svih registara

23. Opisati sklopovsku potporu za ostvarenje stranicenja u Intel x86 arhitekturi. Što
sadrži i cemu služi TLB (Translation Lookaside Buffer)? Opisati tablicu prevodenja.
Gdje se ona nalazi? Koliko je puta potrebno pristupiti radnom spremniku ako se
stranica ne nalazi u TBL međuspremniku, a koliko ako se nalazi u TBL
međuspremniku?
Intel nema registra povijesti. Stranice se razvrstavaju u dva razreda: one u koje se u
prethodnoj periodi pisalo i one u koje se nije pisalo. Postoji jedan bit pristupa(A) i bit
nečistode(D). Prvo se pokuša izbaciti stranica kojoj je A=0. Inače se izbacuje stranica kojoj je
bit nečistode 0, odnosno čista stranica.
TLB je 32 bitni priručni međuspremnik za prevođenje adresa koji nam služi za cjelokupno
spremanje fizičke adrese i dijela logičke adres, tj. omoguduje nam da ne moramo uzastopno
dohvadati fizičku adresu ako ju trebamo češće.

Ako se stranica ne nalazi u TLB meduspremniku: 3


Ako se stranica nalazi u TLB medusprenmiku: 1

24. Koju informaciju nosi bit cistoce? Gdje se on nalazi?

6
Označava da li se sadržaj stranice mijenjao od njenog prebacivanja u radni spremnik. Ako se
mijenjao kod izbacivanja iz radnog spremnika se mora prepisivati na disk, a ako nije onda se
samo obriše iz radnog spremnika. Nalazi se u tablici prevođenja.

25. Čemu služi posmačni registar povijesti?


Za izvedbu LRU strategije. Pri punjenju stranice u neki odvir inicijaliziraju se na 0 njezin bit
pristupa i posmačni registar. Kada se pristupi stranici bit pristupa stranice se postavlja u 1.
Prekid od sata periodno posmakne sve bitove pristupa u posmačne registre i zatim bit pristipa
izbriše. Sadržaj registra može se pročitati kao binarni broj. Manji broj pokazuje da se stranicu
nije duže vrijeme koristilo. Kada se pojavi potreba za izbacivanjem stranice izbacuje se ona s
najmanjim brojem.

26. Opisati sljedece strategije za izbacivanje stranica: FIFO, LRU, OPT te satni
algoritam.
• FIFO – izbacuje se stranica koja je najdulje u radnom spremniku (first-in first-out)
• LRU – izbacuje se stranica koja se najdulje u proslosti nije upotrebljavala (least
recently used)
• OPT (Optimalna strategija) – izbacuje se stranica koja se najdulje u budućnosti neće
upotrebljavati
• Satni algoritam- je inačica LRU – Stranice se svrstavaju u listu po redu prispjeća.
Lista se obilazi kružno posebnom kazaljkom (kada dođe do kraja kazaljka se vrada na
početak liste). Kada se pojavi potreba za praznim okvirom izbacit će se stranica na
koju pokazuje kazaljka ako je njezina zastavica A u 0, inače će se preskočiti i pritom
promijeniti vrijednost A u 0. Kazaljka se pomiče za jedno mjesto dok ne naiđe na
stranicu s A=0.

27. Opisati strategiju izbacivanja stranica u Intel x86 arhitekturi kada se u obzir
uzimaju dvije zastavice za označavanje stanja stranice.
Zastavice koje se koriste su bit pristupa (A) i bit nečistoće (D). Prije se izbacuju stranice u
kojima se nije pristupalo i koje su čiste.

28. U kojim stanjima se mogu nalaziti pojedini okviri tijekom rada?


• Aktivno stajne – okvir je dodijeljen jednom od procesa i njegov se redni broj
(kazaljka koja pokazuje na njegov početak) nalazi u tablici prevođenja tog procesa
• Slobodno stanje – okvir se nalazi u povezanoj listi oslobođenih okvira
• Slobodno stanje s obrisanim sadržajem – okvir je spreman za dodjeljivanje

7
8
9. DATOTEČNI SUSTAV

1. Navesti sadržaj opisnika datoteke.


• Naziv datoteke
• Tip
• Lozinka
• Ime vlasnika
• Prava pristupa
• Vrijeme stvaranja
• Vrijeme zadnje uporabe
• Ime posljednjeg korisnika, i slično
• Opis smještaja

2. Gdje su pohranjeni:
a) opis smještaja datoteke,
b) opisnik datoteke i
c) datotecna tablica?
a) opis smještaja datoteke - u opisniku datoteke
b) opisnik datoteke - na disku u nekom volume-u
c) datotecna tablica - u opisniku datoteke

3. Navesti sadržaj datotečne tablice.


• broj sektora po disku (kapacitet)
• broj slobodnih sektora (veličina slobodnog prostora)
• informacije o slobodnim sektorima
• tablica opisnika pohranjenih datoteka

4. Na koji nacin se može prikazati slobodan prostor na disku.


• bitovni prikaz
• lista slobodnih sektora
• lista nakupina sektora

5. Opisati bitovni prikaz slobodnog prostora na disku.


U nizu bitova svakom sektoru odnosno nakupini sektora pripada jedan bit čija je vrijednost
jednaka 1 kada je sektor odnosno nakupina zauzeta, inace 0.

6. Opisati prikaz slobodnog prostora u obliku liste slobodnih blokova.


Svaki element liste sadrzi tri lokacije. Prvo je kazaljka na sljedeci slobodan element, drugo
adresa prvog slobodnog sektora, a trece broj slobodnih sektora.

1
7. Opisati nacin smještaja datoteka u UNIX datotecnim podsustavima (i-node).
Opisnik datoteke u UNIXu zove se i-node. Uz pretpostavku da je sektor velik 1KB u jedan
sektor se može smjestiti 256 kazaljki. U opisniku se nalazi 13 kazaljki i to:
10 neposrednih kazaljki
1 jednostruko indirektna kazaljka
1 dvostruko indirektna kazaljka
1 trostuko indirektna kazaljka

Pristup do datoteke obavlja se na sljededi način:


Prvih deset sektora dohvada se neposrednim kazaljkama čime se može dohvatiti sve sektore
datoteka manjih od 10KB
Jedanaesta kazaljka pokazuje na sektor u kojem se nalazi sljedečih 256 kazaljki (256 + 10)KB
Dvanaesta kazaljka pokazuje na sektor u kojem su kazaljke na 256 sektora svaki s 256
kazaljki (256*256+256+10)KB
Trinaesta kazaljka pokazuje na trostuko stablo kazaljki (256*256*256+256*256+256+10)KB
= 16GB

8. Opisati nacin smještaja datoteka u NTFS datotecnom podsustavu. Što je MFT? Kako
se pohranjuju „male“ datoteke?
Diskovni prostor dodjeljuje se po skupinama sektora (po 1, 2, 4 ili 8 sektora). NTFS sadrži
datoteku MFT (glavna tablica datoteka) u kojoj se nalaze opisnici svih datoteka (ukljucujuci i
nje same). Jedan MFT zapis ima veličinu jedne skupine sektora (npr. 4KB). Za veče datoteke
zapis sadrži indekse skupina sektora i ako je potrebno dodatno proširenje opisa.
Datoteka se dijeli na djelove koji su jednako veliki kao nakpine sektora (virtualne skupine).
Za smještaj datoteka pronalazi se što više uzastopnih skupina sektora i dodjeljuje se datoteci
(ako nema uzastopnih dodjeljuju se pojedinačne skupine).
Male datoteke smještaju se unutar MFT zapisa

2
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  1

Operacijski sustavi 
Priprema za Završni ispit – ak. god. 2007/08 
Pitanja i odgovori sa predavanja 
 
 
 
 
Pitanja postavljali i odgovarali: PyroMan, Rosita Pedringo, nyala, sunshine, Dada, nevilliny i Force 
 

1. Kako treba podijeliti program koji ne stane u cijelosti u radni spremnik u preklopnom načinu 
uporabe spremnika? 
• jedan dio uvijek u radnom spremniku 
• drugi dio (dijelovi) koji mogu biti i na hard disku (dakle ne stalno u radnom spremniku) 

2. Opisati logički i fizički adresni prostor. 
•  logički adresni prostor je prostor u kojem su sve adrese unutar programa izračunate kao da je početna 
adresa jednaka nuli, dijeli se na stranice, ovisi o arhitekturi. Ne mijenja se tekom izvođenja programa 
•  fizički adresni prostor: Program će se smjestiti u radni spremnik u prostor koji započinje s početnom 
adresom PA. Taj ćemo prostor nazivati fizičkim adresnim prostorom. Dijeli se na okvire, ovisi o RAM‐u  

3. Čemu služi tablica prevođenja? 
• za prevođenje adrese iz logičkog adresnog prostora u fizički adresni prostor 

4. U čemu se razlikuju prekidi izazvani promašajem stranice od ostalih prekida? 
• može se dogoditi za vrijeme izvođenja instrukcije, provjerava se na kraju 
• ponovno se mora izvesti naredba umjesto da se prelazi na sljedeću kao kod ostalih prekida 
• to je omogućeno skrivenim kopijama svih registara 

5. Što sadrži procesni informacijski blok? Koliko procesnih informacijskih blokova ima u procesu? 
• sve informacije važne za odvijanje procesa, sve informacije povezane s gospodarenjem spremničkim 
prostorom, tablicu prevođenja, opisnike svih dretvi, opisnik virtualnog adresnog prostora.  
• ima ih koliko ima i procesa. 

6. Čemu služi TLB? 
• za spremanje cjelokupne dohvaćene fizičke adrese i dijela logičke adrese, to jest omogućuje nama da ne 
moramo uzastopno dohvaćati jednu te istu fizičku adresu ako je trebamo u njemu tražimo da li već 
postoji logička adresa, ako postoji, onda je unutra i fizička adresa. 

7. Koliko puta je potrebno pristupiti radnom spremniku ako se fizička adresa ne nalazi u TLB? A ako se 
nalazi? 
• 3 puta, odnosno jednom ako se nalazi 

8. U kojim stanjima se mogu nalaziti okviri tijekom rada? 
• aktivno (koristi se); slobodno; slobodno s obrisanim sadržajem 
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  2

9. Gdje se generiraju adrese unutar procesora? 
• stog (instrukcijski registar) 
• programsko brojilo 
•  adresni dio instrukcija 

10. Procesni adresni prostor dijeli se na 3 segmenta. Koja?  
• instrukcijski segment ‐ segment u koji se pohranjuju instrukcije programa ili programski kod, adresira se 
iz programskog brojila 
• stogovni segment ‐ segment u koji se pohranjuje stog, adresira se iz registra kazaljke stoga 
• podatkovni segment ‐ segment u koji se pohranjuju podaci i čije adrese potiču iz adresnih djelova 
instrukcija 

11. Opisati organizaciju smještaja na magnetskom disku. (slika?) 

 
• Sve ploče učvršćene su na istu osovinu i vrte se konstantnom brzinom ω.  
• U smjeru radiusa ploča (ili približno u smjeru radiusa blagim lukom pomiču se glave za pisanje i čitanje. 
• Glave se mogu vrlo precizno postaviti na jedno mjesto i tada ispod njih prolazi vrlo uski prsten ploče koji 
 
zovemo stazom  (engl. track). 
• Staze jednakih polumjera svih diskova leže na zamišljenom plaštu valjka i zovemo ih zajedničkim imenom 
cilindar  (engl. cylinder).  
• Svaka je staza podijeljena je na jednake dijelove (kružne lukove s jednakim središnjim kutevima) koje zovemo 
sektorima (engl. sector). 
 
• U jedan sektor može se pohraniti određeni broj bajtova. Uobičajeno je to 256, 512 ili 1024 bajtova.  
• Svaki sektor na disku ima svoju jedinstvenu adresu koja se izračunava iz: 
• rednog broja ploče, 
• rednog broja staze na ploči i 
• rednog broja sektora na stazi.  
• Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na temelju položaja glava, a 
redni broj sektora dobiva se tako da se mjere kutovi vrtnje počevši od posebne oznake na ploči koja 
označava početni kut. 
• U uobičajenim izvedbama diskova svaka ploča ima svoju glavu za pisanje, odnosno čitanje, ali se u jednom 
času može pristupiti samo do jedne od ploča, tj. može se čitati ili pisati samo u jednu stazu cilindra.  
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  3

12. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk ‐ radni spremnik? 

UKUPNO TRAJANJE PRIJENOSA PODATAKA =


|
| TRAJANJE POSTAVLJANJA GLAVE(HEAD POSITION TIME)
| |
| | TRAJANJE TRAŽENJA STAZE: 1.UBRZAVANJE
| | | 2.KONST. BRZINA
| | | 3.USPORAVANJE
| | | 4.FINO PODEŠAVANJE
| | |
| | + ROTACIJSKO KAŠNJENJE = TR/2
| |
| + TRAJANJE PRIJENOSA PODATAKA(DATA TRANSFER TIME)
| |
| | TRANJE ČITANJA DJELA ILI CIJELE STAZE
| | |
| | | PO POTREBI UZETI U OBZIR FAKTOR PREPITANJA(INTERLEAVE FACTOR)
| | |
| | + TRAJANJE PREMJEŠTANJA GLAVE SA STAZE NA STAZU
• UKUPNO TRAJANJE PRIJENOSA PODATAKA = TRAJANJE POSTAVLJANJA GLAVE + TRAJANJE PRIJENOSA 
PODATAKA 
• TRAJANJE POSTAVLJANJA GLAVE = TRAJANJE TRAŽENJA STAZE + ROTACIJSKO KAŠNJENJE 
•  TRAJANJE PRIJENOSA PO DATAKA = TRANJE ČITANJA DJELA ILI CIJELE STAZE + TRAJANJE PREMJEŠTANJA 
GLAVE SA STAZE NA STAZU  

13. Od čega se sastoji trajanje traženja staze? 
• sastoji se od 4 djela. Ubrzavanja, konstantne brzine, usporavanja i finog podešavanja 

14. Vrijeme koje je potrebno za prijenos podataka s diska ili na disk dijeli se na dva dijela. Koja? 
• trajanje postavljanja glave (trajanje traženja staze + rotacijsko kašnjenje) 
• trajanje prijenosa podataka 

15. Zbog čega nastaje rotacijsko kašnjenje i koliko iznosi? 
• rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije 
početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor. 
• iznosi između nula(najpovoljniji slučaj – traženi sektor upravo nailazi ispod glave u trenutku njezinog 
postavljanja na stazu) i jednog(najlošiji slučaj – traženi sektor upravo prolazi ispod glave kad je ona 
postavljena na stazu) okretaja 
• prosječno rotacijsko kašnjenje jednako je polovini trajanja jednog okretaja diska 

16. Čime je određena brzina prijenosa podataka iz diska u spremnik diskovne upravljačke jezgre? 
• brzinom kojom se disk okreće ‐ omega – ω 
• gustoćom podataka (broj sektora/broj staza)  

17. Navesti vrste fragmentacije prilikom statičkog i dinamičkog dodjeljivanja spremnika. 
• unutarnja i vanjska kod statičkog 
• vanjska kod dinamičkog  

18. Navesti i dokazati Knuthovo pravilo. 
• potražiti na materijalima datoteku: "OS ‐ ZI ‐ Izvod Knuthovog pravila (by Ovca).pdf" . Nalazi se unutar 
datotete "Tutoriali ‐ ak. god. 2006/07.rar" 
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  4

19. Kako održavati fragmentaciju minimalnom? 
• osnovni način suzbijanja fragmentacije svodi se na to da se rupe održavaju što većima kako bi se u njih 
mogli smjestiti novi programi. To se postiže tako da se: pri svakom oslobađanju nekog procesnog 
prostora novonastala rupa spaja s eventualnim susjednim rupama u novu veću rupu i pri svakom 
novom zahtjevu za spremničkim prostorom potraži najmanja rupa u koju se može smjestiti novi 
program. 
• nadalje, preostaje mogućnost da se u nekom trenutku, kada se ustanovi da je fragmentacija postala 
prevelika, privremeno obustavi izvođenje dretvi i "presloži" programe u kompaktni prostor. Time se 
na kraju spremnika možda dobije dovoljno velika rupa u koju se može smjestiti program koji čeka na 
dodjelu radnog spremnika. Ta se tehnika “sakupljanja otpadaka”(engl. garbage collection) 
upotrebljava i u nekim programskim okruženjima za izvođenje programa koji intenzivno koriste 
dinamičke strukture podataka 

20. Čime su određene veličine fizičkog i logičkog adresnog prostora? 
• logički ovisi o arhitekturi, fizički o RAM‐u 

21. Čime je određen broj stranica? 
• veličinom logičkog adresnog prostora, stranice imaju veličinu koja je cjelobrojna potencija broja 2. 

22. Kako treba podijeliti program u preklopnom načinu uporabe radnog spremnika? 
• do potrebe za djeljenjem programa dolazi kada trebamo izvesti program čiji je logički adresni prostor 
veći od fizičkog spremnika. Program se djeli na dijelove koji ne trebaju biti istovremeno smješteni u 
fizičkom spremniku. U radnom spremniku mora u svakom trenutku biti onaj dio programa koji sadrži 
instrukcije koje se upravo izvode te dio podatkovnog prostora koji te instrukcije adresiraju.  
• program se djeli na jedan osnovni dio koji se uvijek nalazi u radnom spremniku i na dijelove koji se 
naizmjence smještaju u preostali dio korisničkog dijela fizičkog spremnika 

23. Gdje se nalazi bi čistoće? 
• u tablici prevođenja  

24. Navesti i opisati strategije izbacivanja stranica. 
• FIFO (First In First Out) strategija ‐ iz radnog se spremnika (primarnog spremnika) izbacuje stranica koja 
je najdulje u radnom spremniku. 
• LRU (Least Recently Used) strategija ‐ izbacuje se stranica koja se najdulje u prošlosti nije 
upotrebljavala. 
• LFU (Least Frequently Used) strategija ‐ izbacuje se ona stranica od onih u radnom spremniku koja se 
najrjeđe koristila. 
• OPT (Optimal) strategija ‐ izbacuje se ona stranica koja će se najkasnije u budućnosti koristiti. 

25. Opisati satni algoritam. 
• Inačica LRU algoritma koja se koristi u više inačica operacijskog sustava UNIX naziva se satnim 
algoritmom (Clock algorithm). Algoritam djeluje tako da se sve stranice u radnom spremniku slažu u 
kružnu listu po redu prispijeća. Prilikom traženja stranice za izbacivanje posebnom se kazaljkom 
pretražuje lista, počevši od zadnje stranice učitane u primarni spremnik. Ukoliko stranica ima oznaku 
(zastavicu) A=1 (tj. stranica se koristila u nekom prethodnom "bliskom" trenutku), ta se oznaka 
postavlja na 0 te se kazaljka pomiče na slijedeću stranicu. Ako stranica ima oznaku A=0 tada se 
dotična stranica izbacuje iz radnog spremnika i na isto mjesto se učitava nova stranica (kazaljka se ne 
pomiče). Svaki puta kada se neka stranica koristi njena se oznaka A postavlja u jedinicu. 

26. U kojim stanjima se mogu nalaziti pojedini okviri tijekom rada? 
• aktivno (koristi se); slobodno; slobodno s obrisanim sadržajem  
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  5

27. Na koji način se može pokazati slobodni prostor na disku? 
• može se pokazati na 3 načina. Binarni prikaz, lista slobodni sektora, lista nakupina sektora 

28. Opisati način smještaja datoteka u unix i ntfs datotečnom sustavu. 
• UNIX ‐ slajdovi 09‐25, 09‐26, 09‐27 
• NTFS ‐ slajdovi 09‐28, 09‐29, 09‐30 

29. Navesti elemente datotečnog podsustava. 
• datoteka  
• datotečna tablica 
• procedura za manipuliranje datotekama 

30. Navesti osnovni sadržaj opisnika datoteke. 
• ime datoteke 
• tip datoteke 
• lozinka 
• ime vlasnika 
• prava pristupa 
• vrijeme stvaranja 
• vrijeme zadnje promjene 
• ime zadnjeg korisnika 
• opisnik smještaja 

31. Navesti osnovni sadrža datotečne tablice. 
• broj sektora po disku 
• broj slobodnih sektora 
• informacije o slobodnim sektorima 
• tablica opisnika pohranjenih datoteka 

32. Opisati način evidencije binarnim prikazom operacijskog sustava za rad s datotekama. 
• binarni prikaz: 011000101001100… ima onoliko 1 i 0 koliko ima sektora, 0 označava da je sektor 
slobodan a 1 da je sektor zauzet. Svaki sektor ima svoju jedinstvenu adresu koja se sastoji od: rednog 
broja ploče, rednog broja staze na ploči i rednog broja sektora na ploči 
 
 
 
 
PITANJA ZA ZAVRŠNI ISPIT IZ OPERACIJSKIH SUSTAVA verzija 1.0 
by Aeroflot 

Sva prava pridržana 

Copyright Aeroflot ©.


UVODNA NAPOMENA 

NE ODGOVARAM ZA GREŠKE!!!! 
Ako krivo naučite iz ove skripte, sami ste si krivi jer mi vjerujete XD. 

I da… hvala svima koje sam pokrao. :D Sad ću bezobrazno stavit svoj copyright i dilat po fakultetu. XD 

p.s. downloadom ove skripte automatski pristajete autoru donirati bubreg, jetru ili bilo koji drugi organ u slučaju potrebe :D


1.  CIKLUS PREDAVANJA 
1. i 2. POGLAVLJE 
1. Što je OS? (OK) 01­02 
Skup  programa  koji  omogućavaju  izvođenje  osnovnih  operacija  na  računalu  –  potpora  raznovrsnim 
primjenskim programima. 

2. Nabrojite osnovne dijelove OS­a! (OK), slika 
Upravljanje  datotečnim  sustavom,  upravljanje  spremnikom  (memorijom),  upravljanje  U/I  uređajima, 
API  (Application  programming  interface),  GUI  (Graphical  user  interface),  procesi  i  dretve 
(komunikacija, sinkronizacija i raspoređivač poslova), mrežni i sigurnosni podsustav. 

4. Čime su određena svojstva i ponašanje procesora? (OK) 02­15 
Skupom  registara  (služe  za  pohranjivanje  svih  sadržaja  koji  ulaze  i izlaze  iz  procesora  i  u  njemu  se 
transformiraju) i skupom instrukcija (određen izvedbom ALU i upravljačke jedinke procesora). 

5. Nabroji osnovni skup registara procesora? (OK) 02­16 
Adresni međuregistar  (za postavljanje adrese) 
Podatkovni međuregistar  (za dohvat odnosno spremanje podataka) 
Instrukcijski registar  (spremaju se insturkcije kad se dobave) 
Programsko brojilo (PC)  (za dohvat instrukcija, pokazuje na sljedeću instrukciju) 
Registar kazaljke stoga (SP)  (stack pointer) 
Registar stanja  (SR)  (registar zastavica) 
Registri opće namjene (R) 

6. Što je kontekst dretve? (OK) 02­42 
Sadržaj trenutne dretve pohranjen u registrima procesora.; Svi registri osim programskog brojila. 

7. Definirajte program, proces i dretvu! (OK) 02­39 
Program – statični niz instrukcija, pohranjen na papiru, disketi, memoriji itd. 
Dretva – niz instrukcija koje se izvode i kontroliraju proces. 
Proces – program u izvođenju; skup računalnih resursa koji omogućuju izvođenje programa; okolina u 
kojoj se program izvodi; sve što je potrebno za izvođenje programa; sastoji se od: 
­  barem jedne dretve 
­  zajedničkog adresnog prostora 
­  adresnog prostora rezerviranog za svaku pojedinu dretvu 
­  stog,  kazaljke  stoga,  opisnici  datoteka,  opisnici  cjevovoda,  redovi  poruka,  semafori,  uvjetne 
varijable, zaključavanja. 

8. Kako je moguć višeprogramski rad na jednom procesoru? (OK) 
Tako  da  se  svaka  dretva  izvodi  naizmjence  pa  dobijemo  privid  istovremenosti.  Ključna  je  pravila 
izmjena konteksta dretve. 

9.  Napisati pseudokod što procesor trajno radi! (OK) 02­29 
ponavljati { 
dohvatiti iz spremnika instrukciju na koju pokazuje programsko brojilo; 
dekodirati instrukciju, odrediti operaciju koju treba izvesti; 
povećaj sadržaj programskog brojila tako da pokazuje na sljedeću instrukciju; 
odrediti odakle dolaze operandi i kuda se pokhranjuje rezultat; 
operande dovesti na aritmetičko­logičku jedinku, izvesti zadanu operaciju; 
pohraniti rezultat u odredište; 
} dok je (procesor uključen);


Procesor  se  može  promatrati  kao  automat  koji,  nakon  uključivanja,  trajno  izvodi  instrukciju  za 
instrukcijom strojnog programa. 

10.  Skicirati  procesor  i  spremnik  povezan  na  sabirnicu.  Sabirnicu  podijeliti  na  tri  dijela!  (OK) 
02­12 

11. Opisati osnovne komponente pristupnog sklopa. (OK) 03­06 

­  sklop za dekodiranje adrese  (dobavlja adresu podatka) 
­  podatkovni registar (PR)  (za podatke) 
­  registar stanja (RS)  (daje procesoru stanje u kojem se nalazi naprava) 
­  upravljački dio  (određuje stanje naprave) 

12. Što je to adresni prostor? 
Adresni prostor je dio spremnika potreban procesoru koji se dijeli na: 
­  dio u kojem je smješten program ­ segment instrukcija 
­  dio rezerviran za stog 
­  dio za podatke (korisnički i sustavski podaci)


3. POGLAVLJE 
13. Što je radno čekanje? (OK) 03­06, 03­15 
Režim rada procesora u kojem procesor čeka na određeni događaj u programu (npr. pojava zastavice) 
i troši vrijeme dok se on ne dogodi. 
(primjer pseudokoda): 
čitati registar sranja RS; 
dok je (ZASTAVICA ==0){ 
čitati registar stanja RS; 

čitati registar PR; //time se automatski briše ZASTAVICA 

ako se na takav način čita niz znakova onda ovu petlju treba ponavljati u nekoj nadređenoj petlji 

14. Skicirati signale dvožičnog rukovanja između pristupnog sklopa i U/I naprave! (OK) 03­16... 

Upisivanje  se  događa  kada  je  zastavica  u  niskoj  razini, te  se  nakon  upisivanja  ona  podiže  i  tada  se 
aktivira čitanje PR koje po svom završetku spušta zastavicu i omogucuje novo čitanje. 
S  obzirom  da  se  signali  na  dva  vodiča  ("žice")  naizmjence  podižu  i  spuštaju  taj  je  protokol  nazvan 
dvožičnim rukovanjem (engl. two­wire handshaking). 

15. Što se zbiva kad se dogodi prekid? (OK) 03­22, 03­23 
Pojava prekidnog signala prebacuje procesor u tzv. sustavski (jezgreni) način rada – pozivaju se 
podprogrami koji sačinjavaju jezgru OS­a. Također procesor čini sljedeće: 
1.  onemogućuje daljnje prekidanje 
2.  adresira sustavski dio spremnika (spremnik je time podijeljen na korisnički i sustavski) 
3.  aktivira sustavski registar kazaljke stoga koji se nalazi u procesoru 
4.  pohranjuje trenutni sadržaj programskog brojila (PC) na stog 
5.  u programsko brojilo stavlja adresu na kojoj počinje podprogram za obradu prekida 
6.  pohranjuje kontekst dretve na sustavski stog 
7.  nakon što je kontekst spremljen može se obaviti stvarna obrada prekida 
8.  nakon obrade pokreće prekinutu korisničku dretvu 
9.  sa sustavskog stoga vraća sadržaj registara 
10.  omogućuje prekidanje 
11.  prebacuje adresiranje u korisnički adresni prostor 
12.  aktivira korisnički registar kazaljke stoga 
13.  vraća sadržaj programskog brojila (čime se pokreće prekinuta dretva)


16. Objasniti instrukciju vratiti se iz prekidnog načina rada, obnoviti kontekst i pohraniti 
kontekst! (OK) 03­27... 
a) vratiti se iz prekidnog načina rada 
Prije no što se programsko brojilo sa sustavskog stoga vrati u PC (sadržaj) treba omogućiti prekidanje, 
prebaciti adresiranje u korisnički adresni prostor i aktivirati korisnički registar kazaljke stoga. 
b) pohraniti kontekst 
Sadržaj registara procesora prilikom izvođenja dretve naziva se kontekst dretve. 
Kontekst  dretve  treba  pri  prekidanju  izvođenja  jedne  dretve  pohraniti  izvan  procesora  (osim  PC 
registra koji se tretira zajedno!) i u registre staviti kontekst dretve koju se želi pokrenuti. 
Pohraniti kontekst znaci pohranjivanje sadržaja svih registara procesora na sustavski stog, radi se na 
početku podprograma. 
c) obnoviti kontekst 
Na kraju podprograma treba vratiti registre obrnutim redoslijedom. 

17. Što radi potprogram za obradu prekida na početku? (OK) 03­26 
Pohranjuje sadržaj svih registara procesora (kontekst) na sustavski stog. 

18. Kako završiti s prekidom? (OK) 
­  obnoviti kontekst sa sustavskog stoga 
­  omogućiti prekidanje (odgođeno do upisa nove vrijednosti u PC), prebacuje adresiranje u 
korisnički prostor 
­  vratiti se iz prekidnog načina rada (aktivira korisnički registar kazaljke stoga) 
­  vratiti PC 
19. Skicirati sklop za prihvat prekida! (VIDI) 03­51,52 

20. Čemu služi i kako djeluje sklop za prihvat prekida? (OK) 03­50 
Sklop za prihvat prekida služi za filtriranje prekida tako da kad se dogodi prekid manjeg prioriteta sklop 
ne šalje prekid procesoru („ne ometa ga“ tako da procesor ni nezna da je bio prekid). Odnosno prema 
procesoru se propušta samo prekid višeg prioriteta od dretve koju procesor trenutno izvodi. 

21.  Koje  strukture  podataka  treba  sadržavati  OS  koji  omoguduje  prihvat  prekida  različitih 
prioriteta? (OK) 
Varijablu  T_P  (tekući  prioritet),  polje  KON[N]  (kontekst  pojedine  dretve)  i  polje  K_Z[N]  (kopije 
zastavica). 

22. Što su programski prekidi i tko ih izaziva? (OK) 
Programski prekidi su instrukcije pomoću kojih programi pozivaju jednu od jezgrinih funkcija. Može se 
javiti  zbog  greške  u  programu  (dijeljenje  s  0,  nepostavljena  varijabla)  ili  ih  možemo  postaviti  u 
programu  kada  je  potrebno  kontekst  (podatke  u  registrima  procesora)  obraditi  u  jezgrenom  načinu 
rada. 

23. Što sve uzrokuje prekid generiran unutar procesora? (OK) 03­60 

­  dijeljenje sa nulom 
­  adresiranje nepostojeće lokacije u adresnom prostoru dretve 
­  dekodiranje nepostojećeg instrukcijskog koda 

24. Što obavlja instrukcija vratiti se iz prekidnog načina? 
Vraća u procesor sadržaj programskog brojila i prevodi procesor iz sustavskog u korisnički način rada.


25. Zašto se PC tretira zasebno prilikom pohrane konteksta? (OK) 
Procesor se prebacuje na rutinu za obradu prekida tako da promijeni PC na adresu te rutine. Što znači 
da ta rutina ne može pohraniti PC (jer je već "uništen") već to mora učiniti procesor. Također, vraćanje 
PC­a pokreće prekinutu dretvu! 

26. Zašto u kontekstu nije uključeno programsko brojilo? (OK) – nešto slično ko 25 
Zato jer se kod prekida prvo stavlja sadržaj programskog brojila na stog a zatim kontekst kako bi se pri 
vraćanju iz prekida mogao kontekst obnoviti prije nego se vrati stara vrijednost programskog brojila 
(što će pokrenuti dretvu). 

27. Opisati DMA sklop i njegove registre! (OK) 03­64... 
DMA  služi  prijenosu  blokova  znakova/podataka.  Odvijanje  prijenosa  cijelog  bloka  između  dvaju 
prekida obavlja se bez sudjelovanja procesora. 
Registri pristupnog sklopa: 
­  adresni registar (AR)  (sprema se početna adresa bloka koji se želi prenesti) 
­  brojač (BR)  (sprema se broj znakova koji se prenose) 
­  registar stanja (RS)  (daje procesoru zahtjev za prekid) 
­  podatkovni registar (PR)  (spremaju se podaci koji se prenose) 

28. Koje su razlike prijenosa znakova prekidnim mehanizmom i DMA prijenosom? (OK) 
Kod  prekidnog  mehanizma  javljati  će  se  prekid  koji  će  zahtjevati  dodatnu  količinu  instrukcija  za 
spremanje i obnovu konteksta i zato će se gubiti dio radnog vremena procesora koji se može iskoristiti 
za obavljanje nekog korisnog posla. Također je bitna razlika da DMA radi blokovski prijenos podataka 
te  je  neovisna  o  procesoru,  što  nije  slučaj  dok  koristimo  prekidni  mehanizam.  DMA  će  tražiti  od 
procesora prekid po bloku podataka, dok će prekidni mehanizam za svaki poslani znak tražiti zaseban 
prekid.


4. POGLAVLJE 

29. Što je zajedničko procesu roditelju i procesu djetetu? 
Ništa. Dijete dobiva kopije instrukcija i podataka... svaki proces dobiva svoj adr.prostor(osim, kako ti je 
opisano, u slučajevima kad se instrukcijski dio dijeli) i ne mogu jedno drugom adresirat varijable. 

30. Objasniti pojmove višezadaćni rad, višedretveni rad i višekorisnički rad! (OK) 
Višezadaćni rad (multitasking) – mogućnost računala da obavlja istovremeno više poslova 
Višedretveni rad (multithreading) – brzo obavljanje više procesa u jednom programu 
Višekorisnički rad (multiuser system) – računalo koje mogu koristiti više osoba 
svima je zajedničko da obavljaju više zadaća odjenom 

31. Koja sredstva dijele dretve istog procesa? (OK), 04­05 
Dretve  koje  djeluju  unutar  jednog  procesa  dijele  sva  sredstva  koja  je  operacijski  sustav  stavio  na 
raspolaganje tom procesu. Posebice se to odnosi na adresni prostor procesa. 

32. Kako je podijeljen spremnički prostor procesa/dretve? (OK), 04­10 
Dretveni prostor: dio za instrukcije dretve, dio za stog dretve i dio za lokalne podatke dretve. 

Spremnički prostor:  se sastoji od više dretvenih prostora i zajedničkog prostora (koji mogu dohvaćati 
sve dretve procesa – globalne varijable). 

33. Kako najjednostavnije dretve mogu komunicirati? 

­  tako da jedna dretva piše direktno u domenu druge 
­  preko rezerviranog dijela zajedničkog spremnika (zajedničke varijable) 

34. Navesti i pojasniti uvjet nezavisnosti dretvi? (OK), 04­15 
Dretve  i  su nezavisne kad vrijedi: 
∩  ∪  ∩  ∪  ∩  =  ∅ 
Dvije dretve su nezavise kada se mogu obavljati u isto vrijeme bez da jedna drugu ometa – to znači da 
se ne smije dogoditi da jedna dretva piše na adrese koje bi druga dretva mogla koristiti (za čitanje ili 
pisanje). Dakle, smiju samo čitati s istih adresa da bi bile nezavisne. 
Odnosno: ako je bilo koji od ova tri uvjeta ispunjen, dretve su zavisne. 
∩  ­ u isto vrijeme i­ta dretva čita podatak i j­ta dretva zapisuje – ako se to dogodi – zavisne 
∩  ­ u isto vrijeme j­ta dretva čita podatak i i­ta dretva zapisuje – ako se to dogodi – zavisne 
∩  ­ u isto vrijeme i i­ta i j­ta dretva zapisuju podatke na istu kodomen – zavisne 

35. Kako se u usmjerenom grafu sustava dretvi prepoznaju zavisne, tj. nezavisne dretve? (OK) 

Dretve  koje  se  nalaze  na  istom  putu  od  početne  do  završne  dretve  moraju  se  izvoditi  propisanim 
redoslijedom, te su dretve međusobno zavisne. 
Dretve koje se ne nalaze na istom putu moći će se izvoditi proizvoljnim redoslijedom i one moraju biti 
međusobno nezavisne. 

36. Navedite uvjete koje moraju zadovoljavati algoritmi za međusobno isključivanje? (OK) 
­  dretve se odvijaju međusobno isključivo (dvije dretve ne smiju obavljati K.O.) 
­  algoritam mora funkcionirati i onda kada su brzine izvođenja dretvi različite 
­  ako neka dretva zastane u N.K.O. to ne smije spriječiti drugu dretvu da uđe u K.O. 
­  izbor koja dretva će ući u K.O. mora se zbiti u konačnom vremenu.


37. S koliko dretvi radi Dekkerov, a s koliko Lamportov algoritam? (OK) 
Dekkerov algoritam radi sa dvije dretve, dok Lamportov algoritam služi za isključivanje N dretvi. 

38. Koje strukture podataka koriste Dekkerov i Lamportov algoritam? (OK) 
Dekker ­ najobičnije varijable (dvije zastavice ZASTAVICA[I] i ZASTAVICA [J] i pravo PRAVO) 
Lamport ­ polje zastavica (koje govori koja dretva pokušava ući) ULAZ[I], polje brojeva dretvi BROJ[J] i 
varijabla zadnjeg broja ZADNJI_BROJ. 

39. Koji je najjednostavniji način međusobnog isključivanja na 1­procesorskom računalu? (OK) 
Prekidom. 

40. Kako je osmišljen višedretveni rad u jednoprocesorskom računalu? (OK) 

Višedretveni  rad  se  može  provesti  tako  da  procesor  naizmjence  izvodi  sve  dretve.  Pri  prekidanju 
izvođenja jedne dretve njen sadržaj se mora pohraniti izvan procesora i u registre staviti sadržaj dretve 
koja se želi pokrenuti. Time nismo postigli brzinu, ali smo omogućili da se može izvoditi jedna dretva 
dok druga iz nekog razloga mora čekati. 

41. Kako je moguć višeprocesorski rad na jednoprocesorskom računalu? 
Višeprocesorski rad zahtjeva više procesora. Višedretveni rad je moguć na jednom procesu tako da se 
naizmjenično izvršava malo jedna dretva, malo druga, malo treća itd. 

42.  Navedite  instrukcije  procesora  koje  služe  kao  sklopovska  potpora  međusobnom 
isključivanju? (OK) 
TAS (test &  set) ­  funkcija koja se obrađuje u dva nedjeljiva sabirnička ciklusa pa je osigurano da s 
takvim pozivom neće dvije dretve obaviti istu stvar (dohvatiti isti podatak i promijeniti ga!) 
SWAP (zamijeni) ­ u prvom ciklusu dobave sadržaj adresirane lokacije, i smjeste ga u jedan od 
registara procesora, a u drugom ciklusu pohranjuju u tu lokaciju vrijednost koja je prije toga bila 
pohranjena u tom ili drugom registru. 
FETCH_AND_ADD – dohvati i povećaj za 1 ­ u prvom ciklusu dobave sadržaj adresirane lokacije, i 
smjeste ga u jedan od registara procesora, a u drugom ciklusu pohranjuju u tu lokaciju taj sadržaj 
uvećan za jedan. 

43. Ostvariti međusobno isključivanje pomoću XY instrukcije (iz 40. pitanja)! (OK) 
dok je (1) { 
TAS ZASTAVICA; 
dok je (ZASTAVICA !=0) { 
TAS ZASTAVICA; 

kritični odsječak; 
ZASTAVICA = 0; 
nekritični odječak; 
}


5. POGLAVLJE 

44. Što predstavlja pojam ulazak u jezgru OS­a i kad se događa? (OK) 
Pojam predstavlja poziv jezgrine funkcije i zbiva se prekidom. 

45. Što se događa prilikom poziva jezgrine funkcije? (OK) 
Onemogući se daljnje prekidanje (ne mogu se pozivati druge funkcije). Pohranjuje se kontekst, pamti 
se gdje je bio prekid. Poziva se odgovarajuća funkcija koja sa sustavnog stoga pohranjuje konktekst u 
opisnik aktivna dretva. 

46. Što se radi prilikom izlaska iz jezgre? (OK) 
Aktivira se prva dretva iz reda Pripravne D. u red Aktivna D. Obnovi se kontekst iz opisnika Aktivna D. 
Omogućuje se prekidanje, vraća se iz prekidnog načina. Obnavlja se PC. Iz sustavskog se prelazi u 
korisnički način rada. 

47. Opisati način ostvarenja i osnovnu upotrebu binarnog semafora. (OK) 
Binarni semafor je jezgrin mehanizam koji služi za međusobno isključivanje dretvi, tj. zaštitu kritičnih 
odsječaka. On propušta jednu po jednu dretvu. 

48. Od čega se sastoji jezgra OS­a? (OK) 
Od struktura podataka i jezgrinih funkcija. 

49. Navesti vrste prekida. (OK) 
­  sklopovski prekidi 
­  programski prekidi 
­  prekidi od sata. 

50. Navesti podatke dretve (sadržaj opisnika dretve). (OK) 05­13 
­  kazaljke ili više njih za premještanje iz liste (reda) u listu(red) 
­  identifikacijski broj procesa kojoj dretva pripada (PID) 
­  identifikacijski broj dretve (ID) 
­  stanje dretve (pasivna, aktivna, blokirana, pripravna) 
­  prioritet (mjesto gdje je zapisan prioritet) 
­  početna adresa dretvenog spremnika prostora 
­  veličina dretvenog spremničkog prostora 
­  adresa prve instrukcije 
­  zadano kašnjenje 
­  prostor za smještanje konteksta 

51. Navesti strukture podataka jezgre. (OK) 
1.  Lista (red) postojećih dretvi – kada se dretva nalazi na samo jednoj listi, onda je u pasivnom 
stanju 
2.  Lista (red) aktivnih dretvi – dretve koje se izvode, broj članova u toj listi jednak je broju 
procesora. U jednoprocesorskom sustavu ima samo jedan deskriptor. 
3.  Lista (red) pripravnih dretvi – ako se ne izvode, a spremne su. Prema načinu formiranja red 
može biti – po redu prispjeća (FCFS (first come, first served) ili FIFO) ili prioritetni 
4.  Red semafora – dretve tijekom izvođenja mogu biti blokirane čekajući na ispunjenje nekog 
uvijeta (4 načina blokiranja čekanjem na: BSEM (binarni semafor), OSEM (opći semafor), 
istek zadanog intervala kašnjenja, završetak U/I operacije 
5.  Lista (red) odgođenih dretvi – zadano kašnjenje dretve 
6.  Lista (red) U/I naprave – redova koliko ima U/I naprava, U/I naprave se obično koriste 
pojedinačno 

latentna dretva, 
opisnik za svaku dretvu 
Napomena – ovdje sam očito nešto dodavao, čim nije lijepo formatirano znači da sam 
naknadno nešto editirao (latentna dretva i opisnik za svaku dretvu). Pa provjerite još ovo 
zadnje, na kaj sam mislio. :D

10 
52. Koja su blokirana stanja dretvi? (OK) 
­  čekanje na binarnom seamforu 
­  čekanje na općem semaforu 
­  čekanje na istek zadanog intervala kašnjenja (odgođene dretve) 
­  čekanje na završetak U/I operacije. 

53. Koja su moguća stanja dretvi? (OK, Pogledati i graf 05­35!!!) 
­  aktivna dretva 
­  pasivna dretva 
­  BSEM (binarni semafor) 
­  OSEM (opći semafor) 
­  odgođene dretve 
­  čekadnje na završetak U/I operacije 
­  pripravne dretve 

54. Koje vrste prekida uzrokuju jezgrine funkcije Započeti U/I i Prekid U/I? (OK) 
Sklopovski prekid. 

55. Može li se kontekst dretve koja obavlja neku jezgrenu funkciju naći u opisniku u listi aktivna 
dretva, i zašto? (OK) 
Ne. Lista aktivnih dretvi sadrži dretvu koja se treba početi izvršavati nakon dretve jezgrene funkcije. 
Ne, jezgrina funkcija ne može biti prekinuta. 

56. Što obavlja instrukcija Aktivirati dretvu iz reda pripravne dretve? (OK) 
Premješta opisnik dretve iz reda Pripravne_D u red Aktivna_D i nakon toga se iz tog opisnika prenosi 
kontekst dretve u registre procesora. 

57. Čemu služe jezgrini mehanizmi binarni i opći semafor? (OK) 
Služe za međusobno isključivanje dretvi. Jedan od drugoga se razlikuju samo u realizaciji. 

58. Što je najveći nedostatak međusobnog isključivanja? (OK) 
To što dretve izvode radno čekanje i time beskorisno troše vrijeme svojeg procesora i sabirničke 
cikluse. 

59. Koje strukture podataka koriste BSEM, OS, OSEM? (OK) 
BSEM koristi varijablu Bsem[I].v i kazaljku. OS koristi varijablu OS.v i kazaljku. OSEM koristi varijablu 
Osem[J].v i kazaljku. 

60. U pseudokodu napisati jezgrine funkcije Čekaj_BSEM (ili OS, ili OSEM) i Postavi_BSEM(ili 
OS, ili OSEM)? 

SKRIPTA + ono sa FER.HR 

61. Kako treba proširiti jegrine funkcije u višeprocesorskom sustavu? (OK), vidi 05­80 
Jezgrine funkcije treba proširiti radnim čekanjem.

11 
Činjenice 
Komunikacija među dretvama je znatno brza od komunikacije među procesima. 
Komunikacija među dretvama istog procesa odvija se bez uplitanja OS 
Jedinstevno  za  svaku  dretvu:  Thread  ID  (TID),  stanje  registra,  kazaljka  stoga  (stack  pointer),  stog, 
prioritet 
Skup zauzetih sredstava je isti za sve dretve jednog procesa. 
U  programu  s  više  procesa,  globalne  varijable  u  programu  vide  svi  procesi  ali  prilikom  njihove 
promjene i jedan i drugi proces dobivaju kopije tih varijabli. 

Napomene vezane za prvi međuispit: 
U  pitanjima  "što  procesor  radi  kada  dođe  prekid  /  poziv  potprograma  /  što  procesor  konstanto  radi  / 
itd." valja odgovarati pseudokodom. 
Što se tiče onih 5 neuspjelih primjera za ostvarivanje međusobnog isključivanja, ne treba znati kod, ali 
treba znati zašto ne valjaju!

12 
2. CIKUS PREDAVANJA 

POJMOVI 
Pravila za pisanje korisničkih funkcija: 
1)  monitorska funkcija je zaštićena monitorskim semaforom (uđi u monitor, izađi iz monitora) 
2)  uvjet se ne ispituje naredbom ako je već dok je 
3)  dretva koja oslobađa neku drugu dretvu iz reda uvjeta, nakon što ju je oslobodila završava 
4)  jezgrine funkcije za ostvarenje monitora koriste se isključivo unutar monitorskih funkcija 
5)  nakon uvrsti_u_red_uvjeta obavezno napisati ući_u_monitor 

Problemi sa semaforima 
1)  semafor ispituje jedan uvjet, odnosno služi međusobnom isključivanju, sinkornizaciji i brojanju 
događaja 
2)  Ispitivanje semafora povezano je sa zauzećem sredstva kojeg semafor štiti  – ne može se 
razdvojiti ispitavnje od semafora. 
3)  opasnost od potpunog zastoja 

Funkcije za monitore 
M­varijabla zaključvanja 
mutex_lock (M) – uđi u monitor 
mutex_unlock (M) – izađi iz monitora 
cond_wait (red uvjeta, M) – uvrsti u red uvjeta, ući u monitor 
cond_signal (red_uvjeta) – oslobodi iz reda uvjeta, ući u monitor 
cond_broadcast 
POGLEDATI ONU NJIHOVU SKRIPTU SA FERWEB­A ZA VIŠE! 

pojmovi: 
‐  iskoristivost (opterećenje) – ρ 
‐  broj poslova koji ulaze u sustav u jedinici vremena – α 
‐  broj poslova koje poslužitelj može obaviti u jedinici vremena  – β 
‐  prosječan broj poslova u sustavu ­ n 
‐  prosječno zadržavanje posla u sustavu (kvaliteta usluge) ­ ρ 
‐  Littleovo pravilo ­ n = α ∙ T (riječima!) 
‐  Markovljev lanac (skicirati) 

U kružnom posluživanju dretvama višeg prioriteta može se dodjeljivati dva ili više uzastopna kvanta 
procesorskog vremena

13 
PITANJA 

1. Kako se pozivaju jezgrine funkcije? OK (05­06) 
Poziv jezgrine funkcije — ulazak u jezgru — zbiva se pod utjecajem sklopovskog ili programskog 
prekida 
U jednoprocesorskom sustavu je time osigurano međusobno isključeno obavljanje jezgrinih procedura 

2. Od čega se sastoji jezgra? OK (05­06) 
Jezgra se sastoji od jezgrinih struktura podataka i jezgrinih funkcija (pozivaju se kod prekida). 

3. Što sadrži opisnik dretve? (OK) 05­13 
­  kazaljke ili više njih za premještanje iz liste (reda) u listu(red) 
­  identifikacijski broj procesa kojoj dretva pripada (PID) 
­  identifikacijski broj dretve (ID) 
­  stanje dretve (pasivna, aktivna, blokirana, pripravna) 
­  prioritet (mjesto gdje je zapisan prioritet) 
­  početna adresa dretvenog spremnika prostora 
­  veličina dretvenog spremničkog prostora 
­  adresa prve instrukcije 
­  zadano kašnjenje 
­  prostor za smještanje konteksta 

4. Navedi strukture podataka jezgre. (OK) 
Liste (redovi) dretvi i opisnici dretvi. 
7.  Lista (red) postojećih dretvi – kada se dretva nalazi na samo jednoj listi, onda je u pasivnom 
stanju 
8.  Lista (red) aktivnih dretvi – dretve koje se izvode, broj članova u toj listi jednak je broju 
procesora. U jednoprocesorskom sustavu ima samo jedan deskriptor. 
9.  Lista (red) pripravnih dretvi – ako se ne izvode, a spremne su. Prema načinu formiranja red 
može biti – po redu prispjeća (FCFS (first come, first served) ili FIFO) ili prioritetni 
10.  Red semafora – dretve tijekom izvođenja mogu biti blokirane čekajući na ispunjenje nekog 
uvijeta (4 načina blokiranja čekanjem na: BSEM (binarni semafor), OSEM (opći semafor), 
istek zadanog intervala kašnjenja, završetak U/I operacije 
11.  Lista (red) odgođenih dretvi – zadano kašnjenje dretve 
12.  Lista (red) U/I naprave – redova koliko ima U/I naprava, U/I naprave se obično koriste 
pojedinačno 

5. Koja su blokirna stanja dretve? (OK) 05­26 
­  čekanje na binarnom seamforu 
­  čekanje na općem semaforu 
­  čekanje na istek zadanog intervala kašnjenja (odgođene dretve) 
­  čekanje na završetak U/I operacije. 

6. Opiši kako radi binarni semafor. (OK) 05­27 
­  omogućuje nam ostvarenje međusobnog isključivanja dretvi, a sastoji se od varijable 
Bsem[I].v koja igra ulogu zastavice i kazaljke koja pokazuje na red opisnika dretvi koje nisu 
uspjele proći semafor 
­  semafor može poprimiti dvije vrijednosti 0 i 1. Ako je Bsem[I].v == 1, semafor je prolazan, ako 
je Bsem[I].v == 0 semafor je neprolazan. 
­  dretva koja naiđe na prolazni semafor bit će propuštena i jezgra će staviti vrijednost 0 u 
Bsem[I].v 
­  ako jedna ili više dretvi pokušaju proću uz neprolazni semafor, one će biti zaustavljene i 
njihovi će opisnici biti prebačeni u red pridružen tom semaforu.

14 
7. Opiši kako radi opći semafor. 05­29 

8. Skiciraj graf stanja dretva SLAJDOVI 05­35, 

9. Što obavlja instrukcija "aktiviraj prvu dretvu"? (OK) 
premjestiti prvi opisnik iz reda Pripravne_D u red Aktivna_D; 
obnoviti kontekst iz opisnika Aktivna_D; 
omogućiti prekidanje; 
vratiti se iz prekidnog načina; 

10. Čemu služe semafori? 
Služe za međusobno isključivanje dretvi 

11. Koju strukturu podataka ima binarni i opći semafor? 
BSEM koristi varijablu Bsem[i].v i kazaljku 
OS koristi varijablu OS.v i kazaljku 
OSEM koristi varijablu Osem[J].v i kazaljku. 

12. Na koji način se obavljaju jezgrine funkcije na jednojezgrenom procesoru, a kako na 
višejezgrenom procesoru? 
U 1­CPU se obavljaju međusobno isključivo (pomoću zabranjivanja prekida) 
U višejezgrenom – TAS? 
Nije mi ovo najjasnije pitanje. 

13. Naizmjenično obavljanje 2 dretve 
Se može sinkronizirati upotrebom minimalno 2 binarna semafora (mogu i OS i OSem) 

14. Navedi načine međusobnog isključivanja (programske)? 
Dekkerov postupak – Međusobno isključivanje 2 dretve 
Petersonov postupak – Međusobno isključivanje 2 dretve (pojednostavljen Dekker) 
Lamportov protokol – Međusobno isključivanje većeg broja dretvi 

15. Što je to potpuni zastoj? 
Blokiranje reda u redu čekanja , stanje sustava u kojem su sve dretve blokirane na nekom redu uvjeta 

16. Koji su nužni uvjeti za potpuni zastoj? (OK) 05­29 
Potpuni zastoj se može dogoditi kada se najmanje dvije dretve nadmeću za najmanje dva sredstva. Tri 
su nužna uvjeta za nastajanje potpunog zastoja: 

­ neko sredstvo u istom času može upotrebljavati samo jedna od dretvi (međusobno isključivo) 
­ dretvi se sredstvo ne može oduzeti – ona ga otpusšta sama kada ga više ne treba 
­ dretva drži dodijeljeno joj sredstvo dok čeka na dodjelu dodatnog sredstva 

17. Što je to monitor? 
Monitor je sinkronizacijski mehanizam u višedretvenim/višeprocesorskim sustavima. U njemu su 
objedinjeni mehanizmi suradnje dretvi kao prikladne nakupine funkcija koje djeluju na njegovu 
strukturu podataka. 
18.  Navesti jezgrine strukture podataka potrebne za ostvarenje monitora! 
Red čekanja Monitor[M], red čekanja Reduvjeta[M,K] gdje svaki red predstavlja jedan uvjet 
Funkcije su: Uđi_u_monitor, Izađi_iz_monitora, Uvrsti_u_red_uvjeta, Oslobodi_iz_reda_uvjeta

15 
19. Kada se mogu naći 2 dretve u monitoru? 
Kada dretva koja je ušla u monitor može djelovat na ispunjenje nekog uvjeta tako da time deblokira 
dretvu koja je unutar monitora čekala na ispunjene tog uvjeta. 
Napomena: Oko ovog pitanja sam čuo dosta svađe jer neki tvrde da je odgovor ovo gore, neki tvrde 
da je to samo prividno (da se dvije nalaze u monitoru), a neki kažu da jednostavno NIKAKO. Pa vi 
budite pametni… 

20. Kojim jezgrinim mehanizmima je zaštićen monitor? 
Čekanjem monitorskog semafora 

21. Što je to monitorska funkcija? 
­ monitorska funkcija se odvija u korisničkom načinu rada (kreira je korisnik) 
­ unutar monitorske funkcije dretva ispituje složeni uvijet 

22. U čemu se razlikuje monitorski semafor od binarnog semafora? 
Monitorski semafor omogućuje i drugim monitorskim funkcijama da koriste istu strukturu podataka. 
­ kod BSEM imamo samo dvije funkcije (čekaj/postavi) 
­ MON 2 primarne funkcije + dodatne (2) (uđi/izađi) + (uvrsti u red uvjeta / oslobodi iz reda uvjeta) 

23. objasniti parametre sustava: 

a) iskoristivost/faktor iskorištenja: ro=alfa/beta, a u postocima: ni=(Tp/Td)*100 (%) ili alfa/beta*100% 
b) alfa ­ broj poslova koji ulazi u sustav u jedinici vremena 
c) beta ­ broj poslova koje poslužitelj može obaviti u jedinici vremena 
d) n potez ­ prosjećan broj poslova u sustavu 
e) T potez ­ prosjećno zadržavanje u sustavu 

24. Navesti jezgre funkcije za ostvarenje monitora! 
Uđi_u_monitor, Izađi_iz_monitora, uvrsti_u_red_uvjeta, oslobodi_iz_reda_uvijeta 

25. Objasni: 
Littleovo pravilo 
Markoljev lanac(skiciraj i objasni) 

26. Skicirajte Markovljev lanac gdje stanja predstavljaju broj poslova u sustavu. Sustav ima 
Poissonovu razdiobu. To si nađite u slajdovima 

27. U kojem slučaju se može dozvoliti veliki faktor iskorištenja? 
Kada su trenutci dolaska i trajanja poslova deterministički (daju se odrediti i stalno su isti) 
U Determinističkom, ­ ako trenuci dolazaka poslova i trajanje obrade odgovaraju determinističkoj 
raspodjeli, inače dolazi do zagušenja. 

28. O čemu ovisi parametar β? 
O vrsti posla, o poslužitelju 

29. Koja je zadnja aktivnost unutar monitorske funkcije? 
Zadnja aktivnost unutar monitorske funkcije je izaći iz monitora ili oslkoboditi dretvu iz reda uvjeta.

16 
3. CIKLUS PREDAVANJA 

8. POGLAVLJE 

1. Gdje se generiraju adrese unutar procesora? OK 
U  von  Neumannovoj  arhitekturi  računala  se  sve  adrese  generiraju  unutar  procesora,  i  onda  se  one 
neposredno preko adresnih vodiča dovode do spremnika. 
a)  adrese  instrukcija  koje  dolaze  iz  programskog  brojila  kad  se  iz  radnog  spremnika 
dohvaćaju instrukcije 
b) stogovne adrese koje dolaze iz registra kazaljke stoga kad se adresira stog; 
c)  adrese  operanada  i  rezultata  operacija  (adrese  podataka),  koje  se  stvaraju  na  temelju 
sadržaja adresnih dijelova instrukcija kad se adresiraju podaci. 

2. Na koje segmente se dijeli procesni adresni prostor? (Sumnjivo, ali nisam našao bolji) 
Svaki  računalni  proces  ima  barem  jednu  dretvu.  Ako  se  proces  sastoji  od  više  dretvi,  onda  se 
spremnički prostor procesa dijeli na dretvene prostore i jedan zajednički prostor u koji mogu pristupiti 
sve dretve. Unutar svakog dretvenog podprostora može se prepoznati: 
a) kodni ili instrukcijski segment u koji se pohranjuju instrukcije programa ili programski kod, 
i adresira se iz programskog brojila; 
b) stogovni segment u koji se pohranjuje stog, i adresira se iz registra kazaljke stoga; 
c)  podatkovni  segment  u  koji  se  pohranjuju  podaci,  i  cije  se  adrese  stvaraju  na  temelju 
sadrzaja adresnih dijelova instrukcija. 

3. Koliko iznosi ukupno trajanje prijenosa podataka između tvrdog diska i RAM­a? (THX Daxxx) 

I.)trajanje postavljanja glave: 
a)trajanje traženja (seek time) – t ubrzavanja ručice glave, gibanje konstantnom 
brzinom, t usporavanja, t finog pozicioniranja 
b)rotacijsko kašnjenje (avg Tr/2) 

II.)trajanje prijenosa podataka – ovisi o brzini prijenosa i količini podataka 
Vp=broj_sektora*veličina_sektora/Tr 

4. Čime je određeno trajanje prijenosa podataka? FER2 
brzinom prijenosa (engl. data transfer rate) 
Brzina prijenosa određena je brzinom kojom ispod glave za čitanje ili pisanje promiču bajtovi sektora. 
Može se izračunati tako sa se broj sektora na stazi pomnoži s brojem bajtova u sektoru i taj umnožak 
podijeli s trajanjem jednog okretaja. 
količinom prenešenih podataka 
mislim da ovo ne treba dodatno pojasnjavati :) 
ponašanjem upravljačkog sklopa diska. 
Spremnik  upravljačkog  sklopa  služi  kao  međuspremnik  između  radnog  spremnika  i  samog 
magnetskog  diska.  Upravljački  sklop  obavlja  sve  detalje  komuniciranja  s  diskom.  U  njemu  se  može 
obaviti  i  zaštitno  kodiranje  odnosno  dekodiranje  i  eventualno  ponovno  čitanje  s  diska  kako  bi  se 
eliminirale  moguće  pogreške  nastale  od  trenutnih  smetnji.  Brzina  prijenosa  iz  upravljačkog  sklopa 
diska u radni spremnik ovisi i o brzini prijenosa na sabirnici, kao i o trenutnom intenzitetu prometa na 
sabirnici. 

U  najgorem  slučaju  upravljački  sklop  može  djelovati  tako  da  ukupnom  trajanju  prijenosa  pridonosi 
dijelove milisekunde i mi ćemo ga, u pojednostavljenom gledanju, naprosto zanemariti.

17 
5. Od čega se sastoji trajanje postavljanja glave? 
Trajanje  traženja  staze  (4  komponente:  trajanje  ubrzavanja  ručice  glave,  kretanje  konstantnom 
brzinom, trajanje usporavanja i trajanje finog pozicioniranja) 
Rotacijsko  kašnjenje  (čeka  se  da  se  nakon  postavljanja  glave  na  odabranu  stazu  ispod  glave  pojavi 
traženi  sektor.  Max=>ako  je  traženi  sektor  taman  prolazio  ispod  glave  kad  je  ona  prispjela  u  stazu; 
mora  se  čekati  puni  okretaj.  Min=>kad  se  traženi  sektor  pojavi  u  trenutku  njezina  postavljanja  na 
stazu) 

6. Od čega se sastoji trajanje traženja staze? OK 
Trajanje traženja staze (seek time, trajanje traženja) se sastoji od: 
a) trajanje ubrzavanja ručice glave 
b) kretanje konstantnom brzinom 
c) trajanje usporavanja 
d) trajanje finog podešavanja (pozicioniranaja) 

7.  Uobičajeno  se  za  vrijeme  traženja  uzima  vrijeme  koje  je  potrebno  za  prijelaz  preko 
____trećine_________ ukupnog broja staza. OK 

8. Zbog čega nastaje rotacijsko kašnjenje i o čemu ovisi? OK 
Rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije 
početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor. 
Najlošiji slučaj – adresirani sektor je upravo prolazio ispod glave kad je ona prispjela na stazu 
Najbolji slučaj – adresirani sektor upravo u trenutku postavljanja glave nailazi ispod glave. 
Prosječno  –  uzimamo  vrijednost  tih  dvaju  krajnjih  slučajeva  i  pretpostavljamo  da  je  prosječno 
rotacijsko kašnjenje jednako poloviti trajanja jednog okretaja diska – Tr/2. 

9. Navedite sadržaj procesnog informacijskog bloka!  (THX Daxxx) 
Tablice sektora, podaci o smještaju programa u radnom spremniku, opisnici dretvi procesa, opisnik 
virtualnog procesnog adresnog prostora. 

10. Objasniti statičko i dinamičko raspoređivanje spremnika! OK 
Statičko ­ particije su stalne veličine (fixed partitions), program kad je dodjeljen jednoj particiji uvijek je 
u  toj  particiji,  i  kad  je  izbačen iz radnog  spremnika može  se vratiti  samo  u  tu  particiju.  Nedostatak  – 
unutarnja i vanjska fragmentacija 
Dinamičko  ­  program  izračunava  adrese  kao  da  kreće  od  0  (logički  adresni  prostor),  smjestiti  će  u 
radni  spremnik  koji započinje fizičkom  adresom PA,  u  procesoru  iza  adresnog  međuregistra je jedno 
sklopovsko zbrajalo i uz njega registar u koji se zapisuje početna adresa fizičkog adresnog prostora, 
'reg'  se  naziva  bazni  registar.  Programi  se  slažu  jedan  iza  drugoga.  Registar  ograde  ­  koristi  se  da 
program  ne  bi  zauzeo  prostor  susjednog  programa.  Računa  se  kao  OG=PA  (početna  adresa  u 
fizičkom  adresnom  prostoru)  +  VELIČINA  (veličina  programa).  Ovo  rješenje  je  sklopovsko  i  registar 
ograde se provjerava prije ulaska u radni spremnik. I dalje nedostatak fragmentacija (vanjska) ­ pojava 
rupa (kada se neki program makne iz radnog spremnika). 

11. Navedite vrste fragmentacije (statičko i dinamičko)! OK 
Prilikom statičkog raspoređivanja radnog spremnika javljaju se dvije vrste fragmentacija: 
Unutarnja  (internal  fragmentation) –  programi  neće  biti jednake veličine  kao  particije te  će  dijelovi 
particija ostati neiskorišteni 
Vanjska  (external  fragmentation)  –  tijekom  rada  se  može  dogoditi  da  svi  procesi  čiji  su  programi 
smješteni u istu particiju bivaju blokirani pa ta particija radnog spremnika ostane prazna. Pritom može 
postojati više procesa čiji programi čekaju na dodjelu radnog spremnika, ali oni ne mogu biti napunjeni 
u radni spremnik jer nisu pripremljeni za tu particiju.

18 
Kod dinamičkog raspoređivanja radnog spremnika imamo samo vanjsku fragmentaciju: 
Problem  fragmentacije  spremničkog  prostora  –  tijekom  vremena  neki  procesi  završavaju  izvođenje  i 
oslobađaju svoj spremnički prostor. Drugi procesi bivaju blokirani i izbacuju se iz radnog spremnika pa 
tako  također  oslobađaju  svoj  procesni  prostor  kako  bi  načinili  mjesta  za  programe  procesa  koji  se 
mogu  izvoditi.  Ti  će  se  procesi  kasnije  vratiti  u  spremnik  ali  najvjerojatnije  na  neko  drugo  mjesto.  S 
obzirom  da  veličine  programa  nisu  jednake  u  spremniku  će  se  nakon  nekog  vremena  između 
procesnih adresnih prostora pojaviti prazni dijelovi spremnika koje nazivamo rupama. 

12. Kako se može ublažiti problem fragmentacije prilikom dinamičkog dodjeljivanja spremnika, 
s obzirom da se ne može se izbjeći? OK 
Pri  svakom  oslobađanju  nekog  procesnog  prostora  novonastala  rupa  spaja  s  eventualnim  susjednim 
rupama u novu veću rupu 
Pri  svakom  novom  zahtjevu  za  spremničkim  prostorom  potraži  se  najmanja  rupa  u  koju  se  može 
smjestiti novi program 
Ako fragmentacija  postane  prevelika  postoji mogućnost  da  se  privremeno  obustavi  izvođenje  dretvi i 
presloži programe u kompaktni prostor. Ta se tehnika zove „garbage collection“ 

13. Navesti i dokazati Knuthovo 50%­tno pravilo! OK, izvod – Daxxx fotka, FER2, skripta 
U stacionarnom stanju u spremniku postoji broj rupa koji je jednak polovini broja punih blokova. 

14. Kad se ustanovi da je fragmentacija prilikom dinamičkog dodjeljivanja spremnika prevelika, 
tada  se  _zaustave  se  sve  dretve,  presloži  se  sve  programe  u  kompaktni  prostor,  i  krene  se  dalje 
(garbage collection)___ . OK 

15.  Kojim  redoslijedom  mogu  biti  smještene  stranice  logičkog  adresnog  prostora  u  okvire 
fizičkog spremnika? ??? Ovo sam izvadio sa materijala i nisam našao u skripti 
Proizvoljnim redoslijedom. 

16. Objasniti preklopni način uporabe spremnika! OK, FER2 
Osnovna zamisao je da se program čiji je logički adresni prostor veći od fizičkog spremnika podjeli na 
dijelove  koji  ne  moraju  istovremeno  biti  spremljeni  u  radnu  memoriju  (fizički  spremnik).  U  radnom 
spremniku mora  se  nalaziti  onaj  dio  programa  koji  se trenutno izvodi kao i  dio  podatkovnog  prostora 
koji  te  instrukcije  adresiraju.  Program,  treba  podijeliti  na  jedan  osnovni  dio  koji  se  uvijek  nalazi  u 
radnom spremniku i na dijelove koji se naizmjence smještaju u preostali dio korisničkog dijela fizičkog 
spremnika. Zamjenljivi  dijelovi  programa  se  u  preklopu  (engl.  overlay)  smještaju  u  radni  spremnik  pa 
taj način nazivamo preklopnim načinom uporabe spremnika. 
Programer  mora  podijeliti  program  na  odgovarajuće  dijelove  i  u  osnovni  dio  programa  ugraditi 
mehanizme za donošenje odluke o pravodobnom prebacivanju preklopnih dijelova u radni spremnik. 
Postupak  podjele  programa  na  dijelove  i  način  njihova  smještanja  u  radni  spremnik  treba 
automatizirati, kako bi se olakšala priprema programa i izbjegle pogreške programera. 
U  današnjim  računalnim  sustavima  upotrebljavaju  se  procesori  s  prikladnim  spremničkim 
međusklopovima  koji  omogućuju  da  operacijski  sustavi  ostvare  vrlo  djelotvorno  gospodarenje 
spremničkim prostorom. 

17. Kako treba podijeliti program u preklopnom načinu uporabe radnog spremnika? OK 
U radnom spremniku mora se nalaziti onaj dio programa koji se trenutno izvodi kao i dio podatkovnog 
prostora  koji  te  instrukcije  adresiraju.  Pritom  program,  treba  podijeliti  na  jedan  osnovni  dio  koji  se 
uvijek nalazi u radnom spremniku i na dijelove koji se naizmjence smještaju u preostali dio korisničkog 
dijela fizičkog spremnika.

19 
18. Kako se dijeli logički adresni prostor, a kako fizički? OK 
Logički adresni prostor dijelimo na stranice, a fizički adresni prostor dijelimo na okvire. 

19.  O  čemu  ovisi  veličina  logičkog  adresnog  prostora,  a  o  čemu  veličina  fizičkog  adresnog 
prostora? OK 
Veličina  logičkog  adresnog  prostora  ovisi  o  arhitekturi  procesora  (32  bitna,  64  bitna…),  a 
veličina fizičkog adresnog prostora o količini radne memorije (RAM­a). 

20. Čemu sluzi tablica prevođenja, i od kojih se elemenata sastoji? (THX Daxxx) 
Tablica prevođenja  je sastavni dio spremničkog međusklopa u kojoj se vodi evidencijao tome u kojem 
je  okviru  smještena  pojedina  stranica  (za  više  vidi  TLB  kod  Intel  x86).  Kaže  daxxx  ­  od  redaka  (za 
svaku  stranicu  jedan  redak)  u  kojima  se  pohranjuje  broj  okvira  u  kojem  se  nalazi  (ako  je  in)  te 
dodatnog bita prisutnosti za svaki redak] 

21. U čemu se razlikuju prekidi izazvani zbog promašaja stranice od ostalih vrsta prekida? OK 
Prekid uslijed promašaja stanice dogodio se za vrijeme izvođenja instrukcije, a ne na kraju instrukcije. 
Stoga se instrukcija koja je izazvala prekid mora ponoviti. Da bismo ponovili instrukciju, moramo znati 
sadržaje  svih  registara  prije izvođenja te instrukcije.  Zbog  toga  procesori  predviđeni  za  ostvarivanje 
virtualnog  spremnika  imaju  posebne  skrivene  kopije  registara  u  kojima  se  čuvaju  nepromijenjene 
vrijednosti  registara  tijekom  izvođenja  cijele  instrukcije.  Vrijednosti  tih  registara  se  obnavljaju  tek  na 
kraju izvođenja svake instrukcije. 

22. Čemu služi posmačni registar povijesti? OK 
Dio  praktične  aproksimacije  LRU  strategije  zamjene  stranica.  U tablicu  stranica  dodani  su  posmačni 
registri  u  koje  možemo  posmaknuti  bitove  pristupa.  Dio  operacijskog  sustava  za  gospodarenje 
spremničkim prostorom djeluje na sljedeći način: Pri punjenju stranice u neki okvir briše se njezin bit 
pristupa  i  pripadni  posmačni  registar.  Prekid  od  sata  (periodno)  posmakne  sve  bitove  pristupa  u 
registre  i  zatim  ih  izbriše.  Ponovni  pristup  (čitanje  ili  pisanje)  do  stranice  postavit  će  opet  njezin  bit 
pristupa u 1. Nakon nekoliko perioda otkucaja sata, sadržaj posmačnih registara može se pročitati kao 
binarni broj. Manji broj pokazuje da se u stranicu dulje vremena nije pristupalo. Kada se pojavi potreba 
za  izbacivanjem  stranice  izbacuje  se  ona  sa  najmanjim  brojem  (ili  jedna  iz  razreda  sa  jednakim 
najmanjim brojevima). 

23. Opisati satni algoritam. OK 
Satni algoritam je inačica LRU strategije. Upotrebljava se u UNIX i Windows NT serijama operacijskih 
sustava. Postupak djeluje na sljedeći način – sve se stranice u listu svrstavaju po redu prispijeća. Lista 
se obilazi kružno posebnom kazaljkom (kada dođe do kraja kazaljka se vraća na početak liste – otuda 
i naziv postupka). Kada se pojavi potreba za praznim okvirom izbacit će se stranica na koju pokazuje 
kazaljka ako je njezina zastavica A (zastavica pristupa) jednaka nuli. Stranica će se preskočiti ako je 
vrijednost zastavice A jedan, ali će se pritom njezina vrijednost promijeniti u 0. Kazaljka se pomiče za 
po  jedno  mjesto  dok  ne  naiđe  na  stranicu  sa  A  jednakoj  nuli.  Ako  kazaljka  kružno  obiđe  cijelu  listu 
pronalazeći sve same jedinice ona će ih sve obrisati te izbaciti stranicu s koje je započela obilazak.

20 
28. Kakva je sklopovska potpora za straničenje u Intel x86 arhitekturi? Također koliko pristupa 
radnom spremniku je potrebno ako je stranica navedena u TLB i ako stranica nije navedena u 
TLB.  (THX Daxxx) i moja i Daxxxova preporuka – učite to iz skripte! 

Unutar procesora – CR3 registar – kazaljka na tablicu prevođenja (svaki proces ima svoju tablicu) 
Tablica prevođenja – dvorazinska 
a)  direktorij stranica – 1024 kazaljke po 32 bita pokazuju na stranice pod b) 
b)  tablice stranica – 1024 riječi po 32 bita 

AL (logička adresa): 
­  gornjih 10b izabire iz a) kazaljku na jednu od tablica stranica 
­  sljedećih 10b iz te tablice odabire adresu stranice 
­  donjih 12b ide izravno u donjih 12 AF (fizičke adrese.) 

Tako odabranih 32b à 1 od registara TLB­a (priručni međuspremnik za prevođenje adresa) 
TLB – gornjih 20b ide u gornjih 20b AF (sadrži i dodatni 20b registru koji ide gornjih 20b AL, za 
usporedbu s novom adresom ­ ubrzanje.) 

9. POGLAVLJE 

24. Što sačinjava opisnik datoteke? OK 
Naziv  datoteke, tip  datoteke, lozinka,  ime vlasnika,  pravo  pristupa, vrijeme  stvaranja, vrijeme  zadnje 
uporabe, ime posljednjeg korisnika, opis smještaja datoteke 

25. Što sačinjava datotečnu tablicu? OK 
Veličina diska (particije), količina slobodnog prostora, informacije o slobodnom prostoru (pozicija i sl) 
opisnici datoteke. 

2. Na koji način je opis smještaja pohranjen u NTFS, a na koji u UNIX sustavu? (THX Daxxx) 

NTFS 
diskovni prostor dodjeljuje se po skupinama sektora (1,2,4,8)/cluster; 
referenca na disk uporabom LCN (r.br.clustera); 
postoji datoteka MFT koja sadrži opisnik svake datoteke (1 zapis je veličine 1 clustera ~4KB); 
male datoteke se cijele smještaju unutar MFT zapisa; 
veće datoteke – zapis sadrži indekse clustera (+ dodatna potrebna proširenja); 
datoteka se dijeli na „virtualne skupine“ („stranice“ jednake veličini „okvira“ (clustera)) 
– r.br.str. = VCN; 

UNIX 
13 kazaljki: 
10 neposrednih ­ pokazuju na prvih 10 sektora [dat. do 10KB] 
1 jednostruko indirektna ­ pokazuje na sektor s idućih 256 kazaljki [do 266KB] 
1  dvostruko  indirektna  ­  pokazuje  na  sektor  s  kazaljkama  na  256  sektora  od  kojih  svaki  ima  256 
kazaljki () [do 64MB] 
1 trostruko indirektna ­ kao gore samo još jedan stupanj indirekcije (256x256x256) [do 16GB]

21 
10. POGLAVLJE 

26. Po kojim pravilima djeluje globalni logički sat? OK 
‐  proces Pi povećava svoj logički sat Ci između svaka svoja dva događaja 
‐  kada proces Pi šalje poruku m on u nju pridodaje vremensku oznaku Tm=Ci 
‐  kada  proces  Pj  primi  poruku  on  postavlja  u  svoj  logički  sat  Cj  vrijednost  koja  je  veća  od 
njegove prethodne vrijednosti i veća od prispjele vremenske oznake Tm. 

27. Zašto izgladnjivanje nije moguće kod Ricarta&Agrawala te kod Lamporta? FER2 – provjeriti 
Zbog globalnog logičkog sata. 

PROTOKOLI 
‐  slajdovi pred sam kraj (konkretno počinje na 10­51) pa to lijepo proučite. 
Besramno pokradeno od Daxxxa: 
1. Centralizirani protokol 
Jedna  od čvorova odgovoran za ostvarenje međusobnog isključivanja, u njemu su svi podaci, on daje 
dozvole za ulazak u KO 
Pi čija dretva želi u KO šalje zahtjev(i) centralnom čvoru (pa čeka odgovor); 
c.č. prihvaća zahtjev i šalje odgovor(i) čvoru Pi kad ovaj smije ući u KO; 
nakon KO dretva šalje izlaz(i) c.č.­u; 
(dozvola ulaska ~ značka) 

2. Protokol sa putujućom značkom 
Jedna značka kao poruka putuje kroz čvorove; 
kad prispije u čvor Pi, on: 
a)  zadrži je ako želi u KO i šalje dalje po završetku 
b)  šalje dalje ako ne želi u KO 

3. Lamportov protokol 
(nabrojat ću pravila) 
a)  Pi zahtjeva ulazak u KO – stavlja poruku zahtjev(i,T(i)) u svoj red, šalje je svim procesima 
b)  kad  Pj  primi  zahtjev(i,T(i))  –  uskladi  svoj  Cj,  stavlja  poruku  u  svoj  red  čekanja,  šalje 
odgovor(i,T(j))  procesu Pi 
c)  )Pi  smije  u  KO  –  kad  je  njegov  zahtjev  na  početku  reda,  te  kad  je  primio  odgovore  (od  svih 
ostalih procesa) čije su vremenske oznake >T(i) 
d)  Pi izlazi iz KO – odstrani iz svog reda zahtjev(i,T(i)), pošalje svim ostalima izlazak(i,T(i)*) 
[!! T(i)* je vrijednost prvotno poslanog zahtjeva] 
e)  Pj primi izlazak(i,T(i)) – iz svog reda izbacuje zahtjev(i,T(i)) 

3x(n­1) poruka za in­out KO 

4. Protokol R­A 
Procesi šalju odgovore samo kad ustanove da ne žele u KO ili kad nemaju pravo prvenstva (to je bitna 
razlika od Lamporta, kaže daxxx da mu se n da opet ista pravila pisat J) 

2x(n­1) poruka za in­out KO (učinkovitiji od Lamporta) 

5. Lokalni i globalni logički sat 
Lokalni logički sat Ci – brojilo, povećava vrijednost prilikom svakog karakterističnog događaja u Pi 
‐  Jednoznačno utvrđivanje redoslijeda događaja unutar 1 procesa 
‐  a àb ako Ci(a) < Ci(b) 

Globalni logički sat 
‐  kada Pi šalje poruku m, uz nju pridodaje vremensku oznaku Tm = Ci 
‐  kada Pj primi m, postavlja svoj Cj na vrijednost veću od prethodne i veću 
od pristigle Tm 
‐  a ==>b ako Ci(a)<Cj(b) || [ Ci(a)=Cj(b)) && i<j ]

22 
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

TEORIJA

1. Opisati organizaciju smještaja podataka na magnetskom disku.

Sve ploče učvršćene su na istu osovinu i vrte se konstantnom brzinom ω.


U smjeru radiusa ploča (ili približno u smjeru radiusa blagim lukom pomiču se glave
za pisanje i čitanje.
Glave se mogu vrlo precizno postaviti na jedno mjesto i tada ispod njih prolazi vrlo
uski prsten ploče koji zovemo stazom (engl. track).
Staze jednakih polumjera svih diskova leže na zamišljenom plaštu valjka i zovemo ih
zajedničkim imenom cilindar (engl. cylinder).
Svaka je staza podijeljena je na jednake dijelove (kružne lukove s jednakim središnjm
kutevima) koje zovemo sektorima (engl. sector).
U jedan sektor može se pohraniti određeni broj bajtova. Uobičajeno je to 256, 512 ili
1024 bajtova.
Svaki sektor na disku ima svoju jedinstvenu adresu koja se izračunava iz:
- rednog broja ploče,
- rednog broja staze na ploči i
- rednog broja sektora na stazi.
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na te


melju položaja glava, a redni broj sektora dobiva se tako da se mjere kutovi vrtnje po
čevši od posebne oznake na ploči koja označava početni kut.
U uobičajenim izvedbama diskova svaka ploča ima svoju glavu za pisanje, odnosno čitanje,
ali se u jednom času može pristupiti samo do jedne od ploča, tj. može se čitati ili pisati samo
u jednu stazu cilindra.

2. Koliko iznosi ukupno trajanje prijenosa podataka izmeĊu tvrdog diska i RAM-a ?

Ukupno trajanje prijenosa podataka = trajanje postavljanja glave + trajanje


prijenosa podataka

Trajanje postavljanja glave = trajanje traženja staze + rotacijsko kašnjenje


Trajanje prijenosa po dataka = tranje čitanja djela ili cijele staze + trajanje premještanja
glave sa staze na stazu.

3. Zbog ĉega nastaje rotacijsko kašnjenje i o ĉemu ovisi?


Rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu
mora prije početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor.
Najlošiji slučaj – adresirani sektor je upravo prolazio ispod glave kad je ona prispjela na
stazu
Najbolji slučaj – adresirani sektor upravo u trenutku postavljanja glave nailazi ispod glave.
Prosječno – uzimamo vrijednost tih dvaju krajnjih slučajeva i pretpostavljamo da je
prosječno rotacijsko kašnjenje jednako poloviti trajanja jednog okretaja diska – Tr/2.

4. Gdje se generiraju adrese unutar procesora ?


U von Neumannovoj arhitekturi računala se sve adrese generiraju unutar procesora, i onda
se one neposredno preko adresnih vodiča dovode do spremnika.
a) adrese instrukcija koje dolaze iz programskog brojila kad se iz radnog
spremnika dohvaćaju instrukcije
b) stogovne adrese koje dolaze iz registra kazaljke stoga kad se adresira stog;
c) adrese operanada i rezultata operacija (adrese podataka), koje se stvaraju na
temelju sadržaja adresnih dijelova instrukcija kad se adresiraju podaci.
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

5. Navedite vrste fragmentacije (statiĉko i dinamiĉko)!


Prilikom statičkog raspoređivanja radnog spremnika javljaju se dvije vrste fragmentacija:
Unutarnja (internal fragmentation) – programi neće biti jednake veličine kao particije te
će dijelovi particija ostati neiskorišteni
Vanjska (external fragmentation) – tijekom rada se može dogoditi da
svi procesi čiji su programi smješteni u istu particiju bivaju blokirani pa ta particija radnog
spremnika ostane prazna. Pritom može postojati više procesa čiji programi čekaju na do
djelu radnog spremnika, ali oni ne mogu biti napunjeni u radni spremnik jer nisu
pripremljeni za tu particiju.

Kod dinamičkog raspoređivanja radnog spremnika imamo samo vanjsku fragmentaciju:


Problem fragmentacije
spremničkog prostora tijekom vremena neki procesi završavaju izvođenje i oslobađaju svoj
spremnički prostor.
Drugi procesi bivaju blokirani i izbacuju se iz radnog spremnika pa tako
također oslobađaju svoj procesni prostor kako bi načinili mjesta za programe
procesa koji se mogu izvoditi. Ti će se procesi kasnije vratiti u spremnik ali najvjerojatnije
na neko drugo mjesto.
S obzirom da veličine programa nisu jednake u spremniku će se nakon
nekog vremena između procesnih adresnih prostora pojaviti prazni dijelovi spremnika koje
nazivamo rupama.

6. Navesti i dokazati Knuthovo 50%-tno pravilo!


U stacionarnom stanju u spremniku postoji broj rupa koji je jednak polovini broja punih
blokova.
Knuthovo pravilo pretpostavlja da je vjerojatnost oslobađaja spremničkog prostora
jednaka vjerojatnosti zahtjeva. Predpostavlja se da će zbog toga tijekom vremena u
sustavu doći do stohastičkog ravnotežnog stanja odnosno da će prosječan broj rupa i punih
blokova biti stalan. U tom slučaju možemo predpostaviti da postoje 4 tipa blokova razvr
stavjući ih po kriteriju da li im im je predhodnik i sljedbenik rupa ili puni blok.
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

7. Kako se može ublažiti problem fragmentacije prilikom dinamiĉkog dodjeljivanja


spremnika, s obzirom da se ne može izbjeći ?
Pri svakom oslobađanju nekog procesnog prostora novonastala rupa spaja
s eventualnim susjednim rupama u novu veću rupu.
Pri svakom novom zahtjevu za spremničkim prostorom potraži se najmanja rupa u
koju se može smjestiti novi program.

8. Kad se ustanovi da je fragmentacija prilikom dinamiĉkog dodjeljivanja spremnika


prevelika,
tada se zaustave se sve dretve, presloži se sve programe u kompaktni prostor, i krene se
dalje (garbage collection).
9. Strategije zamjene stranica.
FIFO – stranica koja je najdulje u radnom spremniku
LRU – stranica koje se najdalje u prošlosti nije koristila
OPT – stranica koja se najdalje u budućnosti neće koristiti
LFU – stranica koja se u radnom spremniku najrjeđe koristila

10. Kako se dijeli logiĉki adresni prostor, a kako fiziĉki?


Logički adresni prostor dijelimo na stranice, a fizički adresni prostor dijelimo na okvire.
11. Ĉemu služi tablica prevoĊenja, i od kojih se elemenata sastoji?
Tablica prevođenja je sastavni dio spremničkog međusklopa u kojoj se vodi evidencija o
tome u kojem je okviru smještena pojedina stranica (za više vidi TLB kod Intel x86).
Od redaka (za svaku stranicu jedan
redak) u kojima se pohranjuje broj okvira u kojem se nalazi (ako je in) te dodatnog bita
prisutnosti za svaki redak]

12. U ĉemu se razlikuju prekidi izazvani zbog promašaja stranice od ostalih vrsta
prekida?
Prekid uslijed promašaja stanice dogodio se za vrijeme izvođenja instrukcije, a ne na
kraju instrukcije.
Stoga se instrukcija koja je izazvala prekid mora ponoviti. Da bismo ponovili instrukci
ju, moramo znati sadržaje svih registara prije izvođenja te instrukcije.
Zbog toga procesori predviđeni za ostvarivanje virtualnog spremnika imaju posebne
skrivene kopije registara u kojima se čuvaju nepromijenjene vrijednosti registara
tijekom izvođenja cijele instrukcije. Vrijednosti tih registara se obnavljaju tek na kraju iz
vođenja svake instrukcije.
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

13. Što je to satni algoritam (ne opisivati)?


Satni algoritam je inačica LRU strategije.
14. Koju informaciju nosi bit ĉistoće ?
Ako se sadržaj stranice nije mijenjao, tj. ako je stranica ostala čista, ne
treba ju prepisivati natrag na disk. Zbog toga se u tablicu stranica uvodi posebni bit za
označavanje čistoće.

15. Što saĉinjava opisnik datoteke ?


Naziv datoteke, tip datoteke, lozinka, ime vlasnika, pravo pristupa, vrijeme stvaranja,
vrijeme zadnje uporabe, ime posljednjeg korisnika, opis smještaja datoteke.
16. Što saĉinjava datoteĉnu tablicu?
Veličina diska (particije), količina slobodnog prostora, informacije o slobodnom prostoru
(pozicija i sl), opisnici datoteke.

17. Na koji naĉin je opis smještaja pohranjen u NTFS, a na koji u UNIX sustavu?
NTFS
diskovni prostor dodjeljuje se po skupinama sektora (1,2,4,8)/cluster;
referenca na disk uporabom LCN (r.br.clustera);
postoji datoteka MFT koja sadrži opisnik svake datoteke (1 zapis je veličine 1 clustera
~4KB);
male datoteke se cijele smještaju unutar MFT zapisa;
veće datoteke – zapis sadrži indekse clustera (+ dodatna potrebna proširenja);
datoteka se dijeli na „virtualne skupine“ („stranice“ jednake veličini „okvira“ (clustera))
– r.br.str. = VCN;
UNIX
13 kazaljki:
10 neposrednih pokazuju na prvih 10 sektora [dat. do 10KB]
1 jednostruko indirektna pokazuje na sektor s idućih 256 kazaljki [do 266KB]
1 dvostruko indirektna pokazuje na sektor s kazaljkama na 256 sektora od kojih svaki ima
256 kazaljki () [do 64MB]
1 trostruko indirektna kao gore samo još jedan stupanj indirekcije (256x256x256) [do
16GB]
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

VAŽNIJI POJMOVI
staza
‐ vrlo uski prsten ploče kojeg čita glava
cilindar
‐ staze jednakih polumjera svih diskova; leže na zamišljenom plaštu valjka; ne može
sepročitati cijeli cilindar istovremeno, nego se mora čitati staza po staza iz čega proizlazi da
je vrijeme čitanja cilindra s N staza jednako N*Tr pri čemu je Tr vrijeme potrebno
za jedan okretaj diska
sektor
‐ dio staze; svi su sektori jednake veličine; svaki sektor ima jedinstvenu adresu
koji se računa iz rednog broja ploče, rednog broja staze na ploči i rednog broja sektora na
stazi
blokovi
‐ skupine bajtova koji se mogu adresirati, a sastoje se od jednog ili više sektora
rotacijsko kašnjenje
‐ vremenski interval između postavljanja glave na željenu stazu i početka
čitanja kojemu je uzrok to što traženi sektor mora doputovati do glave; najmanje vrijeme
kašnjenja je 0 i do njega dolazi kada je upravo taj sektor točno ispod glave, a najveće je oko
Tr kada se mora čekati cijeli krug jer je traženi sektor baš netom otišao; u proračunima se
često uzima kao prosječno vrijeme kašnjenja Tr/2
procesni informacijski blok
‐ struktura podataka za svaki proces u kojoj se nalaze sve informacije važne za odvija
nje tog procesa (tablice sektora u kojima je program procesa pohranjen na disku,
podatci o smještanju programa u radnom spremniku i slično)
apsolutni oblik zapisa programa
‐ u okviru instrukcija programa zapisane su stvarne fizičke adrese
relativni oblik zapisa programa
‐ u okviru instrukcija zapisane su adrese u odnosu na početnu adresu; za takve
programe kompilator generira oznake za relativne adrese
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

stalne particije
‐ podjela spremnika na dijelove fiksne veličine u koje se smiještaju programi; za
preseljenje u novu particiju generirati novi apsolutni kod programa; problemi:
unutarnja i vanjska fragmentacija
unutarnja fragmentacija
‐ particije u kojima su programi manje veličine od njih samih ostaju
nepotpuno iskorištene
vanjska fragmentacija
‐ svaki program je pripreljmen za točno određenu particiju; ako u svi procesi
neke particije budu blokirani, particija zjapi prazna i u nju se ne može ugurati nitko tko
jadan čeka jer je pripremljen za neku drugu particiju
logiĉki adresni prostor ‐ prostor kojeg adresiraju relativne adrese, dakle tako
izračunate kao da je početna adresa programa (PA) jedanaka nuli
fiziĉki adresni prostor ‐ baš onaj pravi OPERACIJSKI

3. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindri, staze, sektori).


Disk – više ploča na istoj osovini. Glave za čitanje i pisanje se pomiču u smjeru radijusa ploča.
Ispod glava prolaze staze. Skup staza s jednakim radijusom je cilindar. Svaka je staza podijeljena
na jednake dijelove, tj. na sektore.

4. Čime je odreĎena jedinstvena adresa svakog sektora na disku?


Određena je:
- rednim brojem ploče
- rednim brojem staze na ploči
- rednim brojem sektora na stazi
10. Neka je trajanje traženja staze Ts nekog diska s 2000 staza opisano sa sljedeće tri formule,
gdje je D udaljenost izmeĎu trenutačnog položaja glave i tražene staze:
a) Ts=1.5D ms za D<=4
b) Ts=4.0 + 0.5*D^1/2 ms za 4<D<=400
c) Ts=10.00+0.01*D ms za D>400
Odgovor je: c) – bilo bi 10+0.01*2000/3=16.6
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

20. Mogu li stranice logičkog adresnog prostora biti smještene u okvire fizičkog spremnika
proizvoljnim redoslijedom?
Mogu. Kako bi se pri dodjeli okvira fizičkog spremnika izbjegao problem fragmentacije, osnovna
postavka straničenja svodi se na to da stranice logičkog adresnog prostora mogu biti smještene u
okvire fizičkog spremnika proizvoljnim redoslijedom.

24. Koju informaciju nosi bit čistoće? Gdje se on nalazi?


Bit čistoće pokazuje je li stranica čista ili nečista. Postavlja se u vrijednost 0 prilikom svakog
punjenja stranice u neki okvir radnog spremnika. Pri prvom pisanju u stranicu zastavica se
postavlja u vrijednost 1 i time označava da je stranica nečista.
Arhitekturia porodice Intel x86 sadrži 12 bitova svakog retka tablice stranica koji se
upotrebljavaju za označavanje različitih stanja stranice. Ti se bitovi nazivaju zastavicama. Upravo
zastavica D predstavlja bit čistoće. Dakle, bit čistoće nalazi se u tablici prevođenja.
27. Opisati strategiju izbacivanja stranica u Intel x86 arhitektuuri kada se u obzir uzimaju
dvije zastavice za označavanje stanja stranice.
28. U kojim se stanjima mogu nalaziti pojedini okviri tijekom rada?
-aktivno (koristi se); slobodno; slobodno s obrisanim sadržajem

Iz devetog poglavlja

2. Gdje su pohranjeni:
a) opis smještaja datoteke – u opisniku datoteke
b) opisnik datoteke – u datotečnoj tablici
c) datotečna tablica – u sektorima ili nakupinama sektora na disku (na nultoj stazi na disku)

4. Na koji se način može prikazati slobodan prostor na disku?


Sastavni dio svake datotečne tablice je i opis slobodnog prostora sveska (potprostora). Evidencija
o zauzetim i slobodnim sektorima obavlja se bitovnim prikazom. Slobodni se prostor može
opisati i svojevrsnim dinamičkim strukturama u kojima se neposredno može odrediti adresa
slobodnog sektora.

5. Opis bitovnog prikaza slobodnog prostora na disku.


U nizu bitova svakoj nakupini sektora pripada jedan bit čija je vrijednost 1 kada je sektor zauzet
ili 0 kada je slobodan.
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

ZADACI

Disk, staza, sektor

1.Zadatak:
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

2.Zadatak:
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

3.Zadatak:
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

4.Zadatak:
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Disk s pokretnim glavama, FCFS, SSFS, LOOK, SCAN


Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Straničenje, stranicenje, FIFO, LRU, LFU, OPT


Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Satni algoritam
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Staticko, statičko, dinamičko, dinamicko stranicenje straničenje


Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Sektori klasteri
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Kazaljke
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Pseudokodovi: FER Parking


Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

H2O
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Microsoft i linux programeri


Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Ping pong dretve


Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci
Lana Jelusić, Skripta OS drugi kolokvij teorija i zadaci

Problem starog mosta, auti


1. Što je operacijski sustav?

Operacijski sustav je neizostavni dio svakog računalnog sustava. To je skup različitih


programa koji, samostalno ili međudjelovanjem, olakšavaju rad na računalu.

2. Koji su dijelovi OS-a?

Dijelovi OS-a su:

- API (Application Programming Interface) – aplikacijsko programsko sučelje


- GUI (Graphical User Interface) – grafičko korisničko sučelje
- Procesi i dretve (brinu se o sinkronizaciji, komunikaciji te o raspoređivanju poslova unutar OS-
a)
- Sigurnosni podsustav
- Mrežni podsustav
- Upravljanje ulazno-izlaznim uređajima
- Upravljanje spremnikom (MMU – Memory Management Unit)
- Datotečni podsustav (Filesystem).

3. Skicirajte povezanost procesora sa sabirnicom u 32-bitnoj arhitekturi.

SPREMNIK BAJTOVI SPREMNIKA

REGISTAR
ADRESE REGISTAR
SADRŽAJA

ADRESNI DIO m = 32
SABIRNICE
PODATKOVNI
n = 32
DIO SABIRNICE

UPRAVLJAČKI k
DIO SABIRNICE

PROCESOR

ADRESNI PODATKOVNI
MEĐUREGISTAR MEĐUREGISTAR
m predstavlja broj vodiča u adresnoj sabirnici, n broj vodiča u podatkovnoj, a k broj
vodiča u upravljačkoj sabirnici.

4. Koji su zadaci operacijskog sustava?


• Olakšavanje uporabe računala,
• Djelotvorno iskorištavanje svih dijelova računala,
• Višeprogramski i višezadaćni rad.

5. Kako je definiran procesor?

Procesor je definiran skupom instrukcija i skupom registara.

6. Nabrojite registre procesora.

Adresni međuregistar, podatkovni međuregistar, programsko brojilo, pokazivač na


stog, registar statusa, aritmetičko-logička jedinica te instrukcijski registar.

7. Što procesor trajno radi?

Neka vrsta pseudokoda koja pojašnjava rad procesora:

ponavljati {
dohvati iz spremnika instrukciju sa adrese na koju pokazuje programsko brojilo (PC);
dekodiraj instrukciju i odredi operaciju koju treba izvesti;
uvećaj programsko brojilo za 1, na način da pokazuje na sljedeću instrukciju;
odrediti odakle dolaze operandi i kamo se pohranjuju rezultati operacije nad njima;
operande dovesti na ALU (aritmetičko-logičku jedinicu) te izvesti zadanu operaciju;
pohraniti rezultat na odredište;
} sve dok je (procesor uključen);

8. Što je program?

Program je statični niz instrukcija.

9. Što je proces?

Proces je skup računalnih resursa potrebnih za nesmetan rad programa, a time i


računala. Proces je i okolina u kojoj se sam program izvodi.

10. Što je dretva?

Dretva (thread) je niz instrukcija u izvođenju. Dretve, zajedno s procesima, služe za


izvođenje višezadaćnog i višekorisničkog načina rada. Osnovna razlika između dretvi i
procesa je ta da procesi, međusobno, nemaju ništa zajedničko, dok dretve koriste
zajedničke resurse. Svaki proces sastoji se od minimalno jedne dretve.
11. Čime su određena svojstva i ponašanje procesora?

Skupom registara i skupom instrukcija.

12. Opišite osnovne operacije procesora pri izvođenju jedne instrukcije:


a) Bez mogućnosti prekidanja:
ponavljati {
dohvati iz spremnika instrukciju sa adrese na koju pokazuje programsko brojilo (PC);
dekodiraj instrukciju i odredi operaciju koju treba izvesti;
uvećaj programsko brojilo za 1, na način da pokazuje na sljedeću instrukciju;
odrediti odakle dolaze operandi i kamo se pohranjuju rezultati operacije nad njima;
operande dovesti na ALU (aritmetičko-logičku jedinicu) te izvesti zadanu operaciju;
pohraniti rezultat na odredište;
} sve dok je (procesor uključen);

b) S mogućnošću prekidanja:
ponavljati {
dohvati iz spremnika instrukciju sa adrese na koju pokazuje programsko brojilo (PC);
dekodiraj instrukciju i odredi operaciju koju treba izvesti;
uvećaj programsko brojilo za 1, na način da pokazuje na sljedeću instrukciju;
odrediti odakle dolaze operandi i kamo se pohranjuju rezultati operacije nad njima;
operande dovesti na ALU (aritmetičko-logičku jedinicu) te izvesti zadanu operaciju;
pohraniti rezultat na odredište;
ako (došlo_do_prekida) {
1. Onemogući daljnje prekide;
2. Prebaci se u sustavski način rada;
3. Prebacuje se adresiranje na sustavski adresni prostor;
4. Aktivira se sustavski pokazivač stoga;
5. Pohranjuje se sadržaj PC-a u sustavski stog;
6. U PC se unosi adresa potprograma za obradu prekida, nakon čega započinje i
njegovo izvođenje
}
} sve dok je (procesor uključen);

13. Što je kontekst?

Kontekst je sadržaj svih registara u procesoru, osim programskog brojila. Pohraniti


kontekst znači pohraniti trenutni sadržaj registara u procesoru, kako bi nakon izvođenja
prekida/potprograma procesor mogao dalje nastaviti izvoditi glavni program (ili program
više razine).
14. Što procesor radi kada dođe do prekida?

Postoji niz koraka:

1. Zabranjuje daljnje prekide,


2. Prelazi u sustavski način rada:
a) Prebacuje adresiranje na sustavski adresni prostor,
b) Aktivira sustavski pokazivač stoga (SSP – System Stack Pointer),
3. Pohranjuje se sadržaj programskog brojila u sustavski stog,
4. U programsko brojilo se unosi adresa potprograma za obradu prekida, nakon čega
započinje izvođenje tog potprograma.

15. Što znači vratiti se iz prekidnog načina rada?

Također, i ovdje postoji određeni niz koraka:

1. Obnavlja se kontekst,
2. Prelazi se u korisnički način rada,
a) Adresiranje se prebacuje na korisnički adresni prostor,
b) Aktivira se korisnički pokazivač stoga (USP – User Stack Pointer),
3. Omogućavaju se daljnji prekidi,
4. U programsko brojilo unosi se povratna adresa (odnosno, adresa nakon koje je
procesor pokrenuo prekidnu rutinu), kako bi se omogućilo daljnje izvođenje
prekinutog programa.

16. Što znači izraz „obnoviti kontekst“?

Prilikom izvođenja prekidne rutine, u sustavski stog pohranjuje se kontekst (sadržaj


svih registara procesora, osim programskog brojila). Obnova konteksta podrazumijeva
povrat sadržaja procesorskih registara natrag u registre, sa sustavskog stoga. Inače,
obnova konteksta je i prva funkcija koju obavlja prekidna rutina.
17. Kako je ulazno-izlazni uređaj spojen na sabirnicu?

Nije izravno spojen, nego UI uređaj ima određeni elektronički sklop pomoću kojeg
komunicira sa sabirnicom. Taj sklop ima 2 sučelja; jedno prema sabirnici, a drugo prema
samom uređaju. Na sljedećoj skici prikazan je detaljniji pogled na pristupni sklop:

podatkovni registar
SPREMNIK
registar stanja
adrese
podaci
upravljanje

PROCESOR SKLOP ZA PR RS
PREPOZNAVANJE
ADRESE

UPRAVLJAČKI
od naprave ili DIO PRISTUPA
prema napravi

18. Kako je omogućen višeprogramski rad na računalu s jednim procesorom?

Na način da dretve rade naizmjenično, u kratkim vremenskim razmacima. Što stvara


dojam višeprogramskog načina rada (multitasking ili multiprogramming).

19. Što je radno čekanje?

Radno čekanje je izvođenje procesa koji ne radi ništa osim provjeravanja stanja
zastavice za prekid. Dakle, sve dok je zastavica u stanju 0, procesor je u stanju radnog
čekanja.

20. Skicirati signale dvožičnog rukovanja.

UPISATI

ZASTAVICA

čitanje PR-a
21. Zašto se programsko brojilo tretira zasebno prilikom obrade prekida?

Mora se tretirati zasebno, budući da je u trenutku upisivanja adrese u PC, već gotovo.
Odnosno, procesor odmah skače na instrukciju čija se adresa nalazi u PC-u. Kada bi se,
primjerice, obnovom konteksta, obnovio i sadržaj programskog brojila, prije nego što se
procesor prebaci u korisnički način rada, došlo bi do kaosa. Programsko brojilo je, stoga,
na neki način jedini usmjerivač rada procesora prilikom obrade prekida, te ga se radi toga
mora posebno tretirati.

22. Napisati što procesor trajno radi ako omogućuje prekidni rad?

Vidjeti pod 12.b).

23. Koje strukture podataka koristi prekidna rutina?

Polje za zastavice, polje za tekući prioritet te polje za pohranu kontekstâ (množina od


kontekst ☺).

24. Što radi pristupni sklop DMA (Direct Memory Access)?


sve dok je (brojač BR > 0) {
zatražiti sabirnicu;
čekati na dodjelu sabirnice;
postaviti na adresni dio sabirnice sadržaj AR (adresnog registra);
prenijeti na tu adresu sadržaj podatkovnog registra PR;
// (ili obrnuto, sa adrese na koju pokazuje AR prenijeti sadržaj na PR)
AR = AR+1;
BR = BR-1;
}
postaviti signal „PREKID“;

25. Čemu služi i kako djeluje sklop za prihvat prekida?

Sklop za prihvat prekida sastavni je dio procesora, na kojeg direktno putem sabirnica
dolaze zahtjevi za prekidima. Tada sklop prema procesoru propušta samo onaj prekidni
signal koji ima veći prioritet od dretve koju procesor trenutno izvodi. PROFESOROVA
INTUITIVNA DEFINICIJA: Sklop za prihvat prekida nekad ga samo prihvaća, nekad ga
prekida, a nekad ga i pamti.

26. Što sve uzrokuje prekid generiran unutar procesora?

Pokušaj dijeljenja sa nulom, adresiranje nepostojeće lokacije u adresnom prostoru,


dekodiranje nepostojećeg operacijskog koda i sl.
27. Nabrojite registre sklopa za neposredni pristup spremniku i objasnite njihovu
funkciju!
1. Adresni registar AR – u njemu se nalazi adresa u spremniku na koju (ili s koje) će
se obaviti prijenos pojedinačnog znaka.
2. Brojilo – u njemu se nalazi broj znakova koje još treba prenijeti.
3. Registar statusa – sadrži zastavice koje simboliziraju trenutno stanje sklopa
4. Podatkovni registar – služi za pohranu podataka koji su spremljeni u spremniku.

28. U pseudokodu napisati programski odsječak za pristup neposrednom sklopu za


prihvat prekida.

29. Pojasniti pojmove višezadaćni i višekorisnički rad, te pomoću kojih mehanizama se


oni mogu izvesti?

Višezadaćni rad (multitasking ili multiprogramming) je funkcionalnost određenog


operacijskog sustava koja omogućuje računalu obavljanje više zadataka istodobno (ovo
„istodobno“ treba shvatiti uvjetno; ne događa se istodobno, nego u jako malim vremenskim
razmacima tako da korisnik to niti ne primjećuje).

Višekorisnički rad (multiuser system) omogućuje većem broju korisnika obavljanje funkcija na
jednom operacijskom sustavu. Važno je napomenuti da svaki od njih može koristiti funkciju
višezadaćnosti.

Višezadaćnost i višekorisnički rad izvode se pomoću mehanizama višedretvenosti (odnosno,


izvode se uz pomoć dretvi i procesa).

30. Što je zajedničko procesu roditelju i procesu djetetu?

Apsolutno ništa (osim što su oba procesi ☺).


31. Koje računalne resurse dijele dretve istog procesa?

Sve dretve istog procesa koriste jednake računalne procese, odnosno, nema
restrikcija u pogledu dostupnosti resursa. Drugim riječima, dretve istog procesa dijele sve
računalne resurse.

32. Od čega se sastoji dretveni adresni prostor?

INSTRUKCIJE

PODACI DRETVENI ADRESNI


PROSTOR

STOG

33. Uvjet nezavisnosti dretve – izraz


i objašnjenje.

Kada ovaj uvjet vrijedi za dvije dretve, tada su ta dva zadatka nezavisna.
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
Zavod za elektroniku, mikroelektroniku,
računalne i inteligentne sustave

Interni materijal za predavanja iz predmeta

Operacijski sustavi

Autor: Leonardo Jelenković

Zagreb, 2013.
1. Uvod

[dodatno]

Računalni sustav
• korisnik
• programi
• operacijski sustav
• sklopovlje
Gornji elementi se mogu promatrati i kao slojevi, prema slici 1.3.

Slika 1.1. Računalni sustav, komponente (podsustavi) OS-a

Med̄u slojevima nalazi se sučelje


• definira način korištenja/komunikacije med̄u slojevima
2 1. Uvod

[dodatno]

I sam OS je složen sustav; zato se dijeli (princip „podijeli i vladaj“) na podsustave.

OS se može podijeliti i na slojeve (opc., arhitektura OS-a):


• sustavske funkcije i sučelje prema programima (API)
• jezgra operacijskog sustava (s većinom podsustava)
• apstrakcija sklopovlja (HAL – hardware abstracion layer)

Primjeri arhitektura OS-a (slike s Interneta (uglavnom)) (info)

Slika 1.2. Windows arhitektura


1. Uvod 3
4 1. Uvod

Slika 1.3. Pojednostavljena arhitekura


1.1. Kratka povijest operacijskih sustava (informativno) 5

Definicija: OS je skup osnovnih programa koji:


• omogućuju izvod̄enje radnih zahvata na računalu
• omogućuju izvod̄enje operacija računala

Svrha/uloga OS-a
• olakšavanje uporabe računala (skriva detalje)
• djelotvorno (učinkovito) korištenje svih dijelova računala (ima upravljačke programe)
• višeprogramski rad

1.1. Kratka povijest operacijskih sustava (informativno)

Godina Operacijski sustavi


∼1960 Multics, IBM System/360 Operating System, CP/CMS
1969. UNIX (Unics) (AT&T) (Ritchie, Kernighan + ostali)
(UNiplexed Information and Computing Service)
1973. UNIX prepisan u C, dalje se intenzivnije razvija i grana
1980-te Mac OS
MS-DOS
OS/2
1990-te MS-Win 3.11 (Windows for workgroups)
Windows 95, Windows NT, Windows 98
Linux (1991. verzija 0.01);
kasnije i Linux distribucije: Slackware, Redhat, Debian, Ubuntu. . .
FreeBSD
2000-te Windows (2000, ME, XP, 2003, Vista, 2008)
Linux (jezgra) 2.4 – 2001, 2.6 – 2003, 3.0 – 2011
Mac OS X
Android, iOS, Windows Phone
2010-te (verzije provjerene 17. 9. 2013.)
Windows 7 – 2009, Windows 8 – 2012, (8.1 – 10/2013)
Linux (jezgra) 3.0 – 2011 (z.v. 3.10.xx – 09/2013)
OS X (Mac) (z.v. 10.9 – 2013)
Android (z.v. 4.3 – 7/2013, 4.4 uskoro)
iOS (z.v. 6.1 – 03/2013, 7.0 – 09/2013)
Windows Phone (z.v. 8 – 10/2012)
6 1. Uvod

Pitanja za vježbu 1

1. Što je to "računalni sustav"? Od čega se sastoji?


2. Što je to "operacijski sustav"? Koja je njegova uloga u računalnom sustavu?
3. Što je to "sučelje"? Koja sučelja susrećemo u računalnom sustavu?
4. Navesti osnovne elemente (podsustave) operacijskog sustava.
2. Model jednostavnog računala

Dijelovi računala
• funkcijski model: ulazni dio, izlazni dio, radni spremnik, AL jedinka, upravljačka jedinka
• sabirnički model: procesor, sabirnica, spremnik, UI pristupni sklopovi

[dodatno]

Von Neumannov model računala – instrukcije i podaci u istom spremniku (dohvaćaju se preko
zajedničke sabirnice
Druga arhitektura = Harvardska arhitektura – instrukcije odvojene od podataka i dohvaćaju se za-
sebnom sabirnicom, dok se podaci dohvaćaju svojom. L1 priručni spremnik procesora je uglavnom
izveden Harvardskom arhitekurom (podijeljen na dio za instrukcije i dio za podatke).

2.1. Sabirnički model računala

Slika 2.1. Sabirnički model računala (slika 2.2. iz knjige)

Sabirnički ciklus
• prijenos jednog podatka od procesora do spremnika (ili pristupnog sklopa) ili obratno (do pro-
cesora)

[dodatno]

Procesor upravlja radom sabirnice (u ovakvom modelu)


1. postavlja adresu
2. postavlja podatak (kada se on zapisuje u spremnik ili UI)
3. postavlja upravljačke signale
8 2. Model jednostavnog računala

Primjer 2.1. Trajanje sabirničkog ciklusa

Neka je TB = 10 ns trajanje jednog sabirničkog ciklusa, tada:


• frekvencija rada sabirnice jest T1B = 100 M Hz
• ako je širina sabirnice 32 bita tada je propusnost sabirnice: 32 · 100 M Hz = 3200M bita/s
(M je u ovom slučaju (za brzine) 106 a ne 220 )

[dodatno]

Zbog različitih brzina komponenata računalnog sustava, stvarne arhitekture imaju više sabirnica
kojima su one povezane.
2.2. Kratki opis komponenata računala 9

2.2. Kratki opis komponenata računala


Razmotrimo prvo samo najosnovnije komponente: procesor, spremniki i sabirnicu. Ostale ćemo
kasnije...
Sabirnica
• adresni dio
• podatkovni dio
• upravljački dio (npr. piši ili čitaj, BREQ, BACK, prekidi, . . . )

Spremnik
• spaja se na sabirnicu s svojim med̄uregistrima i poslužuje zahtjeve za čitanje i pisanje

Procesor
• aritmetičko-logička (AL) jedinka
• registri opće namjene (npr. R0-R7)
• programsko brojilo PC
• kazaljka stoga SP
• registar stanja SR
• upravljačka jedinka
– instrukcijski registar
– upravljački signali
• adresni med̄uregistar
• podatkovni med̄uregistar

[dodatno]

koso označeni elementi nisu izravno dostupni programeru


označiti ostale elemente sa strane sa “programerski model”

Procesor se može promatrati kao automat:

ponavljaj {
dohvati instrukciju na koju pokazuje PC;
povećaj PC tako da pokazuje na iduću instrukciju;
dekodiraj instrukciju;
obavi operaciju zadanu instrukcijskim kodom
( ovisi o instrukciji, npr. za AL instrukciju može biti:
dohvati operande, obavi AL, spremi rezultat )
}
dok je procesor uključen;

Instrukcije se mogu podijeliti na instrukcije za:


• premještanje sadržaja
• obavljanje AL operacija
• programske skokove i grananja
• posebna upravljačka djelovanja (npr. zabrana prekida)

Instrukcija se sastoji od:


• operacijskog koda (“koja operacija”) i
• adresnog dijela (operandi, adrese)
10 2. Model jednostavnog računala

Posebno zanimljive instrukcije


• ostvarenje instrukcija skoka: adresa skoka => PC
• poziv potprograma: PC => stog; adresa potprograma => PC
• povratak iz potprograma: stog => PC

[dodatno]

ARM procesori koriste poseban registar (LR=R14) za pohranu povratne adrese; med̄utim, radi
ugnježd̄avanja programski je potrebno na početku funkcije pohraniti taj registar na stog (čime se
postiže sličan učinak kao i gornji prikaz poziva i povratka iz potrpograma koji je uobičajen za većinu
arhitektura)
U nastavku se koristi asembler sličan ARM-ovom, uz neke razlike (primjerice poziv i povratak iz
potprograma nije kao kod ARMa već uobičajeni).

2.3. Instrukcijska dretva


Primjer 2.2. Primjer izvod̄enja programa s grananjem i pozivima potpro-
grama

; Računanje faktorijela
; zadano: N, pretpostavlja se N > 0 !
; rezultat spremiti u: REZ

LDR R1, N ; učitaj N u R0


LDR R0, N ; R0 akumulira rezultat (umnožak)

PETLJA:
SUB R1, 1 ; R1 = R1 - 1
CMP R1, 1 ; usporedi R1 i 1
BEQ KRAJ ; ako je R1 == 1 skoči na KRAJ

PUSH R1 ; stavi R1 na stog - parametar funkcije


CALL MNOZI
ADD SP, 4 ; makni R1 s vrha stoga

B PETLJA ; skoči na PETLJA

KRAJ:
STR R0, REZ ; spremi R0 u REZ
...

MNOZI:
LDR R2, [SP+4] ; dohvati parametar
MUL R0, R2; R0 = R0 * R2;
RET
2.3. Instrukcijska dretva 11

(dodati na sliku CALL, RET i BNE)


Korištenje stoga na prikazani način omogućava gniježd̄enje poziva i rekurziju
12 2. Model jednostavnog računala

Program
• niz instrukcija (i podataka) koji opisuju kako nešto napraviti
• program = slijed instrukcija u spremniku (“prostorno povezanih”)
• nalazi se u datoteci, na disku, ili u spremniku
Proces
• nastaje pokretanjem programa
• traži i zauzima sredstva sustava (spremnik, procesorsko vrijeme, naprave)

[dodatno]

Izvod̄enjem programa (u procesu) instrukcije se ne izvode isključivo slijedno – zbog skokova i


poziva potprograma
Slijed instrukcija kako ih procesor izvodi („vezane“ vremenom izvod̄enja) nazivamo instrukcijska
dretva ili samo kraće dretva (thread).

Dretva
• dretva = slijed instrukcija u izvod̄enju (“povezanih vremenom izvod̄enja”)
Dretva za svoje izvod̄enje treba:
• instrukcije, podatke, stog => sve u spremniku
• registre procesora => u procesoru = kontekst dretve
2.3. Instrukcijska dretva 13

Kako ostvariti višedretveni rad?


1. kada imamo dovoljno procesora – svaka dretva na svom procesoru
2. kada nemamo dovoljno procesora – naizmjenični rad

Slika 2.2. Višedretvenost na višeprocesorskom sustavu (slika 2.13.)

Slika 2.3. Višedretvenost na jednoprocesorskom sustavu (slika 2.14.)


14 2. Model jednostavnog računala

[dodatno]

Višedretvenost se (na jednoprocesorskom sustavu) ostvaruje tako da se u nekom odabranom tre-


nutku jedna dretva “zamijeni” drugom.
Postupak zamjene jedne dretve drugom:
• prekida se izvod̄enje aktivne dretve
• sprema se kontekst aktivne dretve (u za to predvid̄eno mjestu u spremniku = opisnik dr.)
• odabire se nova aktivna dretva
• obnavlja se kontekst novoodabrane dretve te
• ona nastavlja s radom

Primjer 2.3. Zamjena dretve (informativno)

Kod prve dretve


.
.
CALL Rasporedi
.
.

Funkcija sustava – Rasporedi


Rasporedi:
SPREMI_SVE_REGISTRE_OSIM_PC kontekst_aktivne
CALL Odaberi_novu_aktivnu_dretvu //složeno možda!
OBNOVI_SVE_REGISTRE_OSIM_PC kontekst_aktivne //promjena stoga!
RET

Programsko brojilo se ne pohranjuje! Nije potrebno.


Varijabla kontekst_aktivne mora pokazivati na spremnički prostor na kojem se nalazi sprem-
ljen kontekst dretve koju želimo aktivirati (te prije njenog micanja s procesora tamo spremamo
njen kontekst)
Operacija (funkcija) ODABERI_NOVU_AKTIVNU_DRETVU mijenja tu varijablu tako da pokazuje na
novu aktivnu dretvu

U nastavku (idućim poglavljima) koristimo prikazani model jednostavnog računala, nadograd̄ujemo


ga potrebnim sklopovljem i slično.
2.3. Instrukcijska dretva 15

Pitanja za vježbu 2

1. Skicirati procesor – njegove osnovne dijelove, registre.


2. Što procesor trajno radi?
3. Kako se ostvaruju instrukcije "za skok", "za poziv potprograma", "za povratak iz potpro-
grama"?
4. Što predstavljaju pojmovi: program, niz instrukcija, dretva?
3. Obavljanje ulazno-izlaznih operacija, prekidni rad

3.1. Spajanje naprava u računalo


Naprave koje se spajaju u računalo imaju različita svojstva
• način rada
• brzina

[dodatno]

Primjer naprava: zaslon (monitor), tipkovnica, miš, zvučnici, disk, mreža, grafička kartica, . . .
Sve osim procesora i spremnika (i sabirnice) su naprave (u našim razmatranjima rada sustava i
upravljanja).
Zato se naprave ne spajaju izravno na (glavnu) sabirnicu, već se spajaju preko med̄usklopa –
pristupnog sklopa

Slika 3.1. Spajanje UI naprava na sabirnicu (3.1.)

Naprave se mogu koristiti na nekoliko načina:


1. radnim čekanjem
2. prekidima
3. izravnim pristupom spremniku
18 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

3.2. Korištenje UI naprava radnim čekanjem


Procesor “aktivno” (u programskoj petlji) čeka da naprava postane spremna za komunikaciju

Slika 3.2. Pristupni sklop UI naprave (3.2.)

PR – podatkovni registar, služi za prijenos podataka


RS – registar stanja, sadrži ZASTAVICA-u koja pokazuje je li pristupni sklop spreman za komuni-
kaciju s procesorom (ZASTAVICA==1) ili nije (ZASTAVICA==0)
Procesor u petlji čita RS dok ZASTAVICA ne postane jednaka 1
Brisanje ZASTAVICE po komunikaciji s procesorom može biti ostvareno u pristupnom sklopu (npr.
čitanje/pisanje po PR se može detektirati te obrisati zastavicu) ili to može procesor napraviti upisom
vrijednosti u RS.

Slika 3.3. Primjer sinkronizacije izmed̄u naprave, pristupnog sklopa i procesora (3.4.)
3.2. Korištenje UI naprava radnim čekanjem 19

Primjer 3.1. Primjer čitanja jednog podatka s naprave

...
ADR R0, RS //adresa registra stanja u R0
ADR R2, PR //adresa podatkovnog registra u R2
petlja: \
LDR R1, [R0] ;pročitaj registar stanja s ZASTAVICA-om | radno
CMP R1, 0 | čekanje
BEQ petlja /
LDR R1, [R2] // pročitaj znak iz pristupnog sklopa u registar R1
...//obrada pročitanog podatka, npr. samo spremanje u spremnik

Svojstva radnog čekanja kao načina upravljanja UI:


1. prednost: sklopovlje je vrlo jednostavno
2. osnovni nedostatak: procesor ne radi produktivno, nema koristi od tisuća iteracije petlje
a) drukčijim programom to se može ponekad ublažiti, npr. pojedini sklop provjerava se peri-
odički, provjerava se više sklopova, . . . (nije uvijek primjenjivo)
20 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

3.3. Prekidni rad


Ideja: naprava sama, kada postane spremna traži obradu slanjem signala – prekidnog signala
(električnog signala preko vodiča) procesoru.

3.3.1. Prekidni rad bez sklopa za prihvat prekida


Svi zahtjevi za prekide dolaze izravno procesoru preko zajedničkog vodiča

Slika 3.4. Skica najjednostavnijeg sustava za prekidni rad (3.5.)

[dodatno]

Prekidni signal dovodi se preko zajedničkog vodiča do procesora (npr. spojeni ILI)

Kako procesor reagira na prekidni signal?

Signal može doći u bilo kojem trenutku:


1. dok se izvodi neka dretva
2. dok se obrad̄uje prijašnji prekid

[dodatno]

Stoga, procesor može prihvatiti prekidni signal (za 1.) ili ga privremeno ignorirati (za 2.)

Prihvat signala mora popratiti nekoliko akcija:


• mora se omogućiti kasniji nastavak rada prekinute dretve
– mora se spremiti kontekst prekinute dretve
• mora se spriječiti daljnje prekidanje, dok se prekid ne obradi (ili drukčije ne definira)

Načini rada procesora


• Prekidni načina rada – jezgrin/sustavski način rada
– privilegirani način rada
– dozvoljene sve operacije (instrukcije)
– dostupni svi registri/podaci/resursi
• Korisnički način rada
– manje privilegirani, neke stvari nisu dostupne (instrukcije, registri, spremničke lokacije)
3.3. Prekidni rad 21

Postupak prihvata prekida


(što radi procesor kada nema sklop za prihvat prekida u slučaju zahtjeva za prekidom)
i) početno stanje: procesor izvodi neku instrukciju
ii) pojavljuje se prekidni signal
iii) procesor dovršava trenutnu instrukciju (regularno)
iv) na kraju instrukcije, ako su u procesoru prekidi omogućeni on provjerava je li prekidni signal
postavljen te ako je postavljen tada procesor prihvaća prekid u koracima ("postupak prihvata
prekida" u užem smislu):
1. zabranjuje daljnje prekidanje
2. prebacuje se u prekidni način rada (jezgrin, sustavski)
• adresira sustavski dio spremnika, aktivira sustavku kazaljku stoga i koristi taj stog
3. na stog (sustavski) pohranjuje programsko brojilo (PC) i registar stanja (SR) (tzv. minimalni
kontekst)
4. u PC stavlja adresu “prekidnog potprograma”
• gdje je ta adresa zapisana? ugrad̄ena u procesoru, ili preko tablice, npr. IDT (IDTR!)
Točka iv) je ugrad̄eno ponašanje procesora. Opis rada procesora (dohvati/dekodiraj/izvedi treba
proširiti tim dijelom na kraju instrukcije.
Prekdini potprogram, koji se počinje izvoditi nakon točke iv), može izgledati:

Prekidni potprogram
{
pohrani kontekst na sustavski stog (osim PC koji je već tamo);
ispitnim lancem odredi uzrok prekida (ispitujući RS pristupnih sklopova) => I;
signaliziraj napravi da je njen prekid prihvaćen (te da spusti prekidni signal);

obradi prekid naprave I; //poziv funkcije upravljačkog programa

obnovi kontekst sa sustavskog stoga (osim PC i SR);


vrati_se_u_prekinutu_dretvu; //jedna instrukcija
}

instrukcija: vrati_se_u_prekinutu_dretvu
{
obnovi PC i SR sa sustavskog stoga;
prebaci (vrati) se u način rada prekinute dretve (definiran u SR);
dozvoli prekidanje;
}

[dodatno]

Obnavljanje registra stanja vraća dretvu u prethodni način rada (korisnički, ako se vraćamo u dretvu
ili sustavski ako se vraćamo u obradu nekog prekinutog prekida).

Kako uobičajeno izgleda obrada prekida naprave (“prava obrada”)?

obrada_prekida_naprave_I
{
dohvati PR_I;
obradi podatak; // "svašta" ili samo pohrana negdje u spremnik

//ili ako se radi o izlaznoj napravi samo: pohrani nešto u PR_I


}
22 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

Zadatak: Primjer obrade niza zahtjeva za prekid (info)


U nekom sustavu javljaju se prekidi: P1 u 1. ms, P2 u 4. ms te P3 u 15. ms. Obrada svakog
prekida traje 5 ms. Postupak prihvata prekida (PPP, od reakcije procesora na prekid do poziva
funkcije za obradu prekida) neka traje 1 ms. Isto toliko neka traje i povratak iz prekida (PIP, nakon
dovršetka obrade – obnova konteksta i povratak u dretvu).
a) Grafički prikazati rad procesora u glavnom programu (GP), obradama P1, P2 i P3 te kućanskim
poslovima PPP i PIP.
b) Koliko se ukupno vremena potroši na kućanske poslove?
c) Koliko se odgad̄a obrada GP zbog ta tri prekida?

a)

b) 3 prekida puta (PPP + PIP) = 3 * 2 = 6 ms

c) GP prekinut u 1. ms, nastavlja u 22. => 21 ms je odgod̄en

Svojstva navedenog načina upravljanja:


• radi, jednostavno, nije potrebno složeno sklopovlje
• problem: za vrijeme jedne obrade svi ostali zahtjevi MORAJU pričekati kraj obrade prethodnog
prekida!!!
– u nekim sustavi to može biti veliki nedostatak jer nisu svi prekidi istog značaja, neki su bitniji
– prioritetniji od drugih
– ako želimo obradu prema prioritetima prekida tada to možemo riješiti:
∗ programski (popraviti gornje programe) ili
∗ sklopovski
3.3. Prekidni rad 23

3.3.2. Obrada prekida prema prioritetima, bez sklopa za prihvat prekida


Ideja programskog rješenja:
• sama obrada prekida („čista obrada“) neka se obavlja s dozvoljenim prekidanjem
• na svaki zahtjev za prekid pozvat proceduru koja će ustanoviti prioritet zahtjeva i usporediti ga
s trenutnim poslom:
– ako je zahtjev prioritetniji ide se odmah na njega,
– u protivnom, samo se zabilježi taj zahtjev a vraća se na obradu prethodnog (prioritetnijeg
prekida)
• prekidima (napravama) treba dodijeliti prioritete
– u nastavku je (radi jednostavnosti) prioritet odred̄en brojem naprave, veći broj => veći prioritet

Podatkovna struktura:
• TEKUĆI_PRIORITET – prioritet tekućeg posla, 0 za dretvu, I za obradu prekida naprave rednog
broja (prioriteta) I
• OZNAKA_ČEKANJA[N] – polje od N elemenata (N je najveći prioritet)
– označava da li dotična naprava čeka na početak obrade (zbog prioritetnijih pr.)
• KON[N] – rezervirano mjesto u spremniku za pohranu konteksta dretve pri obradi pojedinog
prekida; uz kontekst sprema se i tekući prioritet

1 prekidni potprogram //prihvat prekida


2 {
3 spremi kontekst na sustavski stog (osim PC i SR);
4 ispitnim lancem utvrdi uzrok prekida, tj. indeks I;
5 OZNAKA_ČEKANJA[I] = 1;
6 signaliziraj napravi da je njen prekid registriran (te da spusti prekidni signal);
7
8 do {
9 naj = 0;
10 for (i = N, i > TEKUĆI_PRIORITET; i--) { //od najvećeg prioriteta prema niže
11 if ( OZNAKA_ČEKANJA[i] != 0 ) {
12 naj = i;
13 break;
14 }
15 }
16 if ( naj > 0 ) { //u obradu prekida prioriteta "naj" ?
17 OZNAKA_ČEKANJA[naj] = 0;
18 pohrani TEKUĆI_PRIORITET i kontekst sa sustavskog stoga u KON[naj];
19 TEKUĆI_PRIORITET = naj;
20
21 omogući prekidanje;
22 obrada prekida naprave (naj);
23 zabrani prekidanje;
24
25 sa KON[naj] obnovi TEKUĆI_PRIORITET, a kontekst stavi na sustavski stog;
26 }
27 }
28 while ( naj > 0 );
29
30 obnovi kontekst sa sustavskog stoga (osim PC i SR);
31 vrati_se_u_prekinutu_dretvu;
32 }

Svojstva navedenog načina prihvata i obrade prekida:


• prekidi se obrad̄uju u skladu s prioritetima!!!
24 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

• nije potrebno posebno sklopovlje za to


• “mali nedostatak” – svaki prekid uzrokuje “kućanske poslove” tj. poziv prekidnog potprograma,
čak i prekidi manjeg prioriteta!!!
– kako riješiti taj nedostatak? korištenjem dodatnog sklopovlja!

3.3.3. Obrada prekida korištenjem sklopa za prihvat prekida


Sustav sa sklopom za prihvat prekida (to više nije sustav s “minimalnim sklopovljem” kao prije)

Slika 3.5. Sklop za prihvat prekida (3.9. i 3.10.)

KZ = kopije zastavica, naprave koje čekaju na obradu postavljaju te zastavice (i brišu)


TP = tekući prioritet, bit na mjestu I je postavljen ako je tekući prioritet I
Sklop generira PREKID ako je KZ>TP (zadnji bit, tj. msb(KZ) > msb(TP) )
Kada procesor prihvaća prekid, to signalizira sa PRIHVAT
PREKID i PRIHVAT => dvožično rukovanje (engl. two wire handshaking)

prekidni potprogram {
pohrani kontekst na sustavski stog (osim PC i SR);
odredi uzrok prekida (dohvati KZ) => i;
signaliziraj napravi da je njen prekid prihvaćen (te da spusti prekidni signal);
pohrani TP na sustavski stog; //može i bez, uz *
TP[i] = 1;

dozvoli prekidanje;
obradi prekid (i);
zabrani prekidanje;

obnovi TP sa sustavskog stoga; //*umjesto toga TP[i] = 0


vrati_se_u_prekinutu_dretvu;
}

Sa sklopom za prihvat prekida izbjegavaju se nepotrebna prekidanja => propuštaju se samo priori-
tetniji zahtjevi!
3.3. Prekidni rad 25

Zadatak: 3.1. (ispitni zadatak)


U nekom sustavu javljaju se prekidi P1 u 3. ms, P2 u 1. ms te P3 u 4. ms. Prioritet prekida odred̄en
je brojem (P3 ima najveći prioritet). Obrada svakog prekida traje po 3 ms. Grafički prikazati aktiv-
nosti procesora u glavnom programu (GP), procedurama za obradu prekida (Pi) te procedurama
za prihvat prekida (PP) i povratak iz prekida (PiP) i to:
a) [u idealnom slučaju] (prekidi se obrad̄uju prema prioritetu, trajanje kućanskih poslova se za-
nemaruje)
b) [bez sklopa za prihvat prekida, obrada uz zabranjeno prekidanje] u sustavu koji nema
sklop za prihvat prekida u kojem se po prihvatu nekog prekida on obrad̄uje do kraja (nema ni
programske ni sklopovske potpore za obradu prekida prema prioritetima), uz vremena prihvata
prekida (PP) od 1 ms (uključuje potragu za izvorom prekida – zahtjevi većeg prioriteta se prvi
prihvaćaju) te vremenu povratka iz prekida (PiP) od 0,5 ms (obnova konteksta prekinute dretve)
c) [bez sklopa ali s programskom potporom] u sustavu koji nema sklop za prihvat prekida, ali
se programski odred̄uje prioritet prekida (obrada prekida se odvija s dozvoljenim prekidanjem),
uz vrijeme procedure za prihvat prekida i odred̄ivanje prioriteta prekida od 1,5 ms (PP), te 1 ms
za povratak iz prekida (PiP) (na dovršetku obrade prekida ponovno treba pogledati ima li još
nešto za obraditi)
d) [sa sklopom za prihvat prekida] u sustavu sa sklopom za prihvat prekida uz vrijeme prihvata
prekida (pohrana konteksta prekinute dretve) od 0,5 ms (PP) te vrijeme povratka iz prekida
(obnove konteksta) od 0,5 ms (PiP)
Dodatna “nepisana” pravila za rješavanje:
• ako u istom trenutku neka obrada završava i pojavljuje se novi prekid pretpostavljamo da je
ipak najprije završila obrada, a potom se dogodio prekid
• ako se u istom trenutku pojavi više prekida: za svaki prekid poziva se zasebni POPP, s time
da svaki put prvo za zahtjev najvećeg prioriteta (koriste se ispitni lanci)
Rješenje (par stranica)
26 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

a) [u idealnom slučaju]
U idealnom slučaju zanemarujemo trajanje kućanskih poslova, a prekidi se obrad̄uju prema
prioritetu (nakon što se pojavi zahtjev za odgovarajućim prekidom).
3.3. Prekidni rad 27

b) [bez sklopa za prihvat prekida, obrada uz zabranjeno prekidanje]

PP = Pohrana konteksta + prozivanje = 1ms; PiP = Obnova konteksta = 0,5 ms


Zanimljivi trenuci na grafu:
3. i 4. ms: javlja se P1 ali se ne prihvaća (prekidi su tada zabranjeni i ostaju tako do završetka
P2)
5. ms: završava P2 te se obnavlja kontekst prekinute dretve = glavne dretve. Zadnjom ins-
trukcijom (“povratak u prekinutu dretvu”, ili tako nekako) dozvoljava se prekidanje te se tada
propušta i prihvaća P3. Iako je prije došao zahtjev od P1 obzirom da imamo zajednički prekidni
signal (koji ide od svih naprava do procesora) procesor “proziva” i pritom vidi prvo prioritetniji
zahtjev = P3.
Najjednostavniji sustav, primjenjuje se u ugrad̄enim sustavima (ali tamo se obrade prekida pro-
jektiraju tako da kratko traju pa odgode prioritetnijih prekida bi trebale biti jako male).
28 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

c) [bez sklopa ali s programskom potporom]

PP = Pohrana konteksta na stog + prozivanje + premještanje konteksta u KON[i] = 1,5 ms


PiP = Obnova konteksta na stog + pregled što dalje + (obnova ili premještanje konteksta) = 1
ms
Zanimljivi trenuci:
3. ms: P1 izaziva prekid, poziva se PP (uz zabranu prihvata daljnjih prekida). U PP se zaklju-
čuje da P1 nema veći prioritet od P2 (trenutnog posla) te da se tamo treba vratiti. Po okončanju
tih kućanskih poslova (obnova obrade P2) dozvoljava se opet prekidanje te se zahtjev za pre-
kid od P3 prihvaća (koji čeka od 4. ms). Stoga još 1,5 ms na kućanske poslove prije početka
obrade P3 (najprioritetnijeg zahtjeva).
Prioritetniji prekid (P3) prekida obradu prekida manjeg prioriteta. Prioritetniji prekidi prije dolaze
na red, ali to “plaćamo” više (kućanski poslovi duže traju i ponekad se prekidaju značajnije
obrade od novih zahtjeva). U ovom zadatku to nije ispalo puno prije nego u a) ali općenito je
ovaj pristup daleko bolji.
3.3. Prekidni rad 29

d) [sa sklopom za prihvat prekida]

Prihvat prekida (PP) i povratak iz prekida (PP) jednako traju jer se te operacije svode na po-
hranu konteksta prekinute dretve (ili obrade manjeg prioriteta) te obnovu konteksta (na kraju
obrade prekida)
Zanimljivi trenuci:
3 ms: P1 ne prekida obradu P2
4 ms: P3 prekida obradu P2 jer je prioritetniji
7,5 ms: P3 završava obnavlja se kontekst od P2 koji još nije gotov

Naglasiti: manje kućanskih poslova jer nam sklop pomaže. Zato i PP traje kraće nego u b)
slučaju, tj. sustav je efikasniji od b) i stoga što ne propušta manje prioritetnije zahtjeve do
procesora dok on radi prioritetnije obrade.

Općenito:
U ovom zadatku se koriste mnogo veća vremena za kućanske poslove pri prihvatu prekida nego
li je to u stvarnim sustavima u odnosu na trajanja obrada kako bi trajanje obrade prekida mogli
lakše prikazati na slikama.
30 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

3.4. Prekidi generirani unutar procesora, poziv sustavskog pot-


programa
a) Pri radu, procesor izaziva neke greške:
• dijeljenje s nulom
• nepostojeća adresa (operanda, instrukcije)
• nepostojeći operacijski kod
• instrukcija se ne može izvesti s trenutnim ovlastima
• ...
Takvu dretvu treba prekinuti (zaustaviti)
• procesor sam izaziva prekid; u obradi prekida dretva se prekida i miče iz sustava

b) Kako dretva obavlja operacije koje zahtijevaju više privilegije?


• ona namjerno izaziva prekid – programski prekid te se poziva jezgrina funkcija
• jezgrine funkcija = unaprijed pripremljena, dio sustava, dretva ju ne može promijeniti da izvodi
njen kod
• mehanizam zaštite je ugrad̄en preko programskog prekida
• ako dretva nešto želi ona to traži od jezgre (o tome kasnije)

3.5. Korištenje UI naprava sa sklopovima za neposredni pristup


spremniku

Slika 3.6. Sklop s izravnim pristupom spremniku (3.13.)

• PR – podatkovni registar
• RS – registar stanja
• AR – adresni registar – od kuda/kamo se učitavaju/pohranjuju podaci
• BR – brojilo podataka – koliko podataka još za prenijeti
• UI pristupni sklop sam prenosi podatak iz PR u spremnik ili obratno
• Za korištenje sabirnice traži dozvolu procesora
• Po zahtjevu procesor prepušta idući sabirnički ciklus zahtjevu (pretpostavka)

Pristupni sklop po inicijalizaciji (nakon učitavanja AR i BR od strane procesora) radi:


3.5. Korištenje UI naprava sa sklopovima za neposredni pristup spremniku 31

dok je ( BR > 0 ) {
čekaj na podatak VJ; //ili na spremnost VJ za prihvat novog podatka
zatraži sabirnicu i čekaj na dodjelu sabirnice; //dvožično rukovanje!
{AR, PR} na sabirnicu (+čitaj/piši signal);
AR++;
BR--;
}
postavi signal PREKID;

[dodatno]

Po jednom prijenosu procesor “izgubi” samo jedan sabirnički ciklus


Ovakav sklop je pogodan kada treba prenijeti veću količinu podataka, inače samo “programiranje”
postaje utjecajno (nije samo jedan sab. ciklus)
Kada se prenesu svi podaci sklop izaziva prekid te ga procesor (eventualno) opet inicijalizira.

Primjer 3.2. Usporedba načina korištenja UI jedinice

a) neka procesor ima 10 MIPS-a te neka u sekundi prosječno treba prenijeti 1000 znakova
• radno čekanje => 100% procesorskog vremena, 10 korisnih instrukcija po prijenosu
– 1000 (zn. u 1 s) * 10 (instr.) / 10 000 000 (instr./s) = 0,01% korisnog rada
– (ili 10 / 10 000 = 0,01% korisnog rada)
• prekidi: ∼200 instr. po prekidu => 1000 * 200 / 10 000 000 = 2% => 98% ostane!
– (ili 200 / 10 000 = 2%, 98% ostaje)
• DMA: 1000 / 10 000 000 = 0,01 % => 99,99 % ostane! (ne računajući obradu prekida!)
– (ili 1 / 10 000 = 0.01%, 99.99% ostaje)
b) isti procesor, maksimalna brzina prijenosa (jako brza UI)
• radno čekanje: 10 000 000 / 10 = 1000 000 znakova/s uz 100% opt. procesora
• prekidi: 10 000 000 / 200 = 50 000 znakova/s uz 100% opt. procesora
• DMA: 10 000 000 / 2 = 5000 000 znakova/s uz 50% opt. procesora (svaki 2.s.c.)
32 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

3.6. Višeprocesorski sustavi – sabirnički povezani


Ideja – proširiti DMA pristup, svaki DMA sklop procesor, a “stari” procesor arbiter prema sabirnici

Slika 3.7. Višeprocesorski sustav (3.15.)

T – traženje sabirnice (BREQ – Bus Request) D – dodjela sabirnice (BACK – Bus Acknowledge)

• sabirnicu dijele svi procesori


• lokalni (priručni) spremnik se koristi da smanji potrebu za sabirnicom
• ovo je programski model višeprocesorskog sustava (i prije i sada i vjerojatno u bližoj budućnosti)

Pojmovi:
• simetrični više procesorski sustavi – SMP
• homogeni — II —
• NUMA – Non-Uniform Memory Access
3.7. Prekidi u “stvarnim sustavima”? (informativno) 33

3.7. Prekidi u “stvarnim sustavima”? (informativno)


Primjer Intelove arhitektura (pojednostavljeno)
a) prihvat prekida od strane procesora
• obrada prekida se programira preko zasebne tablice – IDT (interrupt description table)
• u registar procesora IDRT se stavlja "adresa" te tablice
• kad se dogodi prekid, uz prekid dolazi i informacija o uzroku – broj prekida = I
• broj prekida se koristi kao indeks za IDT, uzima se I-ti redak i tamo piše koju funkciju treba
pozvati za obradu tog prekida

b) izvori prekida – “proslijed̄ivanje prekida do procesora” (novije APIC sučelje)


(APIC – advanced programmable interrupt controller)
• uz procesor nalazi se lokalni APIC sklop (Local APIC) koji:
– prima i prosljed̄uje “lokalne” prekide procesoru:
∗ lokalno spojeni ured̄aji, prekidi lokalnog brojila (sata), greške, . . .
– prima poruke o prekidima ured̄aja spojenih na I/O APIC
– prima/šalje poruke od/prema lokalnih APIC-a drugih procesora (u MP sustavima)
• u sustavu postoji I/O APIC sklop na koji su spojeni "vanjski" izvori prekida
– sa lokalnim APIC-ima komunicira preko sabirnice (šalje poruke o prekidima)
– može se programirati: koje prekide proslijed̄uje i kome

Upravljanje prekidima naprava – zabrana prihvata prekida:


• na razini procesora
• na razini lokalnog APIC-a
• na razini I/O APIC-a
• na razini naprave (nju se isto može programirati da ne generira zahtjeve za prekid)

Prihvat prekida sa strane operacijskih sustava


• podjela obrade u dva dijela:
– prvi, odmah po primitku prekida, kraći, uz zabranjeno prekidanje
– drugi, duži, naknadno
• Windows: ISR (Interrupt Service Routine) + IST (Interrupt Service Thread)
• Linux: Top half, Bottom half (zapravo malo složenije u novijim, ali se svodi na slično)
34 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

“Upravljački programi” (engl. device drivers)


• predstavljaju skup funkcija koje omogućuju korištenje pojedinog sklopovlja
• primjerice za neku jednostavnu UI napravu upravljački program bi minimalno trebao imati funk-
cije:
– inicijaliziraj
∗ početna inicijalizacija naprave (pisanje u upravljačke registre, čitanje registara stanja, ...)
– status
∗ dohvat stanja naprave (ima li novi podatak, može li se slati, ...)
– pošalji
∗ slanje podataka prema napravi
– pročitaj
∗ čitanje podataka od naprave
• OS pri inicijalizaciji upravljačkog programa za neku napravu treba registrirati prekid koji naprava
generira te u obradi tog prekida pozvati funkcije upravljačkog programa
– primjerice, OS treba imati funkciju registriraj_prekid ( id_prekida, funkcija )
– u registriranoj funkciji (funkcija) treba na osnovi dobivenih podataka (koje daje prekidni pod-
sustav) pogledati što se dogodilo s napravom koja je izazvala prekid te pozvati odgvarajuću
proceduru
3.7. Prekidi u “stvarnim sustavima”? (informativno) 35

Primjer 3.3. Primjer korištenja naprave kroz operacijski sustav i uprav-


ljačke programe (pojednostavljeno)
36 3. Obavljanje ulazno-izlaznih operacija, prekidni rad
3.7. Prekidi u “stvarnim sustavima”? (informativno) 37
38 3. Obavljanje ulazno-izlaznih operacija, prekidni rad
3.7. Prekidi u “stvarnim sustavima”? (informativno) 39

Isječak kôda 3.1. Primjer prekidnog podsustava i korištenja upravljačkog programa


/* prihvat prekida vanjskih naprava ("prekidni podsustav") */
Prekidni_potprogram () /* slično prethodno opisanim načinima prihvata */
{
pohrani_kontekst;
idp = ustanovi_uzrok_prekida ();
obrada[idp] ( idp );
povratak_iz_prekida;
}
/* obrada prekida naprava */
obrada_prekida_naprava ( identifikator_prekida idp )
{
za svaku napravu "upp" koja je registrirana za prekid "idp"
{
status = upp.status ();
ako je ( status == PRISTIGLI_NOVI_PODACI ) tada
{
upp.pročitaj ( UL_MS );
(pogledaj kome podaci trebaju ...)
}
inače ako je ( status == MEÐUSPREMNIK_PRAZAN ) tada
{
ako je ( IZ_MS neprazan )
upp.pošalji ( IZ_MS );
}
inače ako je ...
}
}
/* registracija prekida ("prekidni podsustav") */
registriraj_prekid ( identifikator_prekida idp, funkcija obrada_prekida )
{
obrada[idp] = obrada_prekida; /* "obrada" je polje gdje se zapišu funkcije */
}
/* dodavanje naprave s upravljačkim programom */
os_dodaj_napravu ( upravljački_program upp )
{
upp.inicijaliziraj ();
registriraj_prekid ( dohvati_id_prekida ( upp ), obrada_prekida_naprava );
}
40 3. Obavljanje ulazno-izlaznih operacija, prekidni rad

Pitanja za vježbu 3

1. Navesti načine upravljanja ulazno-izlaznim napravama u računalnom sustavu (programska


izvedba). Vrlo kratko opisati svaki od načina.
2. Što su to i čemu služe "prekidi"?
3. Zašto su potrebni različiti načini rada procesora (korisnički i sustavni/prekidni/nadgledni)?
4. Kako procesor prihvaća prekide (postupak prihvata)?
5. Što su to "upravljački programi" (engl. drivers)?
6. Koji se problemi javljaju pri/zbog obrade prekida? (zabrana prekidanja, prioriteti)
7. Koji su sve izvori prekida? (izvan procesora, prekidi izazvani u procesoru-koji?)
4. Med̄usobno isključivanje u višedretvenim susta-
vima

4.1. Osnovni pojmovi


4.1.1. Program, proces, dretva
Program je statični niz instrukcija, nešto što je pohranjeno na papiru, disketi, memoriji
Proces je:
• skup računalnih resursa koji omogućuju izvod̄enje programa ili
• okolina u kojoj se program izvodi ili
• "sve što je potrebno" za izvod̄enje programa.

[dodatno]

Nekada: proces je program u izvod̄enju. Danas ova definicija nije (uvijek) ispravna.

Dretva je niz instrukcija koji se izvodi. (Neispravno je reći da je dretva program koji se izvodi, jer se
program može sastojati od više dretvi.)
Proces se sastoji od barem jedne dretve

[dodatno]

Prije: proces se sastojao od samo jedne dretve (pa se pojam dretve nije koristio!)

Slika 4.1. Tradicionalni proces

LWP:
42 4. Med̄usobno isključivanje u višedretvenim sustavima

• laki (engl. lightweight) proces, virtualni procesor, ono što OS vidi kao dretvu
• u većini slučajeva LWP je isto što i dretva procesa

[dodatno]

Danas: proces se sastoji od barem jedne dretve

Slika 4.2. Moderan proces

Standardno OS vidi i upravlja svim dretvama.

[dodatno]

Med̄utim ima i iznimaka kada se nekim dretvama upravlja unutar procesa – OS ih ne vidi sve (npr.
fiber ).

Slika 4.3. Proces s vlastitim upravljanjem dretvi

Skup zauzetih sredstava je isti za sve dretve istog procesa.


• postoji zajednički spremnik
– cijeli adresni prostor je “zajednički spremnik” (programski gledano, najčešće se to osjeti u
korištenju globalnih varijabli koje su “globalne” za sve dretve)
• komunikacija med̄u dretvama je znatno brža (koriste se globalne varijable)
• komunikacija med̄u dretvama istog procesa može se odvijati i bez uplitanja OSa
4.1. Osnovni pojmovi 43

4.1.2. Višedretvenost (info)


Višedretveni rad – izvod̄enje više dretvi u paraleli (ne nužno i istovremeno)
Višezadaćni rad – više zadataka (različitih problema/programa) odjednom. Svaki zadatak izvodi
se u zasebnoj dretvi (ili i više njih ako je rastavljen na podzadatke)
Kod višeprocesorskih računala više dretvi se može paralelno izvoditi na različitim procesorima
Kod jednoprocesorskih računala (kao i kod višeprocesorskih kada imamo više dretvi od procesora)
višedretveni rad ostvaruje se naizmjeničnim radom dretvi na dostupnim procesorima

Slika 4.4. Usporedba raznih višedretvenih sustava

Današnji (moderni) operacijski sustavi su i višedretveni i višezadaćni i višekorisnički (pogeldati


procese na UNIX/Win32 sustavima).

4.1.3. Zašto koristiti višedretvenost? (informativno)


Nedostaci:
• višedretvenost je skupa za OS, podrška je jako složena!!! (kao što će se i vidjeti u nastavku)
• višedretveno programiranje je složeno i podložno greškama
• potrebni su mehanizmi sinkronizacije i komunikacije

Korist:
• višezadaćnosti – više poslova paralelno
• paralelno koristiti elemente računala
– iskoristiti višeprocesorske sustave – intenzivni računalni problemi (CPU) koji se daju rastaviti
na (bar djelomično) neovisne dijelove
– dok jedna dretva čeka dovršetak UI operacije (naprava “radi/izvodi” dretvu ), procesor izvodi
drugu dretvu
• asinkrono upravljanje dogad̄ajima, npr. Web poslužitelj na novi zahtjev stvara novu dretvu koja
će poslužiti zahtjev (ili bira postojeću) (obrada prekida: IST, bottom half)
• složeni (kompleksni sustavi) – principom “podijeli i vladaj” smanjujemo složenost odvajanjem
zasebnih aktivnosti u zasebne dretve (ali oprezno!)
44 4. Med̄usobno isključivanje u višedretvenim sustavima

4.2. Višedretveno ostvarenje zadatka – zadatak i podzadaci


Svaki se zadatak, barem i “umjetno” može podijeliti na podzadatke, ako to nije očito iz strukture
zadatka (dijelovi, paralelna obrada, . . . )
Zadatak se može podijeliti na (jedna od mogućih podijela):
• podzadatak za čitanje ulaznih podataka – ulazna dretva
• podzadatak za obradu – radna dretva
• podzadatak za obavljanje izlaznih operacija – izlazna dretva
Korištenjem navedene podjele, zadatak se može izvoditi principom cjevovodnog rada:
Princip cjevovodnog rada dretvi:

Slika 4.5. Princip cjevovodnog rada dretvi (4.1.)

Mnogi zadaci se mogu (smisleno) rastaviti na podzadatke (npr. Z : Z1 → Z2 → · · · → ZN ). Ipak, i


u takvim slučajevima potrebno je sinkronizirati zadatke:
• urediti slijed njihova izvod̄enja – tko prije a tko poslije
• osigurati pojedinačno korištenje zajedničkih sredstava
Svaki podzadatak se izvodi u svojoj dretvi. U nastavku se ponegdje umjesto podjele zadatka na
podzadatke koristi sustav zadataka (koji se ne dijele već “odgovaraju” podzadacima u prethodnoj
slici).
Problem nastaje kada jedna dretva treba čekati na drugu
• Kako to ostvariti?
• Kako koristiti iste podatke uz očuvanje konzistentnosti (da ne prepisuju podatke)?
• Potrebna je SINKRONIZACIJA
– najjednostavniji oblik sinkronizacije je med̄usobno isključivanje
4.3. Model višedretvenosti 45

4.3. Model višedretvenosti


Pretpostavke:
• sve su dretve unutar istog procesa – dijele njegov spremnički prostor
• svaka dretva ima skup instrukcija, skup podataka te vlastiti stog
• postoji zajednički spremnički prostor koji dretve koriste pri rješavanju zadatka

(a) Dretve u procesu (b) Domene i kodomene

Slika 4.6. Model višedretvenosti (4.2., 4.3., 4.4.)

Svaki zadatak ima svoju:


• domenu Xi (iz koje samo čita) te
• kodomenu Yi (koju mijenja)
tj. zadatak se može funkcijski opisati kao preslikavanje: Yi = f (Xi )
Kada se dva zadatka (dretve koje ih izvode) mogu izvoditi paralelno, a kada ne?
Dva su podzadatka nezavisna ako nemaju nikakvih zajedničkih spremničkih lokacija ili imaju pre-
sjeka samo u domenama.

Uvjet nezavisnosti podzadataka odnosno dretvi Di i Dj :

(Xi ∩ Yj ) ∪ (Xj ∩ Yi ) ∪ (Yi ∩ Yj ) = φ (4.1.)

Ako su podzadaci zavisni tada se mora utvrditi redoslijed izvod̄enja njihovih dretvi.
Ako su podzadaci nezavisni tada se njihove dretve mogu se izvoditi proizvoljnim redoslijedom, pa
i paralelno!
46 4. Med̄usobno isključivanje u višedretvenim sustavima

Primjer 4.1. Sustav zadataka zadan u obliku usmjerena grafa

Ako se zadatak može rastaviti na lanac podzadataka Z1 → Z2 → · · · → ZN , tada se razma-


tranjem njihovih domena i kodomena mogu ustanoviti zavisni i nezavisni zadaci te se sustav
može prikazati usmjerenim grafom koji to uzima u obzir.
Npr. neki sustav podzadataka se možda može prikazati kao:

Na prikazanom primjeru, zadatak 1 mora se obaviti prije zadataka: 3, 4, 8 (i 7 tranzitivno)


Za svaki zadatak može se napraviti usporedba ovisnosti sa svim ostalima
Zadaci na istim putovima su zavisni – mora se poštivati redoslijed izvod̄enja,
Zadaci na različitim putovima su nezavisni – mogu se izvoditi paralelno

[dodatno]

Često kada dretve koriste zajednička sredstva nije potrebno utvrd̄ivati redoslijed njihova izvod̄enja,
već samo osigurati da takva korištenja budu pojedinačna – da se promjene ne obavljaju paralelno.
Više o tome kasnije (u odjeljku o med̄usobnom isključivanju).
4.3. Model višedretvenosti 47

Zadatak: 4.1. (ispitni zadatak)


Sustav zadataka je zadan u obliku lanca: Z1 → Z2 → Z3 → Z4 → Z5 → Z6 → Z7
Zadaci imaju domene (D) i kodomene (K) prema tablici:

Z1 Z1 Z1 Z1 Z1 Z1 Z1
M1 D D D K
M2 K K D D
M3 K D K K
M4 K D
M5

Tablica 4.1. Domene i kodomene za zadatke

[dodatno]

Da li može biti prazan redak (kao M5) – može! Da li može biti prazan stupac – može!
Da li može biti u istom stupcu više D i/ili više K – može!!
Da li može biti u nekom stupcu samo K ili samo D – pogad̄ate: može!!

Odrediti maksimalno paralelni sustav zadataka, uzimajući u obzir njihov med̄usobni odnos u lancu
i domene i kodomene.
Grafičko rješenje (napomena: problem se može rješiti i s relacijama Zi < Zj ; pogledati poglavlje
4.2.3. u knjizi):

Nakon uklanjanja suvišnih veza:

Zavisne zadatke treba sinkronizirati! Kako? O tome u 5. i 6. poglavlju.


48 4. Med̄usobno isključivanje u višedretvenim sustavima

4.4. Med̄usobno isključivanje


MI = najjednostavniji/osnovni mehanizam sinkronizacije
Pristup zajedničkim sredstvima (npr. varijablama) treba zaštititi.
Odsječke koda koji koriste takva zajednička sredstva nazivamo kritičnim odsječcima.

[dodatno]

Npr. ako više dretvi povećava neki brojač kodom brojač=brojač+dodano; rezultat može biti krivi
zato jer su potrebne četiri instrukcije (dohvati brojač, dohvati dodano, zbroji, pohrani) koje mogu
biti prekinute ili izvod̄ene paralelno.

Kod dretve se stoga može podijeliti na kritične odsječke i nekritične odsječke, primjerice:

dretva_x
{
...
nekritični odsječak;
kritični odsječak;
nekritični odsječak;
kritični odsječak;
...
}

Radi jednostavnosti u nastavku ćemo razmatrati cikličke dretve, koje imaju samo jedan kritičan
odsječak prema:

ciklička_dretva
{
ponavljaj {
kritični odsječak;
nekritični odsječak;
}
do zauvijek;
}

Primjer 4.2. Poslužiteljska dretva

U nekom poslužitelju dretve koje poslužuju zahtjeve će raditi otprilike slijedeće:

dretva_poslužitelja //jedna od "radnih dretvi"


{
ponavljaj {
uzmi_idući_zahtjev_iz_reda; // kritični odsječak
obradi_zahtjev_i_vrati_rezultat; //nekritični odsječak;
}
do kraja_rada_poslužitelja;
}
4.5. Potraga za algoritmima med̄usobnog isključivanja 49

Kako ostvariti kritični odsječak?


• koristiti mehanizme med̄usobnog isključivanja – funkcije ud̄i_u_KO i izad̄i_iz_KO

ciklička_dretva
{
ponavljaj {
ud̄i_u_KO();
kritični odsječak;
izad̄i_iz_KO();
nekritični odsječak;
}
do zauvijek;
}

Kako ostvariti te funkcije (ud̄i_u_KO i izad̄i_iz_KO)?


Zahtjevi na algoritme med̄usobnog isključivanja (ispitno pitanje)
1. u kritičnom odsječku u svakom trenutku smije biti najviše jedna dretva
2. mehanizam med̄usobnog isključivanja mora djelovati i u uvjetima kada su brzine izvod̄enja
dretvi proizvoljne;
3. kada neka od dretvi zastane u svom nekritičnom dijelu ona ne smije spriječiti ulazak druge
dretve u svoj kritični odsječak;
4. izbor jedne od dretvi koja smije ući u kritični odsječak treba obaviti u konačnom vremenu.
Algoritam mora vrijediti i za jednoprocesorske i za više procesorske sustave (tj. za sve sustave u
kojima se želi primijeniti).

4.5. Potraga za algoritmima med̄usobnog isključivanja


Zašto ga “tražimo” kad znamo koji valjaju? Da usput pokažemo probleme višedretvenih sustava!
Opće pretpostavke:
• višeprocesorski sustav (barem 2 procesora)
• dretve su u istom procesu (dijele adresni prostor)
Pronad̄imo prvo algoritam koji radi za dvije dretve, jer ako ne radi za dvije neće ni za više!
50 4. Med̄usobno isključivanje u višedretvenim sustavima

4.5.1. Prvi pokušaj (ZASTAVICA)


Koristi se zajednička varijabla ZASTAVICA
• kada je ZASTAVICA == 0, nitko nije u KO
• kada je ZASTAVICA == 1, jedna dretva je u KO te druga neće ući već će radno čekati da se ta
varijabla promijeni

ud̄i_u_KO () izad̄i_iz_KO ()
{ {
dok je ( ZASTAVICA == 1 ) ZASTAVICA = 0;
; //ništa, ponovno pročitaj ZASTAVICU; }
ZASTAVICA = 1;
}

U asembleru ud̄i_u_KO:

ud̄i_u_KO:
ADR R0, ZASTAVICA;
petlja:
LDR R1, [R0] //problem ako ovo ide paralelno, svi čitaju 0!
CMP R1, 1
BEQ petlja
STR 1, [R0] //tek se ovdje ZASTAVICA mijenja
RET

Problemi:
• ako idu paralelno, u uzastopnim sabirničkim ciklusima, obje čitaju 0 i obje ulaze u KO;
• nije ispunjen osnovni uvjet (1)

4.5.2. Drugi pokušaj (PRAVO)


Koristiti varijablu PRAVO koja može imati vrijednost 0 ili 1 što je indeks dretve koja iduća može ući u
KO (I = 1 - J; J = 1 - I;)

ud̄i_u_KO (I) izad̄i_iz_KO (I)


{ {
dok je ( PRAVO != I ) PRAVO = 1 - I;
; //ništa, ponovno pročitaj PRAVO; }
}

Problemi:
• ulazak u KO je strogo naizmjeničan
• uvjeti 2 i 3 nisu ispunjeni!
4.5. Potraga za algoritmima med̄usobnog isključivanja 51

4.5.3. Treći pokušaj (ZASTAVICA[])


Koristiti dvije varijable ZASTAVICA[I] i ZASTAVICA[J] koje mogu imati vrijednost 0 ili 1 što označava
jesu li zadane dretve u KO ili nisu

ud̄i_u_KO (I) izad̄i_iz_KO (I)


{ {
J = 1 - I; //druga dretva ZASTAVICA[I] = 0;
}
dok je ( ZASTAVICA[J] != 0 )
;

ZASTAVICA[I] = 1;
}

Problem:
• u paralelnom radu obje mogu pročitati 0 u suprotnim zastavicama i ući u KO

4.5.4. Četvrti pokušaj (ZASTAVICA[])


Zastavicu postaviti prije provjere suprotne zastavice

ud̄i_u_KO (I) izad̄i_iz_KO (I)


{ {
J = 1 - I; ZASTAVICA[I] = 0;
}
ZASTAVICA[I] = 1;

dok je ( ZASTAVICA[J] != 0 )
;
}

Problem:
• u paralelnom radu obje mogu prvo postaviti svoje zastavice i onda u idućoj petlji beskonačno
radno čekati jer se zastavice neće spustiti – nikad neće ući u KO (4) – potpuni zastoj

4.5.5. Peti pokušaj (ZASTAVICA[])


Privremeno spustiti zastavicu dok je ona druga podignuta

ud̄i_u_KO (I) izad̄i_iz_KO (I)


{ {
J = 1 - I; ZASTAVICA[I] = 0;
}
ZASTAVICA[I] = 1;
dok je ( ZASTAVICA[J] != 0 ) {
ZASTAVICA[I] = 0;
dok je ( ZASTAVICA[J] != 0 )
;
ZASTAVICA[I] = 1;
}
}
52 4. Med̄usobno isključivanje u višedretvenim sustavima

Problem:
• u paralelnom radu obje sinkrono mogu podizati i spuštati zastavice i nikad ne ući u KO (4),
mada dovoljan je mali “poremećaj” pa da jedna “prod̄e”.

4.5.6. Dekkerov algoritam


• rješenje koje je ponudio nizozemski matematičar T. Dekker, a opisao ga je E.W.Dijkstra (1959)
• kombinacija drugog i petog pokušaja

ud̄i_u_KO (I) izad̄i_iz_KO (I)


{ {
J = 1 - I; ZASTAVICA[I] = 0;
PRAVO = 1 - I;
ZASTAVICA[I] = 1; }

dok je ( ZASTAVICA[J] != 0 ) {
ako je ( PRAVO == J ) {
ZASTAVICA[I] = 0;
dok je ( PRAVO == J )
;
ZASTAVICA[I] = 1;
}
}
//neće izaći iz petlje dok se ZASTAVICA[J] ne spusti!
}

Pojednostavljenje: Petersonov algoritam

ud̄i_u_KO (I) izad̄i_iz_KO (I)


{ {
J = 1 - I; ZASTAVICA[I] = 0;
}
ZASTAVICA[I] = 1;
PRAVO = 1 - I;

dok je ( ZASTAVICA[J] != 0 && PRAVO == J )


;
}

Prednosti Petersonova algoritma:


• kraći i brži
• ne ovisi o početnoj vrijednosti varijable PRAVO
Dekkerov i Petersonov algoritam rade za sustave sa samo dvije dretve
Proširenje tog algoritma napravio je Lamport svojim “pekarskim” algoritmom
4.5. Potraga za algoritmima med̄usobnog isključivanja 53

4.5.7. Lamportov algoritam med̄usobnog isključivanja


• drugo ime: pekarski algoritam
• svaka dretva prije ulaska u KO dobije svoj broj, koji je za 1 veći od najvećeg do sada dodijeljenog
• u KO ulazi dretva s najmanjim brojem!
• što ako dvije dretve dobiju isti broj? onda se gleda i indeks dretve
• postupak dobivanja broja je takod̄er neki oblik KO pa se i on štiti
• zajednički podaci:
– BROJ[N] – dodijeljeni broj (0 kada dretva ne traži ulaz u KO)
– ULAZ[N] – štiti se dodjela broja
– ZADNJI – zadnji dodijeljeni broj (najveći do sada)
– početne vrijednosti varijabli = 0;

ud̄i_u_KO (I)
{
//uzimanje broja
ULAZ[I] = 1;
BROJ[I] = ZADNJI;
ZADNJI++;
ULAZ[I] = 0;

//provjera i čekanje na dretve s manjim brojem


za J=1 do N
{
dok je ( ULAZ[J] == 1 )
; //čeka se da dretva J dobije broj, ako je u postupku dobivanja

dok je ( BROJ[J] != 0 &&


( BROJ[J] < BROJ[I] || ( BROJ[J] == BROJ[I] && J < I ) ) )
; //ako J ima prednost čekaj
}
}

izad̄i_iz_KO (I)
{
BROJ[I] = 0;
}

Svojstva Lamportova algoritma


• + radi za proizvoljan broj dretvi na proizvoljnom broju procesora!
• – potrebna poveća struktura podataka
• – radno čekanje
54 4. Med̄usobno isključivanje u višedretvenim sustavima

4.6. Sklopovska potpora med̄usobnom isključivanju


Zabrana prekidanja – za jednoprocesorske sustave
U jednoprocesorskim sustavima bi mogli koristiti zabranu i dovolu prekidanja:
• ud̄i_u_KO() == onemogući_prekidanje
• izad̄i_iz_KO() == omogući_prekidanje
Problemi:
• radi samo u jednoprocesorskim sustavima
• traži privilegirani rad (zabrana i dozvola prekidanja su privilegirane operacije)

Drugi načini
Problem prvog pokušaja, sa samo jednom zastavicom, je bio u tome što se provjera zastavice
i njeno postavljanje moglo prekinuti drugom dretvom, koja je takod̄er, paralelno mogla provjeriti
vrijednost zastavice.
Ako se to sklopovski onemogući, onda bi algoritam bio dobar!
Kako?

Korištenje dva uzastopna sabirnička ciklusa

Slika 4.7. Korištenje dva uzastopna sabirnička ciklusa (4.9.)

U prvom ciklusu (I) se čita vrijednost zastavice, a u drugom (I+1) se zastavica postavlja u 1!

Sklopovske podrške u obliku instrukcija TAS, SWP, INC


4.6. Sklopovska potpora med̄usobnom isključivanju 55

4.6.1. Ostvarenje MI sa instrukcijom Ispitaj_i_postavi – TAS (Test And Set)


Neka postoji instrukcija TAS adresa koja koristi dva uzastopna sabirnička ciklusa tako da:
1. u prvom sabirničkom ciklusu pročita vrijednost sa zadane adrese i postavlja zastavice registra
stanja (npr. zastavicu Z (zero), kao da uspored̄uje s nulom)
2. u drugom ciklusu na tu adresu sprema vrijednost 1
odnosno:

TAS (adresa) = {
//prvi dio instrukcije koristi 1. sabirnički ciklus
LDR X, [adresa]
CMP X, 0 //proširenje gornje instrukcije; samo pogleda je li 0

//drugi dio instrukcije koristi 2. sabirnički ciklus (odmah iza 1.)


STR 1, [adresa]
}

X je privremeni registar, a prve dvije naredbe koriste dva uzastopna sabirnička ciklusa

Rješenje MI sa TAS u asembleru:

ud̄i_u_KO: izad̄i_iz_KO:
petlja: ADR R1, zastavica
TAS zastavica STR 0, [R1]
BNE petlja //kada nije 0 čekaj RET
RET

Neka u pseudokodu TAS adresa vraća pročitanu vrijednost (radi jednostavnosti i kraćeg zapisa):

ud̄i_u_KO () izad̄i_iz_KO ()
{ {
dok je ( TAS (zastavica) == 1 ) zastavica = 0;
; // radno čekanje }
}
56 4. Med̄usobno isključivanje u višedretvenim sustavima

4.6.2. Ostvarenje MI sa Zamijeni – SWP (Swap)


Neka postoji instrukcija SWP R1,R2,[R3] koja koristi dva uzastopna sabirnička ciklusa tako da:
• u prvom ciklusu pročita vrijednost sa adrese zadane s R3 u registar R2
• u drugom ciklusu na tu adresu sprema vrijednost iz registra R1
SWP R1,R2,[R3] = { LDR R2, [R2]; STR R1, [R3];}

Rješenje MI sa SWP u asembleru:

ud̄i_u_KO: izad̄i_iz_KO:
ADR R3, zastavica ADR R1, zastavica
LDR R1, 1 STR 0, [R1]
petlja: RET
SWP R1, R2, [R3]
CMP R2, 1
BEQ petlja
RET

Neka u psedudokodu funkcija Zamijeni ( adresa, var ) radi zamjenu vrijednosti varijabli adresa
i registra reg u dva uzastopna sabirnička ciklusa.

ud̄i_u_KO () izad̄i_iz_KO ()
{ {
reg = 1; zastavica = 0;
ponavljaj { }
Zamijeni ( zastavica, reg );
}
dok je ( reg == 1 );
}
4.6. Sklopovska potpora med̄usobnom isključivanju 57

4.6.3. Problemi prikazanih mehanizama med̄usobnog isključivanja


• radno čekanje – osnovni problem svih prikazanih, sa i bez sklopovske potpore
• nepoštivanje redoslijeda zahtijeva – “problem” algoritama ostvarenih sklopovskom potporom:
prva dretva koja naleti u svom radnom čekanju na spuštenu zastavicu ulazi u KO – to može biti
i zadnja dretva koja je došla do petlje, a ne ona koja je najduže čekala!
Da bi se riješili ovi problemi mehanizme sinkronizacije treba drukčije riješiti – korištenjem jezgrinih
funkcija, gdje će se u kontroliranom okruženju dretva pustiti u KO ili ne, kada se dretva miče s
procesora (da ne troši procesorsko vrijeme na neproduktivnu petlju).

Pitanja za vježbu 4

1. Zašto se koristi višedretvenost? Koje su prednosti (mogućnosti) sustava koji podržavaju


višedretvenost?
2. Što je to kritični odsječak i med̄usobno isključivanje?
3. Kako se med̄usobno isključivanje može ostvariti u jednoprocesorskim a kako u višeproce-
sorskim sustavima?
4. Koji problem može nastati ako više dretvi obavlja operaciju: A = A + 1 nad zajedničkom
varijablom A?
5. Čemu služi Dekkerov algoritam, a čemu Lamportov?
6. Koja je sklopovska potpora med̄usobnom isključivanju? TAS, SWP
7. Koji su problemi različitih načina ostvarenja med̄usobnog isključivanja?
LAB-1. Kratke upute za rad u UNIX/Linux ljusci

Natuknice
• računalo za rad: pinus, fly, linux (pravi i virtualni), . . .
• spajanje: putty, ssh, terminal, . . .
• osnovne naredbe: ls, pwd, cd, mkdir, cp, mv, rm (!)
• ljuska: bash (tab, strelice)
• tekstualni editor: vi, vim, joe, pico
• prevod̄enje (kompajliranje): gcc, g++, cc, CC
• pokretanje programa: ./a.out
• rad s procesima: ps, kill -9 PID
• rad s resursima: ipcs, ipcrm
• prijenos datoteka: copy/paste, scp, winscp, dos2unix, unix2dos

Primjer LAB-1.1. Primjer programa, prevod̄enje, pokretanje

Napisati program, pohraniti ga pod imenom vj1.c, prevesti (kompajlirati) i pokrenuti ga.

$ pico vj1.c

Upisati program (paziti na stil pisanja: razmaci, uvlačenja, zagrade, prozračnost!)

1 #include <stdio.h>
2 int main ()
3 {
4 printf ( "Hello World!\n" );
5 return 0;
6 }

Izlaz iz editora: Ctrl + x, yes, yes

$ gcc vj1.c a.out // program se pokreće sa "./a.out"


$ gcc vj1.c -o prog prog // program se pokreće sa "./prog"
60 LAB-1. Kratke upute za rad u UNIX/Linux ljusci

Najčešće greške na labosima


• ime.c != ime.C
– prevoditelj (gcc) prepoznaje prvo (.c) kao C, a drugo (.C) kao C++ program
– .cpp = .cxx = .cc = .C = .CC =⇒ C++

• Greške: Bus error, Segmentation fault, Core dumped


– neinicijalizirana kazaljka
– kazaljka pokazuje izvan procesnog adresnog prostora
– neinicijalizirana varijabla koja se koristi kao indeks polja
Stil pisanja koda – preporuke
• osnovni zahtjev: čitljivost
• razmaci: a = b + c * d; ne a=b+c*d;
• uvlačenja (“tab” preporuka, može i 3/4 razmaka),
• komentari /* */ ili // - komentirati kod! (preporuka, ne uvjet)
• zagrade () i []: if (a[4][2] == 5) {
• lomljenje koda – ne raditi preduge linije (pokušati prelomiti nakon 80-og stupca)

Primjer LAB-1.2. Pokaz rada na pinusu

1. spajanje sa puttyjem (pinus.cc.fer.hr, 22, save/load)


2. bash ljuska
3. ls, ls -al, značenja zastavica pored datoteka, mkdir
4. $ cd os_unix
5. $ pico hello.c
6. upiši program, ctrl+x, yes, enter
7. $ gcc hello.c; ./a.out
8. strelica gore. . . $ pico hello.c
9. print umjesto printf, $ gcc
10. makni neki znak, $ gcc
11. makni \n, $ gcc, pokreni
12. iza printf-a dodaj: int *a; *a = 5; $ gcc, $ ./a.out
13. vrati \n, $ gcc, pokreni
14. $ pico bus_error.c, pojasni, $ gcc, pokreni
15. $ pico argc.c, objasni, $ gcc, pokreni:
16. $ ./a.out 3 4 5
17. $ ./a.out 3 4 5 abc12
18. $ ./a.out 3 4 5 abc12 13asd
19. $pico netako.c
20. $ exit (ako je pokrenut bash ručno, onda još jednom $ exit)
21. WinSCP
LAB-2. Signali

O signalima u OS-u
• analogno prekidnim signalima na razini procesora (sklopovlja), signali su mehanizam na razini
OS-a (procesi ih primaju)
• kao i prekidi i signali služe za obradu iznimnih pojava, asinkronih pojava i slično
• procesi reagiraju na signale koje šalju:
– jezgra OSa (npr. SIGSEGV kada proces pristupa spremničkoj lokaciji koja nije u njegovom
adresnom prostoru)
– proces sam sebi (npr. SIGALRM)
– drugi proces
– korisnik (Ctrl+C, preko sučelja OS-a - ljuske)
• signali koji uništavaju procese: SIGKILL (9)
• UNIX ima oko 30 signala (simbolička imena nalaze se u "signal.h"), neki od njih:
– SIGINT – Ctrl + C
– SIGQUIT – Ctrl + (ž)
– SIGTSTP – Ctrl + Z
– SIGALARM, SIGTERM, SIGKILL
• proces može (ali i ne mora) reagirati na signal: signali se mogu ili ignorirati (neki) ili su povod
akciji
– prihvati i obradi pretpostavljenom funkcijom (default)
– prihvati i obradi zadanom funkcijom (zadana u programu)
– zadrži signal (za eventualnu kasniju obradu)
– ignoriraj signal
• signal ne sadrži nikakve dodatne informacije (osim u nekim proširenjima, koji se i/ne koriste u
vježbi)
• pri prihvatu signala ponašanje procesa za taj signal mijenja se u “zadrži” dok se on ne obradi;
kad obrada završi isti se signal ponovno može prihvatiti na isti način.

Labosi – “Prekidi i signali”


• prekide simuliramo signalima
• ponašanje procesa za signal definiramo posebnim funkcijama (za 2011/12):
– sigset ( sig, obrada ) (void obrada ( int sig ) {})
– sighold (signal) – privremeno zabranjuje prekidanje sa signalom sig
– sigrelse (sig) – dozvoljava prekidanje sa sig (kako je def. sa sigset)
– (modernije ostvarenje je sa sigaction, ali i malo složenije sučelje)
• novi signal se ne prihvaća odmah, ako se isti trenutno obrad̄uje
• OS pamti samo po jedan signal za svaki proces. Samo se jedan signal (istog tipa) može za-
pamtiti, npr. ako se trenutno obrad̄uje SIGINT i za vrijeme njegove obrade dod̄e još 5 signala
SIGINT, samo će se jedan zapamtiti i obraditi. Programski se taj nedostatak može otkloniti, ali
to nije cilj ovih labosa.
• paziti kako koristiti sleep kojega budi bilo koji signal, a vraća broj neprospavanih sekundi
– sleep(x) → for ( i = 0; i < x; i++ ) sleep(1);

(Po uputama na webu. . . ; ne iduću stranicu za 2011/12)


62 LAB-2. Signali

Primjer sa sigaction

1 #include <stdio.h>
2 #include <signal.h>
3
4 void prekidna ( int sig )
5 {
6 printf ( "U obradi prekida\n" );
7 sleep (5);
8 printf ( "Obrada prekida gotova\n" );
9 }
10
11 int main ()
12 {
13 struct sigaction act;
14
15 act.sa_handler = prekidna; //ili act.sa_sigaction = prekidna;
16 act.sa_flags = 0; //ili act.sa_flags = SA_SIGINFO;
17
18 sigemptyset ( &act.sa_mask );
19 sigaddset ( &act.sa_mask, SIGQUIT );
20 /* i SIGQUIT će biti maskiran za vrijeme obrade signala */
21
22 if ( sigaction ( SIGINT, &act, NULL ) )
23 {
24 perror ( "sigaction" );
25 fprintf ( stderr, "Nisam postavio masku za signale\n" );
26 exit (1);
27 }
28
29 while (1)
30 sleep (1); /* cekaj na signal */
31
32 return 0;
33 }

U funkciji za obradu prekida može se dohvaćati i više parametara (ako su poslati):

1 void obrada ( int sig, siginfo_t *info, void *context )


2 {
3 printf ( "Primio signal %d", sig );
4
5 if ( info != NULL && info->si_code == SI_QUEUE )
6 printf ( " uz parametar = %d (%p)\n ", info->si_value.sival_int,
7 info->si_value.sival_ptr );
8 else
9 printf ( "\n" );
10 }

1 int posalji_signal ( int sig, int kome, int param )


2 {
3 union sigval sv;
4 sv.sival_int = param;
5 if ( sigqueue ( kome, sig, sv ) )
6 {
7 perror ( "sigqueue" );
8 return 1;
9 }
10 return 0;
11 }
LAB-3. Procesi i dretve

Proći prije: 4.1. (možda, to je već rečeno u 2. poglavlju)

LAB-3.1. Stvaranje procesa i dretvi u UNIX okruženju


Adresni prostor procesa sastoji se od 3 dijela:
1. dio u kojem je smješten program (segment instrukcija)
2. dio rezerviran za stog
3. dio za podatke (segment korisničkih podataka)
Adresni prostor procesa dohvatljiv je svim dretvama procesa.
U adresnom prostoru OS-a:
• segment sustavskih podataka procesa:
– opisnik procesa, opisnici dretvi
– opisnici naprava, otvorenih datoteka, . . .
– med̄uspremnici
Jedinstveno za svaku dretvu:
• identifikacijski broj dretve
• kontekst: stanje registara
• kazaljka stoga i sam stog
• prioritet
• zastavice (signalna maska)
• privatni prostor svake dretve

LAB-3.1.1. Pokretanje više procesa


• proces roditelj stvara proces dijete
• dijete dobiva kopiju trenutnog adresnog prostora roditelja (segmenata instrukcija i podataka)
• podaci NISU zajednički
– u implementaciji jesu dok se ne mijenjaju - onda se stvara kopija
– više o tome u 8. poglavlju
• u C-u: globalne varijable vide oba procesa, ali prilikom njihove promjene i jedan i drugi proces
dobivaju kopiju varijabli (one nisu zajedničke)
• prilikom med̄uprocesne komunikacije upliće se OS

Stvaranje procesa na *UNIX* sustavima: int fork (void);


• u funkciju ulazi jedan proces, izlaze dva
• dijete kao povratnu vrijednost dobiva 0, a proces roditelj dobiva PID djeteta
• PID roditelja != PID djeteta
• u slučaju greške povratna vrijednost je -1 i novi proces nije stvoren
• proces dijete je kopija procesa roditelja
• sredstva sustava je jedino što procesi dijele:
64 LAB-3. Procesi i dretve

– npr. datoteke, semafori, zaj.mem., redovi poruka


LAB-3.1. Stvaranje procesa i dretvi u UNIX okruženju 65

Grafički prikaz fork-a:

—— fork() ——

Slika LAB-3.1. Prije i poslije poziva fork

Način korištenja fork-a:

if ( fork() == 0 )
{
posao_procesa_djeteta;
exit (0);
}
nastavak rada procesa roditelja;
wait ( NULL );

(nacrtaj crtama, okomito)

R ---> fork() ----> R


\
\--> D
66 LAB-3. Procesi i dretve

Ili pravilnije, sa ispitivanjem povratne vrijednosti (pokaži na primjeru):

pid_djeteta = fork ();


switch ( pid_djeteta )
{
case -1:
printf("Ne mogu stvoriti novi proces!\n");
exit(1);
case 0:
Posao djeteta;
exit(0);
default:
Posao roditelja za novostvoreni proces;
}

nastavak rada roditelja;


wait ( NULL );

Primjer programa koji stvara više procesa (pokaži na pinusu):

1 #include <stdio.h>
2
3 void Proces ( int i )
4 {
5 int j;
6
7 for (j = 1; j <= 5; j++ ) {
8 printf ( "Proces:%d, prolaz:%d\n", i, j );
9 sleep (1);
10 }
11 }
12 int main (void)
13 {
14 int i, pid;
15
16 for ( i = 0; i < 4; i++ ) {
17 pid = fork();
18 switch ( pid ) {
19 case -1:
20 printf("Ne mogu stvoriti novi proces!\n");
21 exit(1);
22 case 0:
23 Proces(i);
24 exit(0);
25 default:
26 printf("Stvorio process %d\n", pid);
27 break;
28 }
29 }
30 for(i = 0; i < 4; i++)
31 wait(NULL);
32
33 return 0;
34 }

[dodatno]

Čekanje na kraj procesa (oslobad̄anje resursa koji su ostali zauzeti, opisnik...).


Ako roditelj završi prije procesa djeteta, djete postaje “zombie”...
LAB-3.1. Stvaranje procesa i dretvi u UNIX okruženju 67

LAB-3.1.2. Pokretanje više dretvi


Stvaranje dretvi prema POSIX sučelju:

1 pthread_create(
2 &tid, //mjesto za spremanje opisnika nove dretve
3 NULL, //parametri za novu dretvu (prioritet, način raspored̄ivanja, ...)
4 pocetna_funkcija_za_dretvu, //početna funkcija
5 pparam //parametar koji se šalje u početnu funkciju (adresa - zašto adresa!)
6 );

—— pthread_create() ——

Slika LAB-3.2. Prije i poslije poziva pthread_create

Primjer programa koji stvara više dretvi:

1 #include <stdio.h>
2 #include <pthread.h>
3
4 void *dretva ( void *rbr )
5 {
6 int i, brd = *((int *) rbr); //komentirati načine prenosa parametra
7
8 for ( i = 1; i <= 5; i++ ) {
9 printf ("Ja sam dretva %d i i=%d\n", brd, i );
10 sleep (1); //usleep(1000000); na pinusu
11 }
68 LAB-3. Procesi i dretve

12 }
13
14 int main (void)
15 {
16 int i, BR[3];
17 pthread_t t[3];
18
19 for ( i = 0; i < 3; i++ ) {
20 BR[i] = i;
21 if ( pthread_create ( &t[i], NULL, dretva, (void*) &BR[i] ) ) {
22 printf("Ne mogu stvoriti novu dretvu!\n");
23 exit(1);
24 }
25 }
26
27 for ( i = 0; i < 3; i++ )
28 pthread_join ( t[i], NULL );
29
30 return 0;
31 }
32 // gcc -lpthread ...

Zadnji parametar pthread_create: (osim kako je navedeno, prikaži na kodu)


• NE &i – i se može promijeniti u med̄uvremenu
• (void *) i; → brd = (int) x; //(void *) je broj

Završetak rada dretve:


• izlaskom iz početne funkcije (navedene u pthread_create)
• pozivom pthread_exit
• završetak rada početne dretve – dretve koja kreće s funkcijom main, završava proces – i sve
ostale dretve budu prekinute!

Što ako se koristi fork nakon stvaranja dretvi sa pthread_create? Hoće li se u novom procesu
duplicirati i dretve?
• uglavnom neće (Linux, pinus sa POSIX sučeljem)
• hoće: pinus sa Solaris sučeljem (thr_create)
LAB-3.1. Stvaranje procesa i dretvi u UNIX okruženju 69

LAB-3.1.3. Korištenje zajedničkog spremnika


Zajednički spremnik za dva ili više procesa

Slika LAB-3.3. Zajednički spremnik (idejno ostvarenje)

Funkcije (za *UNIX*):


• shmget – dohvati segment zajedničkog spremnika (postojeći ili novi)
• shmat – poveži segment na proces
• shmdt – odvoji segment od procesa
• shmctl – obriši segment (pored ostalog)

Drugo sučelje preko shm_open


Na Win* platformi: “Named shared memory” (CreateFileMapping)

Primjer korištenja
globalne varijable:

int Id; /* identifikacijski broj segmenta */

struct ZS {
int prvi;
double drugi;
...
} *zv;

Na početku, npr. u main-u prije fork-a:

Id = shmget ( IPC_PRIVATE, sizeof(struct ZS), 0600 );


key size flags

• objasni parametre i mogućnosti


• size na pinusu (samo na pinusu) mora biti veći, npr. 1024, bez obzira što toliko nije potrebno
(neće dati malo)

zv = (int *) shmat ( Id, NULL, 0 );

// na Linux-u (a radi i na pinusu): odmah označi da se segment briše


// kad zadnji proces koji ga koristi završi s radom
shmctl ( Id, IPC_RMID, NULL );
70 LAB-3. Procesi i dretve

zv->prvi = 0;
zv->drugi = 104.6;
...

Stvaranje procesa: fork ... Čekanje na kraj procesa: wait ...


Kada segment više nije potreban:

shmdt ( (char *) zv );
shmctl ( Id, IPC_RMID, NULL ); //ako nije već i prije (bolje da je i prije)

Kako koristiti:
• globalne varijable kod dretvi – izravno
• zajednički spremnik kod procesa – preko kazaljki
Primjer korištenja zajedničkog spremnika više varijabli (+slika spremnika):

...
int *a, *b;
double *c;
...
a = shmat(...);
b = a + 1;
c = (double *) (b + 1);
...

Ako je program stao normalno i nije obrisao zajednički spremnik:


• ipcs, ipcrm

Pokaži na pinusu (u sklopu pripreme za 2. vj.):


• proces – kako rade programi
• dretve – kako se kompajlira, prijenos parametara
• zajednički spremnik – kako se koristi, što ako ostane: briši ručno i preko programa brisi.c
Pokaži primjere na webu i zadatke
LAB-4. Sinkronizacijski mehanizmi

LAB-4.1. Semafori u UNIX-u


Postoje sva sučelja:
• tradicionalini semafori – semop
• noviji (RT) semafori – sem_*

LAB-4.1.1. Tradicionalni semafori


Od OSa se dohvaća skup semafora:

id_skupa = semget ( ključ, koliko_semafora, zastavice )


...
SemId = semget ( IPC_PRIVATE, n, 0600 );

Postavljanje početne vrijednosti i dodatna kontrolna podešavanja i brisanje

semctl( id_skupa, koji_semafor_u_skupu, naredba, argumenti )


...
semctl ( SemId, SemNum, SETVAL, &SemVal ); //komentiraj zadnji param.
semctl ( SemId, 0, IPC_RMID, 0 ); //briši skup semafora

Povećavanje/smanjivanje sa semop:

struct sembuf SemBuf;


SemBuf.sem_num = SemNum;
SemBuf.sem_op = SemOp;
SemBuf.sem_flg = 0;
semop ( SemId, &SemBuf, 1 );

Pokaži primjer na webu (u uvodu sinkronizacije)

LAB-4.1.2. Noviji semafori

sem_t s;
...
sem_init ( &s, 0, 5 ); //početna vrijednost = 5
...
sem_post ( &s ); //PostaviOSEM
...
sem_wait ( &s ); //ČekajOSEM

Pokaži na webu (osnovni koncepti OSa: semafor)


72 LAB-4. Sinkronizacijski mehanizmi

LAB-4.2. Monitori
Monitor se ostvaruje pomoću:
• varijabli med̄usobnog isključivanja i
• uvjetnih varijabli (reda uvjeta)

LAB-4.2.1. Varijable med̄usobnog isključivanja (MUTEX)


• K.O. se zaključa s pomoću kontrolnih varijabli (ključeva)
• djeluje slično kao i binarni semafor
• u nastavku su opisane POSIX funkcije

pthread_mutex_t ključ; //varijabla zaključavanja koja mora biti GLOBALNA


...
pthread_mutex_init ( &ključ, NULL );
...
pthread_mutex_lock ( &ključ );
...
pthread_mutex_unlock ( &ključ );

LAB-4.2.2. Uvjetne varijable


• dretva čeka dok se ne ispuni odred̄eni uvjet (tj. da ga ispuni neka druga dretva)
• uvjet se ne ispunjava pozivima jezgrinih funkcija, već u korisničkom načinu rada, programski,
postavljanjem vrijednosti nekim varijablama
• obavezno se taj odsječak programa štiti varijablom med̄usobnog isključivanja
• uvjetne varijable su globalne

pthread_cond_t uvjet;
...
pthread_cond_init( &uvjet, NULL );
...
pthread_cond_wait(&uvjet, &ključ);
...
pthread_cond_signal(&uvjet);
// oslobad̄anje samo jedne (prve) dretve iz reda uvjeta
...
pthread_cond_broadcast(&uvjet);
// oslobad̄anje svih dretvi iz reda uvjeta

• ukoliko nije zadovoljen uvjet, dretva ne prolazi uvjet već prelazi u red uvjeta (s *cond_wait) i
čeka na ispunjenje istoga i OTKLJUČAVA ključ
• ukoliko nema nikoga u redu uvjeta, a pozove se *cond_signal ili *cond_broadcast tada NIŠTA,
tj. to ne znači zeleno svjetlo za iduću dretvu koja poziva *cond_wait
Primjer na webu — stari most (OS koncepti)
Komentiraj zadatke za 3. labos.
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  1

Operacijski sustavi 
Priprema za Završni ispit – ak. god. 2007/08 
Pitanja i odgovori sa predavanja 
 
 
 
 
Pitanja postavljali i odgovarali: PyroMan, Rosita Pedringo, nyala, sunshine, Dada, nevilliny i Force 
 

1. Kako treba podijeliti program koji ne stane u cijelosti u radni spremnik u preklopnom načinu 
uporabe spremnika? 
• jedan dio uvijek u radnom spremniku 
• drugi dio (dijelovi) koji mogu biti i na hard disku (dakle ne stalno u radnom spremniku) 

2. Opisati logički i fizički adresni prostor. 
•  logički adresni prostor je prostor u kojem su sve adrese unutar programa izračunate kao da je početna 
adresa jednaka nuli, dijeli se na stranice, ovisi o arhitekturi. Ne mijenja se tekom izvođenja programa 
•  fizički adresni prostor: Program će se smjestiti u radni spremnik u prostor koji započinje s početnom 
adresom PA. Taj ćemo prostor nazivati fizičkim adresnim prostorom. Dijeli se na okvire, ovisi o RAM‐u  

3. Čemu služi tablica prevođenja? 
• za prevođenje adrese iz logičkog adresnog prostora u fizički adresni prostor 

4. U čemu se razlikuju prekidi izazvani promašajem stranice od ostalih prekida? 
• može se dogoditi za vrijeme izvođenja instrukcije, provjerava se na kraju 
• ponovno se mora izvesti naredba umjesto da se prelazi na sljedeću kao kod ostalih prekida 
• to je omogućeno skrivenim kopijama svih registara 

5. Što sadrži procesni informacijski blok? Koliko procesnih informacijskih blokova ima u procesu? 
• sve informacije važne za odvijanje procesa, sve informacije povezane s gospodarenjem spremničkim 
prostorom, tablicu prevođenja, opisnike svih dretvi, opisnik virtualnog adresnog prostora.  
• ima ih koliko ima i procesa. 

6. Čemu služi TLB? 
• za spremanje cjelokupne dohvaćene fizičke adrese i dijela logičke adrese, to jest omogućuje nama da ne 
moramo uzastopno dohvaćati jednu te istu fizičku adresu ako je trebamo u njemu tražimo da li već 
postoji logička adresa, ako postoji, onda je unutra i fizička adresa. 

7. Koliko puta je potrebno pristupiti radnom spremniku ako se fizička adresa ne nalazi u TLB? A ako se 
nalazi? 
• 3 puta, odnosno jednom ako se nalazi 

8. U kojim stanjima se mogu nalaziti okviri tijekom rada? 
• aktivno (koristi se); slobodno; slobodno s obrisanim sadržajem 
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  2

9. Gdje se generiraju adrese unutar procesora? 
• stog (instrukcijski registar) 
• programsko brojilo 
•  adresni dio instrukcija 

10. Procesni adresni prostor dijeli se na 3 segmenta. Koja?  
• instrukcijski segment ‐ segment u koji se pohranjuju instrukcije programa ili programski kod, adresira se 
iz programskog brojila 
• stogovni segment ‐ segment u koji se pohranjuje stog, adresira se iz registra kazaljke stoga 
• podatkovni segment ‐ segment u koji se pohranjuju podaci i čije adrese potiču iz adresnih djelova 
instrukcija 

11. Opisati organizaciju smještaja na magnetskom disku. (slika?) 

 
• Sve ploče učvršćene su na istu osovinu i vrte se konstantnom brzinom ω.  
• U smjeru radiusa ploča (ili približno u smjeru radiusa blagim lukom pomiču se glave za pisanje i čitanje. 
• Glave se mogu vrlo precizno postaviti na jedno mjesto i tada ispod njih prolazi vrlo uski prsten ploče koji 
 
zovemo stazom  (engl. track). 
• Staze jednakih polumjera svih diskova leže na zamišljenom plaštu valjka i zovemo ih zajedničkim imenom 
cilindar  (engl. cylinder).  
• Svaka je staza podijeljena je na jednake dijelove (kružne lukove s jednakim središnjim kutevima) koje zovemo 
sektorima (engl. sector). 
 
• U jedan sektor može se pohraniti određeni broj bajtova. Uobičajeno je to 256, 512 ili 1024 bajtova.  
• Svaki sektor na disku ima svoju jedinstvenu adresu koja se izračunava iz: 
• rednog broja ploče, 
• rednog broja staze na ploči i 
• rednog broja sektora na stazi.  
• Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na temelju položaja glava, a 
redni broj sektora dobiva se tako da se mjere kutovi vrtnje počevši od posebne oznake na ploči koja 
označava početni kut. 
• U uobičajenim izvedbama diskova svaka ploča ima svoju glavu za pisanje, odnosno čitanje, ali se u jednom 
času može pristupiti samo do jedne od ploča, tj. može se čitati ili pisati samo u jednu stazu cilindra.  
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  3

12. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk ‐ radni spremnik? 

UKUPNO TRAJANJE PRIJENOSA PODATAKA =


|
| TRAJANJE POSTAVLJANJA GLAVE(HEAD POSITION TIME)
| |
| | TRAJANJE TRAŽENJA STAZE: 1.UBRZAVANJE
| | | 2.KONST. BRZINA
| | | 3.USPORAVANJE
| | | 4.FINO PODEŠAVANJE
| | |
| | + ROTACIJSKO KAŠNJENJE = TR/2
| |
| + TRAJANJE PRIJENOSA PODATAKA(DATA TRANSFER TIME)
| |
| | TRANJE ČITANJA DJELA ILI CIJELE STAZE
| | |
| | | PO POTREBI UZETI U OBZIR FAKTOR PREPITANJA(INTERLEAVE FACTOR)
| | |
| | + TRAJANJE PREMJEŠTANJA GLAVE SA STAZE NA STAZU
• UKUPNO TRAJANJE PRIJENOSA PODATAKA = TRAJANJE POSTAVLJANJA GLAVE + TRAJANJE PRIJENOSA 
PODATAKA 
• TRAJANJE POSTAVLJANJA GLAVE = TRAJANJE TRAŽENJA STAZE + ROTACIJSKO KAŠNJENJE 
•  TRAJANJE PRIJENOSA PO DATAKA = TRANJE ČITANJA DJELA ILI CIJELE STAZE + TRAJANJE PREMJEŠTANJA 
GLAVE SA STAZE NA STAZU  

13. Od čega se sastoji trajanje traženja staze? 
• sastoji se od 4 djela. Ubrzavanja, konstantne brzine, usporavanja i finog podešavanja 

14. Vrijeme koje je potrebno za prijenos podataka s diska ili na disk dijeli se na dva dijela. Koja? 
• trajanje postavljanja glave (trajanje traženja staze + rotacijsko kašnjenje) 
• trajanje prijenosa podataka 

15. Zbog čega nastaje rotacijsko kašnjenje i koliko iznosi? 
• rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije 
početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor. 
• iznosi između nula(najpovoljniji slučaj – traženi sektor upravo nailazi ispod glave u trenutku njezinog 
postavljanja na stazu) i jednog(najlošiji slučaj – traženi sektor upravo prolazi ispod glave kad je ona 
postavljena na stazu) okretaja 
• prosječno rotacijsko kašnjenje jednako je polovini trajanja jednog okretaja diska 

16. Čime je određena brzina prijenosa podataka iz diska u spremnik diskovne upravljačke jezgre? 
• brzinom kojom se disk okreće ‐ omega – ω 
• gustoćom podataka (broj sektora/broj staza)  

17. Navesti vrste fragmentacije prilikom statičkog i dinamičkog dodjeljivanja spremnika. 
• unutarnja i vanjska kod statičkog 
• vanjska kod dinamičkog  

18. Navesti i dokazati Knuthovo pravilo. 
• potražiti na materijalima datoteku: "OS ‐ ZI ‐ Izvod Knuthovog pravila (by Ovca).pdf" . Nalazi se unutar 
datotete "Tutoriali ‐ ak. god. 2006/07.rar" 
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  4

19. Kako održavati fragmentaciju minimalnom? 
• osnovni način suzbijanja fragmentacije svodi se na to da se rupe održavaju što većima kako bi se u njih 
mogli smjestiti novi programi. To se postiže tako da se: pri svakom oslobađanju nekog procesnog 
prostora novonastala rupa spaja s eventualnim susjednim rupama u novu veću rupu i pri svakom 
novom zahtjevu za spremničkim prostorom potraži najmanja rupa u koju se može smjestiti novi 
program. 
• nadalje, preostaje mogućnost da se u nekom trenutku, kada se ustanovi da je fragmentacija postala 
prevelika, privremeno obustavi izvođenje dretvi i "presloži" programe u kompaktni prostor. Time se 
na kraju spremnika možda dobije dovoljno velika rupa u koju se može smjestiti program koji čeka na 
dodjelu radnog spremnika. Ta se tehnika “sakupljanja otpadaka”(engl. garbage collection) 
upotrebljava i u nekim programskim okruženjima za izvođenje programa koji intenzivno koriste 
dinamičke strukture podataka 

20. Čime su određene veličine fizičkog i logičkog adresnog prostora? 
• logički ovisi o arhitekturi, fizički o RAM‐u 

21. Čime je određen broj stranica? 
• veličinom logičkog adresnog prostora, stranice imaju veličinu koja je cjelobrojna potencija broja 2. 

22. Kako treba podijeliti program u preklopnom načinu uporabe radnog spremnika? 
• do potrebe za djeljenjem programa dolazi kada trebamo izvesti program čiji je logički adresni prostor 
veći od fizičkog spremnika. Program se djeli na dijelove koji ne trebaju biti istovremeno smješteni u 
fizičkom spremniku. U radnom spremniku mora u svakom trenutku biti onaj dio programa koji sadrži 
instrukcije koje se upravo izvode te dio podatkovnog prostora koji te instrukcije adresiraju.  
• program se djeli na jedan osnovni dio koji se uvijek nalazi u radnom spremniku i na dijelove koji se 
naizmjence smještaju u preostali dio korisničkog dijela fizičkog spremnika 

23. Gdje se nalazi bi čistoće? 
• u tablici prevođenja  

24. Navesti i opisati strategije izbacivanja stranica. 
• FIFO (First In First Out) strategija ‐ iz radnog se spremnika (primarnog spremnika) izbacuje stranica koja 
je najdulje u radnom spremniku. 
• LRU (Least Recently Used) strategija ‐ izbacuje se stranica koja se najdulje u prošlosti nije 
upotrebljavala. 
• LFU (Least Frequently Used) strategija ‐ izbacuje se ona stranica od onih u radnom spremniku koja se 
najrjeđe koristila. 
• OPT (Optimal) strategija ‐ izbacuje se ona stranica koja će se najkasnije u budućnosti koristiti. 

25. Opisati satni algoritam. 
• Inačica LRU algoritma koja se koristi u više inačica operacijskog sustava UNIX naziva se satnim 
algoritmom (Clock algorithm). Algoritam djeluje tako da se sve stranice u radnom spremniku slažu u 
kružnu listu po redu prispijeća. Prilikom traženja stranice za izbacivanje posebnom se kazaljkom 
pretražuje lista, počevši od zadnje stranice učitane u primarni spremnik. Ukoliko stranica ima oznaku 
(zastavicu) A=1 (tj. stranica se koristila u nekom prethodnom "bliskom" trenutku), ta se oznaka 
postavlja na 0 te se kazaljka pomiče na slijedeću stranicu. Ako stranica ima oznaku A=0 tada se 
dotična stranica izbacuje iz radnog spremnika i na isto mjesto se učitava nova stranica (kazaljka se ne 
pomiče). Svaki puta kada se neka stranica koristi njena se oznaka A postavlja u jedinicu. 

26. U kojim stanjima se mogu nalaziti pojedini okviri tijekom rada? 
• aktivno (koristi se); slobodno; slobodno s obrisanim sadržajem  
OPERACIJSKI SUSTAVI – ZI ‐ PITANJA – 2007/08  5

27. Na koji način se može pokazati slobodni prostor na disku? 
• može se pokazati na 3 načina. Binarni prikaz, lista slobodni sektora, lista nakupina sektora 

28. Opisati način smještaja datoteka u unix i ntfs datotečnom sustavu. 
• UNIX ‐ slajdovi 09‐25, 09‐26, 09‐27 
• NTFS ‐ slajdovi 09‐28, 09‐29, 09‐30 

29. Navesti elemente datotečnog podsustava. 
• datoteka  
• datotečna tablica 
• procedura za manipuliranje datotekama 

30. Navesti osnovni sadržaj opisnika datoteke. 
• ime datoteke 
• tip datoteke 
• lozinka 
• ime vlasnika 
• prava pristupa 
• vrijeme stvaranja 
• vrijeme zadnje promjene 
• ime zadnjeg korisnika 
• opisnik smještaja 

31. Navesti osnovni sadrža datotečne tablice. 
• broj sektora po disku 
• broj slobodnih sektora 
• informacije o slobodnim sektorima 
• tablica opisnika pohranjenih datoteka 

32. Opisati način evidencije binarnim prikazom operacijskog sustava za rad s datotekama. 
• binarni prikaz: 011000101001100… ima onoliko 1 i 0 koliko ima sektora, 0 označava da je sektor 
slobodan a 1 da je sektor zauzet. Svaki sektor ima svoju jedinstvenu adresu koja se sastoji od: rednog 
broja ploče, rednog broja staze na ploči i rednog broja sektora na ploči 
 
 
 
 
• Gdje se generiraju adrese unutar procesora?

Adrese se generiraju u programskom brojilu (PC – Program counter; adrese instrukcija koje
dolaze), kazaljci stoga (SP – Stack pointer; stogovne adrese) i u adresnom dijelu instrukcija
(adrese operanada i rezultata operacja).

• Kako je podijeljen procesni adresni prostor?

Procesni adresni prostor podijeljen je na


• - instrukcijski segment ‐ segment u koji se pohranjuju instrukcije programa ili programski kod,
• adresira se iz programskog brojila
• - stogovni segment ‐ segment u koji se pohranjuje stog, adresira se iz registra kazaljke stoga
• - podatkovni segment ‐ segment u koji se pohranjuju podaci i čije adrese potiču iz adresnih
• djelova instrukcija

• Opisati organizaciju smještaja sadržaja na magnetskom disku.

Sve ploče učvršćene su na istu osovinu i vrte se konstantnom brzinom ω.


U smjeru radiusa ploča (ili približno u smjeru radiusa blagim lukom pomiču se glave za
pisanje i čitanje.
Glave se mogu vrlo precizno postaviti na jedno mjesto i tada ispod njih prolazi vrlo uski
prsten ploče koji zovemo stazom (engl. track).
Staze jednakih polumjera svih diskova leže na zamišljenom plaštu valjka i zovemo ih
zajedničkim imenom cilindar (engl. cylinder).
Svaka je staza podijeljena je na jednake dijelove (kružne lukove s jednakim središnjim
kutevima) koje zovemo sektorima (engl. sector).

• Čime je određena jedinstvena adresa svakog sektora na disku?

Svaki sektor na disku ima svoju jedinstvenu adresu koja se izračunava iz:
rednog broja ploče,
rednog broja staze na ploči i
rednog broja sektora na stazi.
Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na temelju
položaja glava, a redni broj sektora dobiva se tako da se mjere kutovi vrtnje počevši od
posebne oznake na ploči koja označava početni kut.

• Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk – radni spremnik?

Ukupno trajanje prijenosa podataka = trajanje postavljanja glave + trajanje prijenosa


podataka
Trajanje postavljanja glave = trajanje traženja staze + rotacijsko kašnjenje
Trajanje prijenosa po dataka = tranje čitanja djela ili cijele staze + trajanje premještanja glave
sa s taze na stazu

• Od čega se sastoji trajanje traženje staze?

Trajanje traženja staze sastoji se od 4 komponente: trajanje ubrzavanja ručice glave, kretanje
konstantnom brzinom, trajanje usporavanja, trajanje finog pozicioniranja.
• Koliko iznosi prosječno vrijeme traženja u odnosu na vrijeme koje je potrebno za
prijelaz preko svih staza?

Prosječno vrijeme traženja uzima vrijeme koje je potrebno za prijelaz preko trećine ukupnog
broja staza.

• Zbog čega nastaje rotacijsko kašnjenje i koliko ono iznosi?

Rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora
prije početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor.
Najlošiji slučaj – adresirani sektor je upravo prolazio ispod glave kad je ona prispjela na stazu
Najbolji slučaj – adresirani sektor upravo u trenutku postavljanja glave nailazi ispod glave.
Prosječno – uzimamo vrijednost tih dvaju krajnjih slučajeva i pretpostavljamo da je
prosječno rotacijsko kašnjenje jednako poloviti trajanja jednog okretaja diska – Tr/2.

• Čime je određena brzina prijenosa podataka s diska u spremnik diskovne upravljačke


jedinke?

Brzina prijenosa određena je brzinom kojom ispod glave za čitanje ili pisanje promiču bajtovi
sektora. (broj sektora na stazi pomnoži s brojem bajtova u sektoru i taj umnožak podijeli s
trajanjem jednog okretaja).

• brzinom kojom se disk okreće ‐ omega – ω


• gustoćom podataka (broj sektora/broj staza)

• Navesti sadržaj procesnog adresnog bloka?

Unutar bloka nalaze se sve informacije važne za odvijanje procesa, informacije povezane s
gospodarenjem spremničkim prostorom, tablice sektora u kojima je program procesa
pohranjen na disku, podaci o smještanju programa u radnom spremniku, kazaljke na druge
informacijske blokove i dr.

• Opisati postupak statičkog i dinamičkog dodjeljivanja spremnika.

STATIČKO – Particije su stalne veličine (fixed partition), program kada je dodjeljen jednoj
particiji uvijek je u toj particiji. Kad je izbačen iz radnog spremnika može se vratit jedino u tu
particiju. Javlja se problem fragmentacije (unutarnje i vanjske) i adresni prostor nikako nije
mogao biti veći od najveće particije fizičkog spremnika. (08‐50)
DINAMIČKO – Program izračunava adrese kao da kreće od 0 (logički adresni prostor),
smjestiti će se u radni spremnik koji započinje fizičkom adresom PA. U procesoru iza
adresnog međuregistra je jedno sklopovsko zbrajalo i uz njega registar u koji se upisuje
početna adresa fizičkog adresnog prostora. „reg“ se naziva bazni registar. Programi se slažu
jedan iza drugoga. Registar ograde (OG) se koristi da program ne bi zauzeo prostor susjednog
programa. Računa se kao OG=PA+VELIČINA PROGRAMA. Ovo rješenje je sklopovsko i
registar OG se provjerava prije ulaska u radni spremnik. Problem fragmentacije (vanjske),
nastanak rupa (holes). (08‐61)

• Navesti vrste fragmentacija prilikom statičkog dojdeljivanja spremnika.

Unutarnja fragmentacija (internal fragmentation) je način neiskorištenja radnog spremnika u


kojemu programi nisu iste veličine kao i particije.
Vanjska fragmentacija (external fragmentation) se javlja kada se svi procesi čiji programi su
smješteni na istoj particiji zablokiraju, te ostaje prazna cijela particija.
• Problem fragmentacije prilikom dinamičkog dojdeljivanja spremnika ne može se izbjeći,
ali se može ublažiti. Kako ?

Pri svakom oslobađanju nekog procesnog prostora novonastala rupa spaja s eventualnim
susjednim rupama u novu veću rupu.
Pri svakom novom zahtjevu za spremničkim prostorom potraži se najmanja rupa u koju se
može smjestiti novi program.

• Unatoč tome što se problem fragmentacije prilikom dinamičkog dodjeljivanja


spremnika može ublažiti, fragmentacija može postati prevelika. Što tada treba učiniti?

Tada se zaustave se sve dretve, presloži se sve programe u kompaktni prostor, i krene se dalje
(garbage collection).

• Knuthovo 50% pravilo

U stacionarnom stanju će se u spremniku naći broj rupa koji je jednak polovini broja punih
blokova.

• Kako treba podijeliti program u preklopnom načinu uporabe radnog spremnika.

Jedan programa se uvijek nalazi u radnom spremniku (osnovni dio), a drugi dijelovi
(preklopni dijelovi) na tvrdom disku (logički spremnik), te se tokom preklopa (overlay)
smještaju po potrebi u radni spremnik.

• Opisati logički i fizički adresni prostor?

• Logički adresni prostor je onaj prostor kojeg program može adresirati i određen je širinom
adresne
• sabirnice, te se dijeli na stranice, ovisno o arhitekturi.
• Fizički adresni prostor je prostor određen količinom memorije, tj. količinom raspoložive
memorije
• (RAM) I dijeli se na okvire, ovisno o RAM‐u.

• Mogu li stranice logičkog adresnog prostora biti smještene u okvire fizičkog spremnika
proizvoljnim redosljedom?

Da, mogu se u posebnoj se tablici vodi evidencija o tome u kojem je okviru smještena
pojedina stranica.

• Čemu služi tablica prevođenja? Od kojih se elemenata sastoji?

Tablica prevođenja je sastavni dio spremničkog međusklopa u kojoj se vodi evidencija o tome
u kojem je okviru smještena pojedina stranica (za više vidi TLB kod Intel x86).
Od redaka (za svaku stranicu jedan redak) u kojima se pohranjuje broj okvira u kojem se
nalazi (ako je in) te dodatnog bita prisutnosti za svaki redak]

• U čemu se razlikuju prekidi izazvani zbog promašaja stranice od ostalih vrsta prekida?

Prekid uslijed promašaja stanice dogodio se za vrijeme izvođenja instrukcije, a ne na kraju


instrukcije. Stoga se instrukcija koja je izazvala prekid mora ponoviti. Da bismo ponovili
instrukciju, moramo znati sadržaje svih registara prije izvođenja te instrukcije. Zbog toga
procesori predviđeni za ostvarivanje virtualnog spremnika imaju posebne skrivene kopije
registara u kojima se čuvaju nepromijenjene vrijednosti registara tijekom izvođenja cijele
instrukcije. Vrijednosti tih registara se obnavljaju tek na kraju izvođenja svake instrukcije.

• Opisati sklopovsku potporu za ostvarenje straničenja u Intel x86 arhitekturi. Što sadrži I
čemu služi TLB? Opisati tablicu prevođenja. Koliko puta je potrebno pristupiti radnom
spremniku ako se fizička adresa ne nalazi u TLB? A ako se nalazi?

Unutar procesora nalazi se jedan 32-bitni registr koji služi za smještanje kazaljke koja
pokazuje na tablicu prevođenja. TLB služi za spremanje cjelokupne dohvaćene fizičke adrese i
dijela logičke adrese, to jest omogućuje nama da ne moramo uzastopno dohvaćati jednu te istu
fizičku adresu ako je trebamo u njemu tražimo da li već postoji logička adresa, ako postoji,
onda je unutra i fizička adresa. Potrebno je pristupiti 3 puta, odnosno jednom ako se nalazi.

• Koju informaciju nosi bit čistoće? Gdje se on nalazi?

Nalazi se u tablici prevođenja.

• Čemu služi posmačni registar poviJesti?

Koristi se u praktičnim ostvarenjima izbacivanja stranica.


Registar povijesti (posmačni, shift registar) - izbacuje se ona stranica koja ima najmanji broj

• Opisati sljedeće strategije za izbacivanje stranica: FIFO, LRU, OPT, te satni algoritam.

• FIFO – stranica koja je najdulje u radnom spremniku


• LRU – stranica koje se najdalje u prošlosti nije koristila
• OPT – stranica koja se najdalje u budućnosti neće koristiti

LRU
- sve stranice u radnom spremniku razvrstane su u FIFO listu
- lista se obilazi kazaljkom koja kada dođe do kraja, vraća se na početak
- izbacuje se onaj okvir na koji pokazuje kazaljka i bit pristupa mu je jednak nuli a kazaljka se
pomiče za jedno mjesto u desno
- ako je bit pristupa ‘1’ tada se on resetira i kazaljka se pomiče za jedno mjesto u desno
Moguće izvesti samo na jednoprocesorskom sustavu!

• Budući da Intel x86 nemaju registra povijesti opisati strategiju izbacivanja stranica.

Izbacuje se stranica kojoj je bit pristupa = = 0, a ako je bit = = 1, bit čistoće = = 0.

• U koji se stanjima mogu nalaziti pojedini okviri tijekom rada?

A aktivnom stanju, u slobodnom stanju, u slobodnom stanju s pobrisanim sadržajem

9 POGLAVLJE

• Navesti sadržaj opisnika datoteke.

Ime, tip, lozina, ime vlasnika, prava pristupa, vrijeme stvaranja, vrijeme promjene, ime
zadnjeg korisnika, opisnik smještaja.

• Gdje su pohranjeni: opis smještaja datoteke, opisnik datoteke, datotečna tablica.


• Navesti sadržaj datotečne tablice.

1. broj sektora po disku


2. broj slobodnih sektora
3. Informacije o slobodnim sektorima
4. tablica opisnika pohranjenih datoteka

• Na koji se način može prikazati slobodni prostor na disku?

Binarnim prikazom, listom slobodnih blokova, lista slobodnih skupina blokova

• Opisati bitovni prikaza slobodnog prostora na disku.

U nizu bitova svakom sektoru, odnosno nakupini sektora pripada jedan bit čija je vrijednost
jednaka 1 kada je sektor, odnosno nakupina zauzeta ili jednaka 0 u suprotnom slučaju.

• Opisati prikaz slobodnog prostora u obliku liste slobodnih blokova.

Lista u kojoj svaki zapis sadrži početnu adresu skupine slobodnih sektora te broj sektora u toj
skupini.

• Opisati način smještaja datoteka u UNIX I NTFS datotečnim podsustavom.

UNIX – I‐node opisnik datoteke u kojemu se nalazi 13 kazaljki (10+1+1+1). Pristup do


datoteke:
prvih 10 sektora dohvaća se neposrednim kazaljkama (prvih 10) – 10 KB, 11.kazaljka
pokazuje na
sektor u kome se nalazi 256 KB. 12.pokazuje na 256x256, a 13. na 256x256x256 što ukupno
daje
16 M sektora, odnosno 16 GB podatka.

• NTFS – diskovni prostor je dodjeljuje po skupinama sektora (1, 2, 4, 8). LCN (logical cluster
• number) je redni broj skupine od početka do kraja diskovnog prostora predviđenog za smještaj
• datoteka. Datoteka je podijeljena na „stranice“ koje su jednake veličini okvira.

• Što je MTF? Gdje se smještaju male datoteke.

MFT – datoteka; glavna tablica datoteka (Master File Table), svaka datoteka (pa i MFT) ima
u toj datoteci zapis koji je opisnik datoteke

Male datoteke smještavaju se unutar MFT zapisa


BLICEVI
Upute za korištenje:
1. U oba retka ispod Grupa X upisati (ili kopirati) pitanje (iz skupa pitanja, naravno, bez crvenog odgovora) i to između praznine ( ) i dvotočke (:) .
2. Označiti sve (Ctrl+A).
3. Pritisnuti F9 i blicevi su spremni za ispis!

Grupa A
Parametar  predstavlja:
Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s parametrom 1/):

Grupa B
Prametar  predstavlja:
Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s parametrom 1/:

Grupa C
U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu:
Navesti Littleovo pravilo:

Grupa D
U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu:
Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2, 2), koliko iznosi parametar  u mješovitom sustavu:

Odabrana pitanja

Uz pretpostavku da se neki disk vrti neuobičajenom brzinom od 6000 okretaja u minuti, navesti rotacijsko kašnjenj tog diska u milisekundama TR/2=1/(100*2)=5ms
Navesti udio ukupnog broja sektora na stazi koji se uobičajeno uzima za trajanje rotacijskog kašnjenja (1/2 ili 1/3 ili 1/4 ili 1/5 ili nešto drugo) 1/2
Rotacijsko kašnjenje iznosi TR/2
Cilindar je skup staza istog radijusa
Navesti naziv „opisnika procesa“ procesni informacijski blok
Navesti vrste fragmentacija koje se javljaju prilikom statičkog dodjeljivanja spremnika unutarnja i vanjska fragmentacija
Navesti razlog zbog čega se javlja unutarnja fragmentacija prilikom statičkog dodjeljivanja spremnika zato što su programi manji od particija: razlika je unutarnja fragmentacija
Navesti naziv sklopa unutar procesora koji se brine nalazi li se tražena adresa u okvirima procesnog adresnog prostora ili ne (dovoljno je navesti samo kraticu) spremnički međusklop ili MMU

1. Uvod
Operacijski sustav je
Dogovoreni način komunikacije između dvije strane naziva se
Navesti jedan od zadataka operacijskog sustava

2. Model jednostavnog računala


Procesor i spremnik nisu izravno povezani, već se oni povezuju preko sabirnice.
Od koja se tri dijela sastoji sabirnica podatkovni, adresni i upravljački dio.
Poziv potprograma obavlja se jednom instrukcijom CALL. Što ta instrukcija radi (za jednostavan model procesora)?
Navesti dva registra koje svaki spremnik mora imati adresni registari podatkovni registar (ili registar sadržaja).
Osnovna svojstva i ponašanje procesora određeni su skupom instrukcija i skupom registara.
Procesor se može promatrati kao automat koji neprestano ponavlja jednu te istu petlju sve dok ima struje
Navesti broj bajtova podataka koji se mogu u 32/64-bitnoj arhitekturi odjednom prenijeti preko podatkovnog dijela sabirnice 4/8
Navesti broj bajtova adrese koji se mogu u 32/64-bitnoj arhitekturi odjednom prenijeti preko adresnog dijela sabirnice 4/8
U načelu se razmjena podataka između programa i potprograma može obaviti: prenošenjem vrijednosti parametara ili prenošenjem adrese (gdje su pohranjeni parametri)
Program je
Dretva je
Proces je

3. Obavljanje ulazno-izlaznih operacija, prekidni rad


Radno čekanje je petlja u kojoj se neprestano ispituje je li postavljena zastavica.
Navesti imena vodiča (žica) u protokolu "dvožičnog rukovanja" UPISATI, ZASTAVICA i čitanje PR.
Navesti naziv sklopa koji je s jedne strane prilagođen ulazno-izlaznoj napravi, a s druge strane sabirnici pristupni sklop.
Navesti registre pristupnog sklopa ulazno-izlazne naprave PR RS
Što procesor prvo napravi kada se dogodi prekid zabrani prekidanje.
Kada procesor provjerava je li prekidni signal postavljen na kraju svake instrukcije
Navesti kamo procesor pohranjuje programsko brojilo kada se dogodi prekid na sustavski stog
Kada se dogodi prekid procesor će u programsko brojilo pohraniti adresu potprograma za obradu prekida (ili prekidne rutine)
Kada se dogodi prekid, kamo procesor pohranjuje programsko brojilo? Odgovor
Kada se dogodi prekid procesor će u programsko brojilo pohraniti adresu prekidne rutine (ili POPP)
Pojam "obnoviti kontekst" znači obnoviti sadržaj svih registara
Pojam "pohraniti kontekst" znači pohraniti sadržaj svih registara
Na koji način prekidna rutina ustanovi koji je od pristupnih sklopova izazvao prekid uzastopnim citanjem registara stanja pristupnih sklopova
Tijekom obrade prekida prekidanje je zabranjeno (DA/NE)
Navesti registre pristupnog sklopa ulazno-izlazne naprave PR i RS
DMA je kratica koja na hrvatskom jeziku znači sklop s neposrednim pristupom spremniku
Signal prekida pristupni sklop sklopa s neposrednim pristupom spremniku ce generirati tek nakon što se prenese cijeli blok
Sklop s neposrednim pristupom spremniku ima sljedeća 4 registra (dovoljno je navesti samo kratice) PR, RS, AR i BR

Signali
Nabrojiti tko ili što sve može poslati signal procesu
Koje akcije može poduzeti proces kada primi signal
Navesti okvirni broj signala (5, 10, 30, 50, 100, 200 ili 1000)u UNIX okruženju 30
Koliki broj signala iste vrste može operacijski sustav zapamtiti za svaki proces
Kako proces može reagirati na signal (4 načina)?
Kojim naredbom iz komandne linije se može poslati signal nekom procesu?
Čemu služi funkcija sigaction?
Koji će se signal poslati procesu kada se pritisne Ctrl+C ?
Kojom funkcijom se određuje što će proces napraviti kada primi određeni signal? sigset
Kojom funkcijom se zaustavlja daljnje prihvaćanje nekog signala? sighold
Kojom funkcijom se ponovo omogućava prihvaćanje nekog signala nakon što je on zaustavljen sa sighold? sigrelse

Procesi i dretve
Koliko puta ispisani A, B i C? [ a) 2/4/6 b) 2/4/8 c) 2/2/2 ]
...
fork();
printf("A");
fork();
printf("B");
fork();
printf("C");
Koliko dretvi je ukupno u sustavu (na početku je jedna)? [ a) 4 b) 8 c) 12 ]
fork();
fork();
pthread_create(&id[0], NULL, fja_dretve, &arg);
pthread_create(&id[0], NULL, fja_dretve, &arg);

Koliko procesa ispisuje "!" ? [ a) 2 b) 3 c) 4 d) 6 ]


if(fork() == 0)
if(fork() != 0)
fork();
printf("!");

4. Međusobno isključivanje u višedretvenim sustavima


Na koje je dijelove podijeljen dretveni spremnički prostor instrukcije/podaci/stog
Na koje je dijelove podijeljen spremnički prostor procesa na dretvene podprostore i zajednički adresni prostor
Kako dretve nekog procesa mogu na najjednostavniji način međusobno komunicirati preko zajedničkog spremnika
Navesti uvjet nezavisnosti zadataka
Navesti strukture podataka koje koristi Dekkerov postupak međusobnog isključivanja int ZASTAVICA[2], PRAVO
Čemu služi Dekkerov postupak međusobnog isključivanja za međusobno isključivanje dvije dretve
Navesti strukture podataka koje koristi Petersonov postupak međusobnog isključivanja int ZASTAVICA[2], PRAVO
Navesti strukture podataka koje koristi Lamportov postupak međusobnog isključivanja intULAZ[N], BROJ[N]
Ako su dva zadatka nezavisna onda se oni mogu izvoditi i ...
Nedostaci algoritama međusobnog isključivanja koji koriste sklopovsku potporu u obliku instrukcija "ispitaj i postavi" (TAS) su:
Prvi pokušaj ostvarenja međusobnog isključivanja s jednom varijablom ZASTAVICA nije uspio jer u uzastopnim sabirničkim ciklusima dvije dretve na različitim procesorima mogu postaviti
varijablu zastavica
Jedan proces ima kodomenu koja je drugom procesu domena. Jesu li ta dva procesa nezavisna? DA / NE NE
Jesu li dva procesa koja imaju zajedničku kodomenu nezavisna? DA / NE NE
Jedan proces ima domenu koja je drugom procesu kodomena. Jesu li ta dva procesa zavisna? DA / NE DA
Jesu li dva procesa koja imaju zajedničku domenu nezavisna? DA / NE DA
Jedan od uvjeta koji mora zadovoljavati algoritam međusobnog isključivanja je i da dretva koja zastane u kritičnom odsječku ne smije spriječiti drugu dretvu da uđe u kritični odsječak? DA /
NE DA
Jedan od uvjeta koji mora zadovoljavati algoritam međusobnog isključivanja je i da dretva koja zastane u nekritičnom odsječku ne smije spriječiti drugu dretvu da uđe u kritični odsječak? DA
/ NE DA
Algoritam međusobnog isključivanja se temelji na činjenici da će dretve biti dovoljno brze da uspiju ući u kritični odsječak? DA / NE NE
Algoritam međusobnog isključivanja se temelji na činjenici da će dretve biti dovoljno spore da i drugim, sporijim, dretvama dopuste ulazak kritični odsječak? DA / NE NE

5. Jezgra operacijskog sustava

Navesti vrste prekida programski prekid, sklopovski prekid i prekid od sata


Ulazak u jezgru zbiva se kada se dogodi prekid
Ulazak u jezgru zbiva se kada se dogodi prekid i tada se poziva jezgrina funkcija
Navesti što rade jezgrine funkcije s opisnicima dretvi premještaju opsinike iz jedne liste u drugu
Od čega se sastoji jezgra operacijskog sustava struktura podataka jezge i jezgrinih funkcija
Izlazak iz jezgresvodi se na pokretanje jedne od dretvi
Koja su blokirana stanja dretvi
Čemu služi binarni semafor
Struktura podatak binarnog semafora sastoji se od kazaljke i varijable
Struktura podatak općeg semafora sastoji se od kazaljke i varijable
Navesti jezgrine funkcije binarnog semafora
Struktura podatak brojačkog semafora sastoji se od kazaljke i varijable
Ako je semafor neprolazan, dretva koja ga ispituje bit će premještena u red semafora
Navesti četiri načina blokiranja dretvi
Osim što dretva može biti blokirana, navesti preostala tri moguća stanja dretve
U jednostavnom modelu jezgre s predavanja jezgrina funkcija mora na svom početku najprije
Ako se pozove j_fja Postavi_BSEM(i) kada je semafor neprolazan i u redu BSEM(i) se nalaze dvije dretve tada će se dogoditi sljedeće premjestit će se prva dretva iz reda BSEM(i) u red
Pripravne_D
Ako se pozove j_fja Postavi_BSEM(i) kada je semafor neprolazan i u redu BSEM(i) nema ni jedne dretve tada će se dogoditi sljedeće BSEM(i).v=1;
Ako se pozove j_fja Postavi_OSEM(i) kada je semafor neprolazan i u redu OSEM(i) se nalaze tri dretve tada će se dogoditi sljedeće premjestit će se prva dretva iz reda OSEM(i) u red
Pripravne_D
Ako se pozove j_fja Postavi_OS(i) kada je semafor neprolazan i u redu OS(i) nema niti jedne dretve tada će se dogoditi sljedeće OS(i).v++;
Ako se pozove j_fja Postavi_OSEM(i) kada je semafor neprolazan i u redu OSEM(i) nema niti jedne dretve tada će se dogoditi sljedeće OSEM(i).v++;

6. Međudretvena komunikacija i koncepcija monitora

Navesti broj binarnih semafora i navesti broj općih semafora koji su potrebni za ispravnu sinkronizaciju jednog potrošača i jednog proizvođača preko ograničenog međuspremnika 2 opća 0 bin
Navesti broj binarnih semafora i navesti broj općih semafora koji su potrebni za ispravnu sinkronizaciju jednog potrošača i dva proizvođača preko ograničenog međuspremnika 2 opća 1 bin
Navesti broj binarnih semafora i navesti broj općih semafora koji su potrebni za ispravnu sinkronizaciju tri potrošača i jednog proizvođača preko ograničenog međuspremnika 2 opća 1 bin
Navesti broj binarnih semafora i navesti broj općih semafora koji su potrebni za ispravnu sinkronizaciju četiri potrošača i sedam proizvođača preko ograničenog međuspremnika 2 opća 2 bin
Navesti strukture podataka monitora
Nabrojiti jezgrine funkcije za ostvarenje monitora
Funkcija Uđi_u_monitor se obavlja u korisničkom / jezgrinom (zaokružiti) načinu rada
Monitorske funkcije se obavljaju u korisničkom / jezgrinom (zaokružiti) načinu rada i one moraju biti zaštićene (navesti sinkronizacijski mehanizam čime su monitorske funkcije zaštićene)
Za ispravnu sinkronizaciju proizvođača i potrošača koristi se opći semafor. Zaokružite kakav opći semafor mora u tom slučaju biti a) Dijkstrin opći semafor ili b) brojački semafor ili c)
svejedno je koji semafor, samo da je opći.

7. Analiza vremenski svojstava računalnog sustava


Parametar  predstavlja
Prametar  predstavlja
Parametar 1/ predstavlja
Prametar 1/ predstavlja
Parametar  predstavlja
U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu
U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu
Navesti Littleovo pravilo
U kojem su odnosu prosječni broj poslova n i prosječno trajanje zadržavanja posla u sustavu T
Koje vrijednosti može poprimiti parametar  u nedeterminističkom sustavu [0,1)
Zašto parametar  u nedeterminističkom sustavu ne smije poprimiti vrijednost 1 jer bi trebalo beskonačno memorije, a prosječno trajanje zadržavanja posla u sustavu bi bilo jako veliko
Koliko iznosi vjerojatnost da se broj poslova poveća za jedan u idućih t vremena u sustavu u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe
eksponencijalnoj razdiobi s parametrom 1/ t
Koliko iznosi vjerojatnost da se broj poslova smanji za jedan u idućih t vremena u sustavu u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe
eksponencijalnoj razdiobi s parametrom 1/ t
Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s parametrom 1/)
Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s parametrom 1/
Koliko iznosi prosječno vrijeme zadržavanja poslova u sustavu u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s
parametrom 1/
Koliko iznosi vjerojatnost prepunjenja međuspremnika s N poslova u sustavu u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj
razdiobi s parametrom 1/
Koja je vjerojatnost da ostane 0 poslova u sustavu u kojem dolasci podliježu Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s parametrom 1/ 1-
t
Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2, 2), koliko iznosi parametar  u mješovitom sustavu =1+2
Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2, 2), koliko iznosi parametar  u mješovitom sustavu =1/1+2/2
Navesti osnovne načine dodjeljiivanja procesora dretvama po redu prispiće, kružno posluživanje

8. Gospodarenje spremničkim prostorom

Tipična brzina okretaja ploče današnjih diskova iznosi 7200 ok/s 720 ok/s 7200 ok/min 720 ok/min (zaokružiti točan odgovor)
Uz pretpostavku da se neki disk vrti neuobičajenom brzinom od 6000 okretaja u minuti, navesti rotacijsko kašnjenj tog diska u milisekundama TR/2=1/(100*2)=5ms
Ako rotacijsko kašnjenje nekog diska iznosi 6ms, a trajanje postavljanja glave 10ms, navesti koliko traje traženje staze 10-6=4ms
Ako rotacijsko kašnjenje nekog diska iznosi 5ms, a trajanje traženje staze 7ms, navesti koliko traje postavljanje glave 5+7=12ms
Navesti udio ukupnog broja staza koji se uobičajeno uzima za vrijeme traženja staze (1/2 ili 1/3 ili 1/4 ili 1/5 ili nešto drugo) 1/3
Navesti udio ukupnog broja sektora na stazi koji se uobičajeno uzima za trajanje rotacijskog kašnjenja (1/2 ili 1/3 ili 1/4 ili 1/5 ili nešto drugo) 1/2
Jedinstvena logička adresa sektora može se preračunati u položaj sektora na disku koji je određen rednim brojem a) rednog broja ploče
b) rednog broja staze na ploči
c) rednog broja sektora na stazi
Rotacijsko kašnjenje iznosi TR/2
Cilindar je skup staza istog radijusa
Podaci, koji se čitaju s tvrdog diska, prvo se pohranjuju u međuspremnik diska
Broj okretaja u jedinici vremnena današnjih diskova uobičajeno iznosi (više odgovora je ispravno, navesti jednu vrijednost i to u okretajima u minuti) 5400
Ako se glava tvrdog diska pomiče samo za nekoliko staza, tada se trajanje traženja staze uglavnom svodi samo na premještanje glave sa staze na stazu
Navesti naziv „opisnika procesa“ procesni informacijski blok
Opisnik virtualnog adresnog prostora pohranjen je u sustavskom dijelu spremnika i to u strukturi podataka jezgre operacijskog sustava koja se naziva
Navesti vrste fragmentacija koje se javljaju prilikom statičkog dodjeljivanja spremnika unutarnja i vanjska fragmentacija
Navesti razlog zbog čega se javlja unutarnja fragmentacija prilikom statičkog dodjeljivanja spremnika zato što su programi manji od particija: razlika je unutarnja fragmentacija
Vanjska fragmentacija prilikom statičkog dodjeljivanja spremnika javlja se zbog toga što su Svi programi koji su smješteni u određenu particiju
Blokirani, a drugi koji čekaju nisu pripremljeni za izvođenje u toj particiji.
Navestinaziv sklopa unutar procesora koji se brine nalazi li se tražena adresa u okvirima procesnog adresnog prostora ili ne (dovoljno je navesti samo kraticu) spremnički međusklop ili MMU
Koliko je u stacionarnom stanju u spremniku rupa ako se u njemu nalazi 100 punih blokova 50
Koliko je u stacionarnom stanju u spremniku punih blokova ako se u njemu nalazi 100 rupa 200
Navesti Knuthovo pedesetpostotno pravilo. U stacionarnom stanju broj rupa jednak je polovici broja punih blokova.
Problem fragmentacije prilikom dinamičkog dodjeljivanja spremnika se nikako ne može izbjeći, ali se može ublažiti. Navesti kako. Tako da se rupe održavaju što većima kako bi se u njih
mogli smjestiti novi programi.
Logički adresni prostor dijeli se na stranice.
Fizički adresni prostor dijeli se na okvire
Navesti dva dijela na koje se dijeli logička adresa broja segmenta i offseta
Izračunati trajanje postavljanja glave (prosječno) za disk koji se vrti sa 6000 okr/min, ima 9000 staza te vrijeme traženja staze iznosi t=10+0,005*D (D - udaljenost u stazama koje glava treba
prijeći). t = TR/2 + (10+0,005*9000/3) = 1/w / 2 + (10+15) = 1000ms / 100 / 2 + 25 = 5+25 = 30 ms
Izračunati vrijeme čitanja jedne staze (uz k=1) za disk koji se vrti sa 6000 okr/min, uz pretpostavku vremena postavljanja glave od 7 ms. t = tseek + TR = 7 + 1000/100 = 17 ms
Izračunati vrijeme čitanja jedne staze (uz k=3) za disk koji se vrti sa 6000 okr/min, uz pretpostavku vremena postavljanja glave od 7 ms. t = tseek + TR * k = 7 + 3 * 10 = 37 ms
Ako je vrijeme čitanja jednog sektora veličine 1000 B jednako ts=0,05 ms, a brzina prijenosa podataka s diska u radni spremnik 100 Mbita/s, koliki mora biti faktor preplitanja (uz
pretpostavku da se po čitanju sektora on odmah mora prenijeti u radni spremnik)? tprijenos=1000*8 / 100000000 = 8/100000 = 0,08 ms; tprijenos/ts = 0,08/0,05 = 1,6 => k = 3
Kod statičkog upravljanja spremnikom programi su na pomoćnom spremniku pripremljeni u apsolutnim ili relativnim adresama ? apsolutnim
Kod dinamičkog upravljanja spremnikom programi su na pomoćnom spremniku pripremljeni u apsolutnim ili relativnim adresama ? relativnim
Kod upravljanja spremnikom straničenjem programi su na pomoćnom spremniku pripremljeni u apsolutnim ili relativnim adresama ? relativnim
Knuthovo 50% pravilo odnosi se na statičko ili dinamičko upravljanje spremnikom? dinamičko

9. Datotečni podsustav

Ako je veličina kazaljke u nekom Unix datotečnom sustavu 4 bita, a veličina bloka 4KB, kolika je maksimalna veličina sveska za taj datotečni sustav u KB 24 x 4 KB = 64 KB
Navesti barem tri podatka smještena u opisnik datoteke
Navesti barem dva podatka smještena u datotečnoj tablici
Ako je veličina kazaljke u nekom Unix datotečnom sustavu 5 bita, a veličina bloka 2KB, kolika je maksimalna veličina sveska za taj datotečni sustav u KB 25 x 2 KB = 64 KB
Minimalna jedinica adresiranja na datotečnom sustavu je
Ako je veličina kazaljke u nekom Unix datotečnom sustavu 6 bita, a veličina bloka 1KB, kolika je maksimalna veličina sveska za taj datotečni sustav u KB: 26 x 1 KB = 64 KB
Ako je veličina kazaljke u nekom Unix datotečnom sustavu 4 bita, a veličina bloka 8KB, kolika je maksimalna veličina sveska za taj datotečni sustav u KB: 24 x 8KB = 128 KB
Navesti dvije moguće podatkovne strukture za vođenje evidencije o slobodnom prostoru na disku

10. Komunikacija između procesa

Poruka je
Poruka se ne šalje izravno drugom procesu već se šalje u red poruka.
Na koji način proces može znati da je poruka koja se nalazi u redu poruka upućena baš njemu prema tipu poruke.
Red poruka može poslužiti za sinkronizaciju jer se ponaša kao semafor.
Ako red poruka koristimo kao sinkronizacijski mehanizam, koja je funkcija za rad s porukama istovjetna funkciji Postavi_semafor stavljanje u red.
Ako red poruka koristimo kao sinkronizacijski mehanizam, koja je funkcija za rad s porukama istovjetna funkciji Čekaj_semafor uzimanje iz reda.
Okolina (environment) je niz znakova oblika "IME=vrijednost"
Nabroji barem tri korisničke ljuske sh, csh, bash, zsh, ksh, tcsh, ssh, rsh...
Varijable okoline mogu se podijeliti u sljedeće dvije skupine varijable okoline koje se predaju programima prilkom pokretanja i one koje poznaje samo ljuska

Koje informacije u prijenosnom protokolu (TCP) se dodaju bloku podataka? rbr i paritet (zaštitni bajtovi)
Koje informacije u Internet protokolu (IP) se dodaju bloku podataka? adrese ishodišta i odrešta
Prilikom poziva udaljene procedure razmjena ulaznih podataka i rezultata se obavlja prenošenjem vrijednosti ili adresa? (zaokružiti)
Kako se zove mehanizam unutar nekog (jednog) računala koji broji događaje? Lokalni logički sat
Prema pravilima globalnog logičkog sata, na koju vrijednost proces Pi postavlja lokalni logički sat Ci kada primi poruku zahtjev(j, T(j))? Ci=max{Ci, Tj}+1

Kojom vrstom cjevovoda je moguće povezati već stvorene procese imenovanim cjevovodima
Navesti svojstva datoteke koja je imenovani cjevovod (dovoljno je navesti dva svojstva)
S koliko je opisnika opisan obični cjevovod 2
S koliko je opisnika opisan imenovani cjevovod 1
Proces P1 koji želi komunicirati cjevovodom s procesom P2 (koji još nije stvoren) mora najprije stvoriti cjevovod
Navesti naredbu iz komandne linije kojom se stvara imenovani cjevovod mknod
U postupku povezivanja cjevovoda na standardni ulaz treba zatvoriti standardni ulaz ili standardni izlaz STD_IN
U postupku povezivanja cjevovoda na standardni izlaz treba zatvoriti standardni ulaz ili standardni izlaz STD_OUT
Procesi imaju namjerno razdvojene adresne prostore zato da si jedni drugima ne smetaju
Nabrojite načine komunikacije između procesa
Protokolni slog je skup protokola.
Navedite četiri razine protokolnog sloga na Internetu
Na kakav način se obavlja razmjena ulaznih podataka i rezultata kod poziva udaljenih procedura (u usporedbi s pozivom potprograma)
Navedite tri osnovna načina komunikacije između procesa u raspodijeljenim sustavima poruke, RPC i raspodijeljeni zajednički adresni prostor.
Lokalni logički sat ponaša se kao brojilo.
Kada prema pravilima globalnog logičkog sata proces povećava svoj logički sat Između svaka svoja dva događaja.
Prema pravilima globalnog logičkog sata kada proces šalje poruku on uz nju pridodaje vremensku oznaku.
Na koju će vrijednost postaviti lokalni logički sat proces ako primi poruku s vremenskom oznakom 178, a vrijednost njegovog lokalnog logičkog sata neka je 177 179.
Navesti broj poruka koji treba razmijeniti u sustavi s N računala da bi proces na jednom računalu mogao ući u kritični odsječak ako se koristi raspodijeljeni Lamportov protokol 3x(N-1).
Navesti broj poruka koji treba razmijeniti u sustavi s N računala da bi proces na jednom računalu mogao ući u kritični odsječak ako se koristi protokol Ricarta i Agrawala 2x(N-1).
Zašto procesi koji nisu u srodstvu ne mogu komunicirati cjevovodom
Čitanje iz cjevovoda je za razliku od čitanja iz datoteke destruktivno.

11. Sigurnost računalnih sustava


Navesti tri sigurnosna zahtjeva (na predavanjima ih je navedeno šest)
Navesti tri sigurnosne prijetnje (na predavanjima ih je navedeno šest)
Navesti tri (od četiri) osnovna sigurnosna zahtjeva autentičnost, tajnost, neporecivost, integritet
Uz osnovne sigurnosne zahtjeve postavljaju se i dva dodatna zahtjeva. Navesti barem jedan od ta dva dodatna sigurnosna zahtjeva raspoloživost i kontrola pristupa
Koja se vrsta napada na sigurnost sprječava ako se osigura autentičnost lažno predstavljanje
Koja se vrsta napada na sigurnost sprječava ako se osigura integritet modifikacija paketa
Koja se vrsta napada na sigurnost sprječava ako se osigura tajnost prisluškivanje
Kerckhoffov princip kaže da kriptosustav mora biti siguran i onda kada su sve informacije o kriptosustavu javno poznate, osim
Autentifikacija je
Autorizacija je
Jednokratna bilježnica (OTP) je postupak kriptiranja u kojem se koriste sljedeće logičke funkcije XOR
DES kriptosustav prije samog kriptiranja generira ________ (navesti broj) podključeva veličine _________ bajtova. 16 48bita/8=6bajta
Navesti veličinu bloka podataka (u bajtovima) koji se kriptira DES/3DES/IDEA/AES kriptosustavom 8/8/8/16
Navesti broj podključeva koji generira DES/3DES/IDEA/AES-128 kriptosustav prije samog postupka kriptiranja 16/16/52/11
Navesti veličinu podključa (u bitovima) kojeg koristi DES/3DES/IDEA/AES kriptosustav 48/48/16/128
Broj koraka u kriptosustavu AES ovisi o veličini ključa
Navesti dva načina kriptiranja koji su pogodni za kriptiranje toka podataka (dovoljno je navesti samo kratice) OFB i CTR
Navesti dva načina kriptiranja u kojima se kriptirani tekst izravno prenosi u idući korak kriptiranja (dovoljno je navesti samo kratice) CBC i CFB
Navesti dva načina kriptiranja koji oponašaju jednokratnu bilježnicu tako da stvaraju ključ proizvoljne duljine koji se samo zbraja sa čistim tekstom (dovoljno je navesti samo kratice) OFB i
CTR
Navesti broj izgubljenih blokova ako se dogodi greška u jednom bitu kriptiranog teksta kada se koristi ECB/CBC način kriptiranja 1/2
Koliko iznosi Eulerova phi funkcija (15/21/35/33/55)= 8/12/24/20/40 (16)={1,3,5,7,9,11,13,15}=8 (14)={1,3,5,7,9,11,13}=7 (18)={1,5,7,11,13,15,17}=7
Modularno potenciranje služi kako bi se izračunao sljedeći izraz ba mod n
Sigurnost RSA kriptosustava zasniva se na nemogućnosti faktoriziranja (rastava na proste faktore) velikih brojeva
U nekom RSA kriptosustavu generiran je par ključeva: javni ključ (e, n ) i privatni ključ (d, n ). Prije kriptiranja jasni tekst se mora podijeliti na blokove veličine manje od n (veličina bloka
mora biti takva da broj zapisan u bloku mora biti manji od n)
U nekom RSA kriptosustavu generiran je par ključeva: javni ključ (e, n ) i privatni ključ (d, n ). Broj e je odabran tako da vrijedi e<(n) i nzd[e, (n)]=1
U nekom RSA kriptosustavu generiran je par ključeva: javni ključ (e, n ) i privatni ključ (d, n ). Broj d je odabran tako da vrijedi d <(n) i ed1 (mod (n)) - tj. ed = k x (n) + 1
Navesti sigurnosne zahtjeve koje osigurava digitalna omotnica tajnost
Navesti sigurnosne zahtjeve koje osigurava digitalni potpis neporecivost, autentičnost, integritet
Navesti sigurnosne zahtjeve koje osigurava digitalni pečat neporecivost, autentičnost, integritet, tajnost
Nonce je slučajno generirani broj koji se koristi samo jednom (number used only once)
Heurističko ispitivanje po Milleru - Rabinu će utvrditi složenost kada se ustanovi da je za dani n Fermatov teorem je / nije (zaokružiti) zadovoljen ili da za dani n postoji / ne postoji
(zaokružiti) netrivijalni drugi korijen od 1 mod n
Ako se heurističkim ispitivanjem po Milleru - Rabinu utvrdi složenost za dani n , tada n je sigurno / nije sigurno (zaokružiti) složen broj
Ako se heurističkim ispitivanjem po Milleru - Rabinu utvrdi za dani n da je prost, tada n je sigurno / nije sigurno (zaokružiti) prost broj
Ako se heurističkim ispitivanjem po Milleru - Rabinu utvrdi za dani n da je prost, tada n ipak ne mora biti prost broj zato što postoje složeni brojevi za koje vrijedi Fermatov teorem. Srećom,
oni su rijetki, a nazivaju se Carmichelovi brojevi
Neka datoteka je veličine 1284 bajtova se kriptira AES kriptosustavom. Koliko bajtova je velika kriptirana datoteka? Datoteka se dijeli na dijelove od 128 bita = 16 bajtova. Odgovor: 1296 (taj
ili prvi veći broj djeljiv sa 16)
Neka Ana i Branko imaju svaki svoj par RSA ključeva: Ana: PA i SA te Branko PB i SB (P je oznaka za javni, a S za privatni ključ). Ako Branko želi Ani poslati kratku poruku koju će samo Ana
moći dekriptirati, on će ju kriptirati sljedećim ključem PA
Digitalna omotnica =
Digitalni potpis =
Elektronički potpis je
Funkcija za izračunavanje sažetka poruke SHA-1 generira sažetak duljine (navesti broj bitova) 160
Funkcija sažimanja SHA-1 dijeli ulaznu poruku na jednake dijelove veličine (navesti broj bitova) 512
Funkcija za izračunavanje sažetka poruke SHA-1 obavlja se u (navesti broj krugova i broj koraka u svakom krugu) 4x20
Nonce je
Navesti broj poruka u protokolu jednostrane autentifikacije u zatvorenom asimetričnom kriptosustavu 5/5
Navesti broj poruka u protokolu raspodjele ključev u zatvorenom asimetričnom kriptosustavu 7/5
Navesti broj poruka u protokolu raspodjele ključeva u zatvorenom simetričnom kriptosustavu podijeljenog na područja 6
Navesti ime poslužitelja (treće strane kojoj svi vjeruju) u sustavu gdje se koristi protokol jednostrane autentifikacije u zatvorenom asimetričnom kriptosustavu (uz kraticu navesti i puno ime)
AS/AS
Navesti ime poslužitelja (treće strane kojoj svi vjeruju) u sustavu raspodjelu ključeva u zatvorenom asimetričnom kriptosustavu (uz kraticu navesti i puno ime) KDC/PKM
U Diffie-Hellmanovom postupku sudionici u komunikaciji se unaprijed slože o dva vrlo velika broja n i g za koje vrijedi
Neka Ana i Branko koriste Diffie-Hellmanov postupak za razmjenu tajnog ključa. Nakon što su Ana i Branko dogovorili brojeve p i g , Ana će Branku poslati poruku sljedećeg sadržaja
U Kerberos protokolu prvu poruku šalje proces prijave nakon što je korisnik utipkao svoje ime (login) i ona glasi M1=
Navesti imena listi koje se mogu koristiti u postupku autorizacije u operacijskom sustavu lista dozvola za pristup objektima i lista prava pristupa objektu
Kerberos sustav sastoji se od sljedećih čvorova čvor klijenta, čvor poslužitelja i čvor Kerberos poslužitelja
U Kerberos protokolu autentifikator se sastoji od sljedećih podataka

12. Višediskovni zalihosni sustavi

Pouzdanost R(t) je vjerojatnost neke komponente da je u trenutku t u ispravnom stanju.


Nepouzdanost F(t) je vjerojatnost neke komponente da je u trenutku t neispravna.
Navesti vrste pojasne organizacije višediskovnog adresnog prostora sitnozrnata i krupnozrnata
Brzina posluživanja zahtjeva u sitnozrnatoj organizaciji trebala bi se smanjiti za faktor koji je jednak broju diskova u polju
U krupno zrnatoj organizaciji jedan pojas sastoji se od nakupine sektora
Neka se polje diskova sastoji od N diskova i neka su n(t) broj ispravnih diskova a m(t) broj neispravnih diskova u trenutku t . U tom slučaju pouzdanost R(t) = n(t)/N
Neka se polje diskova sastoji od N diskova i neka su n(t) broj ispravnih diskova a m(t) broj neispravnih diskova u trenutku t . U tom slučaju nepouzdanost F(t) = m(t)/N
Izraziti MTTF kao funkciju brzine kvarenja r(t)=konst.=: MTTF = 1/
Izraziti MTTR kao funkciju gustoće popravaka g(t)=konst.= : MTTR = 1/
U kojem su odnosu pouzdanost R(t) i raspoloživost A(t)? Odgovor: R(t)<= A(t)
U kojem su odnosu nepouzdanost F(t) i neraspoloživost Q(t)? Odgovor: Q(t)<= F(t)
:
:
___________________________________________ __________________ Grupa A : ___________________________________________ __________________ Grupa A
Prezime, ime Datum : Prezime, ime Datum
:
:
1. Parametar  predstavlja: : 1. Parametar  predstavlja:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu : 2. Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu
Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj : Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj
razdiobi s parametrom 1/): : razdiobi s parametrom 1/):
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:

:
:
___________________________________________ __________________ Grupa A : ___________________________________________ __________________ Grupa A
Prezime, ime Datum : Prezime, ime Datum
:
:
1. Parametar  predstavlja: : 1. Parametar  predstavlja:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu : 2. Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu
Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj : Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj
razdiobi s parametrom 1/): : razdiobi s parametrom 1/):
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:

:
:
___________________________________________ __________________ Grupa A : ___________________________________________ __________________ Grupa A
Prezime, ime Datum : Prezime, ime Datum
:
:
1. Parametar  predstavlja: : 1. Parametar  predstavlja:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu : 2. Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu
Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj : Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj
razdiobi s parametrom 1/): : razdiobi s parametrom 1/):
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:

:
:
___________________________________________ __________________ Grupa A : ___________________________________________ __________________ Grupa A
Prezime, ime Datum : Prezime, ime Datum
:
:
1. Parametar  predstavlja: : 1. Parametar  predstavlja:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu : 2. Kolika je vjerojatnost da u sustavu ima i poslova (u kojem dolasci podliježu
Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj : Poissonovoj razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj
razdiobi s parametrom 1/): : razdiobi s parametrom 1/):
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:
:
:
___________________________________________ __________________ Grupa B : ___________________________________________ __________________ Grupa B
Prezime, ime Datum : Prezime, ime Datum
:
:
1. Prametar  predstavlja: : 1. Prametar  predstavlja:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj : 2. Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj
razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s : razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s
parametrom 1/: : parametrom 1/:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:

:
:
___________________________________________ __________________ Grupa B : ___________________________________________ __________________ Grupa B
Prezime, ime Datum : Prezime, ime Datum
:
:
1. Prametar  predstavlja: : 1. Prametar  predstavlja:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj : 2. Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj
razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s : razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s
parametrom 1/: : parametrom 1/:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:

:
:
___________________________________________ __________________ Grupa B : ___________________________________________ __________________ Grupa B
Prezime, ime Datum : Prezime, ime Datum
:
:
1. Prametar  predstavlja: : 1. Prametar  predstavlja:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj : 2. Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj
razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s : razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s
parametrom 1/: : parametrom 1/:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:

:
:
___________________________________________ __________________ Grupa B : ___________________________________________ __________________ Grupa B
Prezime, ime Datum : Prezime, ime Datum
:
:
1. Prametar  predstavlja: : 1. Prametar  predstavlja:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj : 2. Koliki je prosječni broj poslova u sustavu u kojem dolasci podliježu Poissonovoj
razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s : razdiobi s parametrom , a trajanje obrade podliježe eksponencijalnoj razdiobi s
parametrom 1/: : parametrom 1/:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:
:
:
___________________________________________ __________________ Grupa C : ___________________________________________ __________________ Grupa C
Prezime, ime Datum : Prezime, ime Datum
:
:
1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova : 1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova
koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu: : koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Navesti Littleovo pravilo: : 2. Navesti Littleovo pravilo:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:
:

:
:
___________________________________________ __________________ Grupa C : ___________________________________________ __________________ Grupa C
Prezime, ime Datum : Prezime, ime Datum
:
:
1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova : 1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova
koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu: : koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Navesti Littleovo pravilo: : 2. Navesti Littleovo pravilo:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:
:

:
:
___________________________________________ __________________ Grupa C : ___________________________________________ __________________ Grupa C
Prezime, ime Datum : Prezime, ime Datum
:
:
1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova : 1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova
koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu: : koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Navesti Littleovo pravilo: : 2. Navesti Littleovo pravilo:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:
:

:
:
___________________________________________ __________________ Grupa C : ___________________________________________ __________________ Grupa C
Prezime, ime Datum : Prezime, ime Datum
:
:
1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova : 1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova
koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu: : koje poslužitelj može obaviti u jedinici vremena u determinističkom sustavu:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
2. Navesti Littleovo pravilo: : 2. Navesti Littleovo pravilo:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:
:
:
:
:
:
___________________________________________ __________________ Grupa D : ___________________________________________ __________________ Grupa D
Prezime, ime Datum : Prezime, ime Datum
:
:
1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova : 1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova
koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu: : koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu:
:
____________________________________________________________________ : ____________________________________________________________________
_ : _
:
____________________________________________________________________ : ____________________________________________________________________
_ : _
:
2. Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2, : 2. Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2,
2), koliko iznosi parametar  u mješovitom sustavu: : 2), koliko iznosi parametar  u mješovitom sustavu:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:

:
:
___________________________________________ __________________ Grupa D : ___________________________________________ __________________ Grupa D
Prezime, ime Datum : Prezime, ime Datum
:
:
1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova : 1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova
koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu: : koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu:
:
____________________________________________________________________ : _____________________________________________________________________
_ :
: _____________________________________________________________________
____________________________________________________________________ :
_ : 2. Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2,
: 2), koliko iznosi parametar  u mješovitom sustavu:
2. Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2, :
2), koliko iznosi parametar  u mješovitom sustavu: : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ :
:
:

:
:
___________________________________________ __________________ Grupa D : ___________________________________________ __________________ Grupa D
Prezime, ime Datum : Prezime, ime Datum
:
:
1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova : 1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova
koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu: : koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu:
:
____________________________________________________________________ : ____________________________________________________________________
_ : _
:
____________________________________________________________________ : ____________________________________________________________________
_ : _
:
2. Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2, : 2. Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2,
2), koliko iznosi parametar  u mješovitom sustavu: : 2), koliko iznosi parametar  u mješovitom sustavu:
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
:

:
:
___________________________________________ __________________ Grupa D : ___________________________________________ __________________ Grupa D
Prezime, ime Datum : Prezime, ime Datum
:
:
1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova : 1. U kojem su odnosu broj dolazaka novih poslova u jedinici vremena i broj poslova
koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu: : koje poslužitelj može obaviti u jedinici vremena u nedeterminističkom sustavu:
:
____________________________________________________________________ : _____________________________________________________________________
_ :
: _____________________________________________________________________
____________________________________________________________________ :
_ : 2. Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2,
: 2), koliko iznosi parametar  u mješovitom sustavu:
2. Ako kratki poslovi imaju parametre (1, 1), a dugi poslovi imaju parametre (2, :
2), koliko iznosi parametar  u mješovitom sustavu: : ____________________________________________________________________
:
____________________________________________________________________ : ____________________________________________________________________
:
____________________________________________________________________ :
:
:
1. Što je OS?

OS je skup osnovnih programa koji omogućuju provođenje radnih zahvata na računalu, tj. izvođenje operacija
računala.

2. Koji su zadaci operacijskog sustava?

• Olakšavanje uporabe računala,

• Djelotvorno iskorištavanje svih dijelova računala,

• Višeprogramski i višezadaćni rad.

3. Navesti osnovne dijelove operacijskog sustava.

• API(sučelje primjenski programa)


• GUI (korisničko sučelje)
• procesi i dretve (sinkronizacija, raspoređivač poslova, komunikacijski mehanizmi)
• datotečni podsustav
• upravljanje memorijom
• upravljanje ulazno-izlaznim jedinicama
• mrežni podsustav
• sigurnosni podsustav

4. Što je sučelje?

5. Što je sučelje primjenskih programa (API)?


1. Čime su određena svojstva i ponašanje procesora?

Svojstva i ponašanje procesora su određena skupom registara i skupom instrukcija

2. Navesti osnovni skup registara procesora.

Osnovni registri procesora su:


• adresni međuregistar
• podatkovni međuregistar
• programsko brojilo(PC)
• kazaljka stoga
• registar stanja
• skup registara opće namjene (R0, R1, ..., Rk)
• instrukcijski registar.

3. Što je sabirnički ciklus?

Jedna transakcija između glavne memorije i procesora.

4. U pseudokodu napisati što procesor trajno radi.

Ponavljati {

Dohvatiti iz spremnika instrukciju na koju pokazuje programsko brojilo;

Dekodirati instrukciju, odrediti operaciju koju treba izvesti;

Povećati sadržaj programskog brojila tako da pokazuje na sljedeću instrukciju;

Odrediti odakle dolaze operandi i gdje se pohranjuje rezultat;

Operande dovesti na aritmetičko-logičku jedinicu, izvesti zadanu operaciju;

Pohraniti rezultat u odredište;

} dok je (procesor uključen);

5. Što je kontekst dretve?

Sadržaj registara procesora jedne dretve.

6. Što se zbiva pri izvođenju instrukcije za poziv potprograma?

Ako je (prekidni signal postavljen) {

1. onemogućiti daljnje prekidanje;

2. prebaciti adresiranje u sustavski adresni prostor;

3. aktivirati sustavsku kazaljku stoga;

- 2 i 3 – prebaciti u sustavski način rada

4. pohraniti programsko brojilo na sustavski stog;

5. staviti u programsko brojilo adresu potprograma za obradu prekida;


}

7. Definirati osnovne pojmove: program, proces, dretva.

Program je statični niz instrukcija koji se nalazi u spremniku.

Proces je sve ono što je potrebno da bi se program mogao izvoditi. Skup računalnih resursa koji omogućava rad
programa.

Dretva je niz instrukcija u izvođenju.

8. Kako je moguć višeprogramski rad na jednoprocesorskom računalu?

Na način da dretve rade naizmjenično, u kratkim vremenskim razmacima, što stvara dojam višeprogramskog
načina rada.
1. Skicirati način spajanja UI naprave na sabirnicu.

Knjiga str 34 slika 3.1.

2.Što je radno čekanje?

Dok je (zastavica == 0) ;

Pročitaj PR;

3. Skicirati signale dvožičnog rukovanja .

Knjiga str 37 slika 3.4.

4. Što se dogodi kad se dogodi prekid.

Ako je (prekidni signal postavljen) {

1. onemogućiti daljnje prekidanje;

2. prebaciti adresiranje u sustavski adresni prostor;

3. aktivirati sustavsku kazaljku stoga;

- 2 i 3 – prebaciti u sustavski način rada

4. pohraniti programsko brojilo na sustavski stog;

5. staviti u programsko brojilo adresu potprograma za obradu prekida;

5. Kako treba nadopuniti ponašanje procesora da on omogućuju prekidni rad bez sklopa za prihvat prekida?

Dodati;

Ako je (prekidni signal postavljen) {

1. onemogućiti daljnje prekidanje;

2. prebaciti adresiranje u sustavski adresni prostor;

3. aktivirati sustavsku kazaljku stoga;

- 2 i 3 – prebaciti u sustavski način rada

4. pohraniti programsko brojilo na sustavski stog;

5. staviti u programsko brojilo adresu potprograma za obradu prekida;

6. Pojasniti instrukcije „pohraniti kontekst“ i „vratiti se iz prekidnog načina“ ?

Pohraniti kontekst – pohranjivanje sadržaja svih registara osim PC-a na sustavski stog.
Vratiti se iz prekidnog načina – vraća sadržaj programskog brojila sa sustavskog stoga, te prebacuje adresiranje
u korisnički adresni prostor i aktivira korisničku kazaljku stoga.

7. Što treba načiniti na početku svakog potprograma za obradu prekida?

Onemogućiti danje prekide

8. Zašto se programsko brojilo tretira zasebno prilikom pohrane konteksta?

Zato što se sadržaj programskog brojila automatski pohranjuje pri pojavi prekidnog signala, te u PC se zatim
stavlja adresa na kojoj počinje potprogram za obradu prekida.

9. Što se zbiva kada obrada nekog prekida završi?

Ponovno se pokreće prekinuta dretva – obnavlja se kontekst – vraćaju se sadržaji registara.

10. Koje strukture podataka treba sadržavati operacijski sustav koji omogućuje prihvat prekida različitih
prioriteta?

Uz sustavski stog potrebna je i struktura koja se sastoji od: Polje za zastavice, polje za tekući prioritet te polje za
pohranu kontekstâ

11. Opisati sklop za prihvat prekida.

Sklop za prihvat prekida sastavni je dio procesora, na kojeg direktno putem sabirnica dolaze zahtjevi za
prekidima. Tada sklop prema procesoru propušta samo onaj prekidni signal koji ima veći prioritet od dretve
koju procesor trenutno izvodi.

PROFESOROVA INTUITIVNA DEFINICIJA: Sklop za prihvat prekida nekad ga samo prihvaća, nekad ga prekida, a
nekad ga i pamti.

12. Kako treba nadopuniti ponašanje procesora do on omogućuje rad sa sklopom za prihvat prekida?

13. Navesti koje radnje koje mogu generirati prekid unutar procesora.

Pojava nekih nenormalnih stanja - Pokušaj dijeljenja sa nulom, adresiranje nepostojeće lokacije u adresnom
prostoru, dekodiranje nepostojećeg operacijskog koda i sl.

Programski prekid ???

14. U kojem će se slučaju dogoditi „poziv jezgre“, odnosno „ulazak u jezgru“ i što se tada poziva?

15. Navesti osnovne registre pristupnog sklopa za neposredni pristup spremniku (DMA).

Registar stanja, podatkovni registar, adresni registar i brojilo.


16. U pseudokodu napisati programski odsječak koji obavlja sklop za neposredni pristup spremniku.

Dok je (brojilo > 0) {

Zatražiti sabirnicu;

Čekati na dodjelu sabirnice;

Postaviti na adresni dio sabirnice sadržaj adresnog registra;

Prenijeti na tu adresu sadržaj podatkovnog registra (ili obrnuto);

AR++;

BR--;

Postaviti signal PREKID;

17. Opisati čvrsto povezani višeprocesorski sustav.

Više procesora spojeno na jednu sabirnicu komunicira preko dijeljenog spremnika. Korištenje sabirnice je
regulirano dodjeljivačem sabirnica.
1. Koje računalne resurse dijele dretve istog procesa?

Sve

2. Što je zajedničko dretvama različitih procesa?

Ništa

3. Kako je podijeljen spremnički prostor procesa, a kako dretveni spremnički prostor?

4. Navesti uvjet nezavisnosti podataka.

5. Navesti uvjete koje mora zadovoljavati algoritam međusobnog isključivanja dretvi.

Isključivanje mora funkcionirati kad se dretve izvode različitim brzinama.

Kada neka dretva zastane u NKO, to ne smije spriječiti drugu da uđe u KO.

Izbor koja će dretva ući u kritični odsječak mora se odvijati u konačnom vremenu.

6.

7. Čemu služi Dekkerov, a čemu Lamportov algoritam? Koje strukture podataka koriste?

Dekkerov postupak je mehanizam za isključivanje dviju dretvi, koji je realiziran pomoću tri pomoćne varijable:
ZASTAVICA[I], ZASTAVICA[J], PRAVO.

Lamportov protokol je način ostvarenja postupka međusobnog isključivanja dretvi, koji je primjenjiv ne samo
na 2, već na n dretvi.

8. Navesti Dekkerov odnosno Lamportov algoritam.

9. Usporediti Petersonov i Dekkerov algoritam.

10. Navesti najjednostavniji način međusobnog isključivanja više dretvi na jednoprocesorskom računalu.

dok je (1) {

Onemogućiti prekidanje;

Kritični odsječak;

Omogućiti prekidanje;

Nekritični odsječak;

11. Navesti nedjeljive instrukcije procesora koje služe kao sklopovska potpora međusobnom isključivanju.

12.

13.
PITANJA I ODGOVORI ZA TREĆI KOLOKVIJ IZ
KOLEGIJA
OPERACIJSKI SUSTAVI 1

1
1. Opisati organizaciju smještaja podataka na magnetskom disku.

Sve ploče učvršćene su na istu osovinu i vrte se konstantnom brzinom ω.


U smjeru radiusa ploča (ili približno u smjeru radiusa blagim lukom pomiču se glave za
pisanje i čitanje.
Glave se mogu vrlo precizno postaviti na jedno mjesto i tada ispod njih prolazi vrlo uski prsten
ploče koji zovemo stazom (engl. track).
Staze jednakih polumjera svih diskova leže na zamišljenom plaštu valjka i zovemo ih
zajedničkim imenom cilindar (engl. cylinder).
Svaka je staza podijeljena je na jednake dijelove (kružne lukove s jednakim središnjim
kutevima) koje zovemo sektorima (engl. sector).

U jedan sektor može se pohraniti određeni broj bajtova. Uobičajeno je to 256, 512 ili 1024
bajtova.
Svaki sektor na disku ima svoju jedinstvenu adresu koja se izračunava iz:
rednog broja ploče,
rednog broja staze na ploči i
rednog broja sektora na stazi.
Ploča se odabire aktiviranjem odgovarajuće glave, redni broj staze određuje se na temelju
položaja glava, a redni broj sektora dobiva se tako da se mjere kutovi vrtnje počevši od
posebne oznake na ploči koja označava početni kut.
U uobičajenim izvedbama diskova svaka ploča ima svoju glavu za pisanje, odnosno čitanje, ali
se u jednom času može pristupiti samo do jedne od ploča, tj. može se čitati ili pisati samo u
jednu stazu cilindra.

2. Koliko iznosi ukupno trajanje prijenosa podataka izmeĊu tvrdog diska i RAM-a ?

Ukupno trajanje prijenosa podataka = trajanje postavljanja glave + trajanje prijenosa podataka
Trajanje postavljanja glave = trajanje traženja staze + rotacijsko kašnjenje
Trajanje prijenosa po dataka = tranje čitanja djela ili cijele staze + trajanje premještanja glave sa
staze na stazu

2
3. Zbog ĉega nastaje rotacijsko kašnjenje i o ĉemu ovisi?

Rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije
početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor.
Najlošiji slučaj – adresirani sektor je upravo prolazio ispod glave kad je ona prispjela na stazu
Najbolji slučaj – adresirani sektor upravo u trenutku postavljanja glave nailazi ispod glave.
Prosječno – uzimamo vrijednost tih dvaju krajnjih slučajeva i pretpostavljamo da je prosječno
rotacijsko kašnjenje jednako poloviti trajanja jednog okretaja diska – Tr/2.

4. Gdje se generiraju adrese unutar procesora ?

U von Neumannovoj arhitekturi računala se sve adrese generiraju unutar procesora, i onda se one
neposredno preko adresnih vodiča dovode do spremnika.
a) adrese instrukcija koje dolaze iz programskog brojila kad se iz radnog spremnika dohvaćaju
instrukcije
b) stogovne adrese koje dolaze iz registra kazaljke stoga kad se adresira stog;
c) adrese operanada i rezultata operacija (adrese podataka), koje se stvaraju na temelju sadržaja
adresnih dijelova instrukcija kad se adresiraju podaci.

5. Navedite vrste fragmentacije (statiĉko i dinamiĉko)!

Prilikom statičkog raspoređivanja radnog spremnika javljaju se dvije vrste fragmentacija:


Unutarnja (internal fragmentation) – programi neće biti jednake veličine kao particije te će dijelovi
particija ostati neiskorišteni
Vanjska (external fragmentation) – tijekom rada se može dogoditi da svi procesi čiji su programi
smješteni u istu particiju bivaju blokirani pa ta particija radnog spremnika ostane prazna. Pritom može
postojati više procesa čiji programi čekaju na dodjelu radnog spremnika, ali oni ne mogu biti
napunjeni u radni spremnik jer nisu pripremljeni za tu particiju.
Kod dinamičkog raspoređivanja radnog spremnika imamo samo vanjsku fragmentaciju:
Problem fragmentacije spremničkog prostora – tijekom vremena neki procesi završavaju izvođenje i
oslobađaju svoj spremnički prostor. Drugi procesi bivaju blokirani i izbacuju se iz radnog spremnika
pa tako također oslobađaju svoj procesni prostor kako bi načinili mjesta za programe procesa koji se
mogu izvoditi. Ti će se procesi kasnije vratiti u spremnik ali najvjerojatnije na neko drugo mjesto. S
obzirom da veličine programa nisu jednake u spremniku će se nakon nekog vremena između procesnih
adresnih prostora pojaviti prazni dijelovi spremnika koje nazivamo rupama.

6. Navesti i dokazati Knuthovo 50%-tno pravilo!

U stacionarnom stanju u spremniku postoji broj rupa koji je jednak polovini broja punih blokova.

Knuthovo pravilo pretpostavlja da je vjerojatnost oslobađaja spremničkog prostora jednaka


vjerojatnosti zahtjeva. Predpostavlja se da će zbog toga tijekom vremena u sustavu doći do
stohastičkog ravnotežnog stanja odnosno da će prosječan broj rupa i punih blokova biti stalan. U tom
slučaju možemo predpostaviti da postoje 4 tipa blokova razvrstavjući ih po kriteriju da li im im je
predhodnik i sljedbenik rupa ili puni blok.

3
DOKAZ

A xxx B xx0 C 0xx D 0x0

Veliko slovo je tip bloka, a malo slovo je broj blokova tog tipa. Blokova tipa A ima a.
Vjerojatnost da će se pronać neka rupa koja će točno odgovarat veličini zahtjevanog prostora
je zanemariva i označava se sa q, a vjerojatnost(p=1‐q) je zato približna 1. Sad idemo prebrojat
rupe, blokove tipa ne brojimo jer oni nemaju rupa, a blokove tipa D brojimo dva puta jer imaju
po dve rupe. E sad budući da ako, recimo, imamo blok tipa B(xx0) i blok tipa C(0xx) jedan do
drugoga vidimo da smo ovu nulu brojili dva puta i zato moramo cjelu sumu podjelit još sa dva.

n(rupa) = (b+c+2d)/2

Uz to budući da ako jednom bloku (C) slijedi nula, to mora značiti da će slijedećem (B)
prethodit, što znači da će broj blokova tipa C i tipa B bit jednak c=b

Znači,

n(rupa)=(2b+2d)/2 =b+d

m(memorija) = a+b+c+d I

Vjerojatnost da će nastati jedna rupa (znači mora nestat jedan blok tipa A) je a/m.

Vjerojatnost da će se popunit rupa (mora nestat blok tipa D) je d/m + vjerojatnost da postoji
zahtjev veličine jedne rupe u koju će se novi program smjestiti (ili kraće q)

Zbog onog prvog uvjeta vjerojatnost popunjavanja i pražnjenja rupa moraju biti otprilike
jednaki znači:

a/m = d/m + q ; pomnoži s m, zamjeni q sa 1‐p

a=d + m(1‐p)

uvrstimo sad taj a u

m=a+b+c+d;

m=d + m(1‐p) +b+c+d ;

sad se sjetimo odprije da je

c=b i b+d=n

m=d + m‐pm + b +b + d

m=m‐pm +2(n)

pm = 2n

n=1/2pm ; udući da je p približno 1

n(rupa)=1/2m(memorije)

50% memorije čine rupe

4
7. Kako se može ublažiti problem fragmentacije prilikom dinamiĉkog dodjeljivanja spremnika,
s obzirom da se ne može izbjeći ?

Pri svakom oslobađanju nekog procesnog prostora novonastala rupa spaja s eventualnim susjednim
rupama u novu veću rupu.
Pri svakom novom zahtjevu za spremničkim prostorom potraži se najmanja rupa u koju se može
smjestiti novi program.

8. Kad se ustanovi da je fragmentacija prilikom dinamiĉkog dodjeljivanja spremnika prevelika,


tada se zaustave se sve dretve, presloži se sve programe u kompaktni prostor, i krene se dalje
(garbage collection).

9. Strategije zamjene stranica.

FIFO – stranica koja je najdulje u radnom spremniku


LRU – stranica koje se najdalje u prošlosti nije koristila
OPT – stranica koja se najdalje u budućnosti neće koristiti
LFU – stranica koja se u radnom spremniku najrjeđe koristila

10. Kako se dijeli logiĉki adresni prostor, a kako fiziĉki?

Logički adresni prostor dijelimo na stranice, a fizički adresni prostor dijelimo na okvire.

11. Ĉemu služi tablica prevoĊenja, i od kojih se elemenata sastoji?

Tablica prevođenja je sastavni dio spremničkog međusklopa u kojoj se vodi evidencija o tome u kojem
je okviru smještena pojedina stranica (za više vidi TLB kod Intel x86).
Od redaka (za svaku stranicu jedan redak) u kojima se pohranjuje broj okvira u kojem se nalazi (ako je
in) te dodatnog bita prisutnosti za svaki redak]

12. U ĉemu se razlikuju prekidi izazvani zbog promašaja stranice od ostalih vrsta prekida?

Prekid uslijed promašaja stanice dogodio se za vrijeme izvođenja instrukcije, a ne na kraju instrukcije.
Stoga se instrukcija koja je izazvala prekid mora ponoviti. Da bismo ponovili instrukciju, moramo
znati sadržaje svih registara prije izvođenja te instrukcije. Zbog toga procesori predviđeni za
ostvarivanje virtualnog spremnika imaju posebne skrivene kopije registara u kojima se čuvaju
nepromijenjene vrijednosti registara tijekom izvođenja cijele instrukcije. Vrijednosti tih registara se
obnavljaju tek na kraju izvođenja svake instrukcije.

13. Što je to satni algoritam (ne opisivati)?

Satni algoritam je inačica LRU strategije.

14. Koju informaciju nosi bit ĉistoće ?

Ako se sadržaj stranice nije mijenjao, tj. ako je stranica ostala čista, ne treba ju prepisivati natrag na
disk. Zbog toga se u tablicu stranica uvodi posebni bit za označavanje čistoće.

5
15. Što saĉinjava opisnik datoteke ?

Naziv datoteke, tip datoteke, lozinka, ime vlasnika, pravo pristupa, vrijeme stvaranja, vrijeme zadnje
uporabe, ime posljednjeg korisnika, opis smještaja datoteke.

16. Što saĉinjava datoteĉnu tablicu?

Veličina diska (particije), količina slobodnog prostora, informacije o slobodnom prostoru (pozicija i
sl), opisnici datoteke.

17. Na koji naĉin je opis smještaja pohranjen u NTFS, a na koji u UNIX sustavu?

NTFS
diskovni prostor dodjeljuje se po skupinama sektora (1,2,4,8)/cluster;
referenca na disk uporabom LCN (r.br.clustera);
postoji datoteka MFT koja sadrži opisnik svake datoteke (1 zapis je veličine 1 clustera ~4KB);
male datoteke se cijele smještaju unutar MFT zapisa;
veće datoteke – zapis sadrži indekse clustera (+ dodatna potrebna proširenja);
datoteka se dijeli na „virtualne skupine“ („stranice“ jednake veličini „okvira“ (clustera))
– r.br.str. = VCN;
UNIX
13 kazaljki:
10 neposrednih pokazuju
na prvih 10 sektora [dat. do 10KB]
1 jednostruko indirektna pokazuje
na sektor s idućih 256 kazaljki [do 266KB]
1 dvostruko indirektna pokazuje
na sektor s kazaljkama na 256 sektora od kojih svaki ima 256
kazaljki () [do 64MB]
1 trostruko indirektna kao
gore samo još jedan stupanj indirekcije (256x256x256) [do 16GB]

6
VAŽNIJI POJMOVI

staza ‐ vrlo uski prsten ploče kojeg čita glava

cilindar ‐ staze jednakih polumjera svih diskova; leže na zamišljenom plaštu valjka; ne može se
pročitati cijeli cilindar istovremeno, nego se mora čitati staza po staza iz čega proizlazi da je vrijeme
čitanja cilindra s N staza jednako N*Tr pri čemu je Tr vrijeme potrebno za jedan okretaj diska

sektor ‐ dio staze; svi su sektori jednake veličine; svaki sektor ima jedinstvenu adresu koji se računa iz
rednog broja ploče, rednog broja staze na ploči i rednog broja sektora na stazi

blokovi ‐ skupine bajtova koji se mogu adresirati, a sastoje se od jednog ili više sektora

rotacijsko kašnjenje ‐ vremenski interval između postavljanja glave na željenu stazu i početka
čitanja kojemu je uzrok to što traženi sektor mora doputovati do glave; najmanje vrijeme kašnjenja je
0 i do njega dolazi kada je upravo taj sektor točno ispod glave, a najveće je oko Tr kada se mora čekati
cijeli krug jer je traženi sektor baš netom otišao; u proračunima se često uzima kao prosječno vrijeme
kašnjenja Tr/2

procesni informacijski blok ‐ struktura podataka za svaki proces u kojoj se nalaze sve informacije
važne za odvijanje tog procesa (tablice sektora u kojima je program procesa pohranjen na disku,
podatci o smještanju programa u radnom spremniku i slično)

apsolutni oblik zapisa programa ‐ u okviru instrukcija programa zapisane su stvarne fizičke adrese
relativni oblik zapisa programa ‐ u okviru instrukcija zapisane su adrese u odnosu na početnu
adresu; za takve programe kompilator generira oznake za relativne adrese

stalne particije ‐ podjela spremnika na dijelove fiksne veličine u koje se smiještaju programi; za
preseljenje u novu particiju generirati novi apsolutni kod programa; problemi: unutarnja i vanjska
fragmentacija

unutarnja fragmentacija ‐ particije u kojima su programi manje veličine od njih samih ostaju
nepotpuno iskorištene

vanjska fragmentacija ‐ svaki program je pripreljmen za točno određenu particiju; ako u svi procesi
neke particije budu blokirani, particija zjapi prazna i u nju se ne može ugurati nitko tko jadan čeka jer
je pripremljen za neku drugu particiju

logiĉki adresni prostor ‐ prostor kojeg adresiraju relativne adrese, dakle tako izračunate kao da je
početna adresa programa (PA) jedanaka nuli

fiziĉki adresni prostor ‐ baš onaj pravi OPERACIJSKI

7
OPERACIJSKI SUSTAVI
PITANJA ZA VJEŽBU – 1. CIKLUS
(by kate)

1. Uvod
1. Što je Operacijski sustav?
Skup programa koji omogudavaju izvođenje osnovnih operacija na računalu – potpora raznovrsnim primjenskim
rogramima.

2. Navesti osnovne dijelove operacijskog sustava.


 Upravljanje datotečnim sustavom
 upravljanje spremnikom (memorijom)
 upravljanje U/I uređajima
 API (Application programming interface)
 GUI (Graphical user interface)
 procesi i dretve (komunikacija, sinkronizacija i raspoređivač poslova), mrežni i sigurnosni podsustav.

3. Program čiji je izvorni kod u datoteci lab5.c, kompajlira se sa: __________gcc lab5.c_________, a
pokrece sa ___./a.out________ .

4. Ako program iznenada završi s porukom “Segmentation Fault” što treba razmatrati pri
ispravljanju greške?
Pogreska kod inicijalizacije polja, pointera ili varijabli (neinicijailzacija ili adresirano izvan adresnog prostora).

5. Što je to sučelje? Što je to API (tko ga nudi, tko koristi)?


Sučelje je utvrđeni način komunikacije (čvrsto dogovoreni način uspostavljanja veze između dvije inače nerazdvojne
cjeline; npr. Komunikacija između korisnika i operacijskog sustava). API (Application Programming Interface) su
funkcije pripremljene unutar operacijskog sustava koje su dohvatljive sučelju prema primjenskim programima.
Koriste ga programeri primjenskih programa.

2. Model jednostavnog računala


6. Čime su odreĎena svojstva i ponašanje procesora?
Skupom registara (služe za pohranjivanje svih sadržaja koji ulaze i izlaze iz procesora i u njemu se transformiraju) i
skupom instrukcija (određen izvedbom ALU i upravljačke jedinice procesora).

7. Navesti osnovni skup registara procesora.


 Adresni međuregistar
 Podatkovni međuregistar
 Instrukcijski registar
 Programsko brojilo (PC)
 Registar kazaljke stoga (SP)
 Registar stanja (SR)
 Registri opde namjene (R)

8. Što je to sabirnički ciklus?


Period u kojem se obavlja jedno čitanje ili pisanje u radni spremnik.

1
9. U pseudokodu napisati što procesor trajno radi?
ponavljati {
dohvatiti iz spremnika instrukciju na koju pokazuje programsko brojilo;
dekodirati instrukciju, odrediti operaciju koju treba izvesti;
povečaj sadržaj programskog brojila tako da pokazuje na sljededu instrukciju;
odrediti odakle dolaze operandi i kuda se pohranjuje rezultat;
operande dovesti na aritmetičko-logičku jedinicu, izvesti zadanu operaciju;
pohraniti rezultat u odredište;
} dok je (procesor uključen);

10. Što je kontekst dretve?


Sadržaj trenutne dretve pohranjen u registrima procesora; svi registri osim programskog brojila.

11. Što se zbiva pri izvoĎenju instrukcije za poziv potprograma?


Ponavljati {
Iz spremnika dohvatiti instrukciju na koju pokazuje programsko brojilo;
Dekodirati instrukciju, odrediti operaciju koja se treba izvest;
Povečati programsko brojilo, da pokazuje na sljededu instrukciju;
Ako je (dekodirana instrukcija poziv potprograma) {
Pohraniti sadržaj programskog brojila na stog;
Smanjiti sadržaj registra SP, tako da pokazuje na sljedede prazno mjesto;
Iz adresnog dijela instrukcije odrediti adresu početka potprograma;
Staviti adresu u programsko brojilo;
} Inače
Obaviti instrukciju na način određen dekodiranim operacijskim kodom;
} Dok je (procesor uključen);

12. Definirati osnovno pojmove: program, proces, dretva.


Program – statični niz instrukcija, pohranjen na papiru, disketi, memoriji itd.
Dretva – niz instrukcija koje se izvode i kontroliraju proces.
Proces – program u izvođenju; skup računalnih resursa koji omoguduju izvođenje programa; okolina u kojoj se
program izvodi; sve što je potrebno za izvođenje programa; sastoji se od:
 barem jedne dretve
 zajedničkog adresnog prostora
 adresnog prostora rezerviranog za svaku pojedinu dretvu
 stog, kazaljke stoga, opisnici datoteka, opisnici cjevovoda, redovi poruka, semafori, uvjetne varijable,
zaključavanja.

13. Kako je moguć višeprogramski rad na jednoprocesorskom računalu?


Tako da se svaka dretva izvodi naizmjence pa dobijemo privid istovremenosti. Ključna je pravilna izmjena konteksta
dretve.

3. Obavljanje UI operacija, prekidni rad


14. Skicirati način spajanja UI naprave na sabirnicu. (03-04)

2
15. Što je radno čekanje?
Režim rada procesora u kojem procesor čeka na određeni događaj u programu (npr. pojava zastavice) i troši vrijeme
dok se taj događaj ne dogodi.

16. Skicirati signale dvožičnog rukovanja.

Podatak se upisuje kada je zastavica u niskoj razini, nakon upisivanja se ona podiže i tada se aktivira čitanje PR koje
po svom završetku spušta zastavicu i omogučuje novo čitanje. S obzirom da se signali na dva vodiča ("žice")
naizmjence podižu i spuštaju taj je protokol nazvan dvožičnim rukovanjem (engl. Twowire handshaking).

17. Što se zbiva kada se dogodi prekid?


Pojava prekidnog signala prebacuje procesor u tzv. sustavski (jezgreni) način rada
1. zabranjuje prekidanje
2. prebacuje adresiranje u sustavski adresni prostor
3. aktivira sustavsku kazaljku stoga
4. pohranjuje programsko brojilo na sustavski stog
5. u programsko brojilo stavlja adresu potprograma za obradu prekida

U prekidnom potprogramu:
1. pohraniti kontekst
2. posluživanje prekida
3. obnavlja kontekst
4. omogudi prekidanje
5. vrati se iz prekidnog načina rada (vračanje programskog brojila sa stoga, prebacivanje adresiranja u korisnički
adresni prostor, aktiviranje korisničkog registra kazaljke stoga)

18. Kako treba nadopuniti ponašanje procesora da on omogučuje prekidni rad bez sklopa za
prihvat prekida?
Pojavio se prekidni signal, zabranjeno je prekidanje, i programsko brojilo nalazi se na sustavskom stogu;
{
Pohrani kontekst;
Ustanovi uzrok prekida, odnosno odredi indeks prekida i;
Ako je (1 < 𝑖 < 𝑛) {
Postavi oznaku čekanja K_Z[i]=1 ;
Poništi zastavicu u registru stanja prekida i;
Dok je ((𝑝𝑜𝑠𝑡𝑜𝑗𝑖 𝐾_𝑍[𝑗] ! = 0)⋀(𝐽 > 𝑇_𝑃)){
Odabrati najvedi j;
K_Z[j] = 0;
Pohraniti kontekst sa sustavskog stoga i T_P u KON[j];
T_P = j;
Omogudi prekidanje;
Prijeđi u korisnički način rada;
Pozovi potprogram za obradu prekida j;

3
Zabrani prekidanje;
Prijeđi u sustavski način rada;
Vrati sadržaj iz KON*j+ na sustavski stog i u varijablu T_P;
}
}
Obnovi kontekst sa sustavskog stoga;
Omogudi prekidanje;
Vrati se iz prekidnog načina rada;
}

19. Pojasniti instrukcije „pohraniti kontekst“ i „vratiti se iz prekidnog načina“?


Pohraniti kontekst – stavlja na sustavski stog sadržaje svih registara osim programskog brojila
Vratiti se iz prekidnog nacina – vrača programsko brojilo sa stoga, prebacuje adresiranje u korisnički adresni prostor,
aktivira korisnicki registar kazaljke stoga

20. Što treba načiniti na početku svakog podprograma za obradu prekida?


Pohraniti kontekst

21. Zašto se programsko brojilo tretira zasebno prilikom pohrane konteksta?


Procesor se prebacuje na rutinu za obradu prekida tako da promijeni PC na adresu te rutine. Što znači da ta rutina ne
može pohraniti PC (jer je ved "uništen") ved to mora učiniti procesor. Također, vradanje PCa pokrede prekinutu
dretvu!

22. Što se zbiva kada obrada nekog prekida završi?


Obnavlja se kontekst sa s sustavskog stoga;
omogučuje se prekidanje (odgodjeno do upisa nove vrijednosti u PC);
prebacuje se adresiranje u korisnički prostor;
vrača se iz prekidnog načina rada;

23. Koje strukture podataka treba sadržavati operacijski sustav koji omogućuje prihvat
prekida razlicitih prioriteta?
Varijablu T_P (tekudi prioritet) – broj tekudeg prioriteta dretve koja se upravo izvodi
Polje KON[n] (polje za kontekst) – pohranjuje se kontekst dretve i T_P
Polje K_Z[n] (kontrolna zastavica) – polje u kojem su zapisani prekidi koji čekaju na obradu (1-stigao prekid, 0-nije)

24. Opisati sklop za prihvat prekida (3-52).


Sastoji se od sklopa za prepoznavanje prioriteta, tablice adresa i dva registra: K_Z i T_P. Iz njega izlazi signal PREKID, a
ulazi signal PRIHVAT U K_Z se upisuje jedinica kada pripadni pristupni sklop zatraži prekid. U T_P se zapisuje prioritet
dretve koju procesor upravo izvodi, jedinicom u odgovarajudem bitu registra. Sadržaj ta dva registra dovode se na
sklop za prepoznavanje prioriteta. Taj sklop propusta prekid prema procesoru samo onda kada je prioritet zahtjeva
vedi od onog zabilježenog u registru T_P. Istodobno s propuštanjem prekidnog signala prema procesoru mora se
obrisati bit u registru K_Z. Tablica adresa sadrži adrese (ili pomaknuda za određene adrese) na kojima počinje
prekidni program koji je propušten prema procesoru. Sadržaj tablice se pod utjecajem signala PRIHVAT prenosi na
sabirnicu odakle ga procesor može dohvatiti i neposredno oblikovati adresu na koju treba skočiti.

25. Kako treba nodopuniti ponašanje procesora da on omogucuje prekidni rad sa sklopom za
prihvat prekida?
Ako je (prekidni signal postavljen){
Zabraniti prekidanje;
Prebaciti adresiranje u sustavski adresni prostor i aktivirati sustavsku kazaljku stoga;
Postaviti signal PRIHVAT;
Pohraniti programsko brojilo i sve ostale registre na sustavski stog;

4
Sa sabirnice preuzeti sadrzaj i iz njega odrediti adresu prekidnog podprograma;
Staviti tu adresu u programsko brojilo;
}

26. Navesti koje sve radnje mogu generirati prekide unutar procesora.
Pokusaj djeljenja s nulom, adresiranje nepostojece lokacije u adresnom prostoru, dekodiranje nepostojece
instrukcije i sl.

27. U kojem slučaju će se dogoditi „poziv jezgre“, odnosno „ulazak u jezgru“ i što se tada
poziva?
Događaju se kad se dogodi prekid. Pozivaju se neke vrste potprograma koje se izvode u jezgrenom (sustavskom)
nacinu rada (jezgrine funkcije).

28. Navesti osnovne registre prisrupnog sklopa za neposredni pristup spremniku (DMA).
Adresni registar (AR) - sprema se početna adresa bloka koji se želi prenesti Brojač (BR) - sprema se broj znakova koji
se prenose Registar stanja (RS) - daje procesoru zahtjev za prekid podatkovni registar (PR) - spremaju se podaci koji
se prenose

29. U pseudokodu napisati programski odsjecak koji obavlja sklop za neposredni pristup
spremniku.
Dok je (BR>0) {
Zatraziti sabirnicu;
Cekati na dodjelu sabirnice;
Postaviti na adresni dio sabirnice sadrzaj registra AR;
Prenjeti na tu adresu sadržaj podatkovnog registra PR (ili obrnuto);
AR++ ;
BR-- ;
}
Postaviti signal PREKID;

30. Opisati cvrsto povezani višeprocesorski sustav. (slika 03-83)


Sustav se sastoji od N procesora od kojih svaki ima svoj lokalni spremnik u koji samo on može pristupiti. Osim toga,
svaki procesor može pristupiti do jednog zajednidkog djeljenog spremnika preko zajedničke sabirnice. U jednom
sabirničkom ciklusu do spremnika može pristupiti samo jedan od procesora. Da bi odredili koji procesor može
pristupiti spremniku imamo posebni sklopovski dodjeljivad sabirnice. Procesor I koji žeil pristup do djeljenog
spremnika postavlja signal trazenja sabirnice T[I] dodjeljivacu sabirnice. Dodjeljivad na početku svog spremničkog
ciklusa odlučuje kojem de procesoru dodjeliti sabirnicu. U jednom spremničkom ciklusu dodjeljivad de samo jednom
procesoru dodjeliti sabirnicu, odnosno dodjeliti mu D[I]. Ako neki procesor postavi svoj zahtjev za dodjelu sabirnice
on de u svom izvođenju zastati dok mu se sabirnica ne dodjeli. Dodjeljivac sabirnice dodjeljuje sabirnicu ciklički.

4. MeĎusobno isključivanje u višedretvenim sustavima


31. Što je zajedničko procesu roditelju i procesu djetetu? Koje računalne resurse dijele dretve
istog procesa?
Roditejlu i djetetu nista nije zajedničko. Proces dijete je kopija procesa roditelj, s toga ono ima iste instrukcije i
podatke, ali svaki proces ima svoj adresni prostor i ne mogu jedno drugom adresirat varijable. Dretve istog procesa
dijele sve računalne resurse.

32. Kako je podijeljen spremnicki prostor procesa, a kako dretveni spremnicki podprostor?
Procesni prostor: više dretvenih prostora i zajednički prostor (koji mogu dohvadati sve dretve procesa – globalne
varijable).

5
Dretveni prostor: dio za instrukcije dretve, dio za stog dretve i dio za lokalne podatke dretve

33. Navesti uvjet nezavisnosti dretvi.


(𝑋𝑖 ∩ 𝑌𝑗 ) ∪ 𝑋𝑗 ∩ 𝑌𝑖 ∪ 𝑌𝑖 ∩ 𝑌𝑗 = 0

34. Navesti uvjete koje mora zadovoljavati algoritam medusobnog iskljucivanja dretvi.
 Dretve se odvijaju međusobno isključivo (dvije dretve ne smiju obavljati K.O.)
 Algoritam mora funkcionirati i onda kada su brzine izvođenja dretvi različite
 Ako neka dretva zastane u N.K.O. to ne smije spriječiti drugu dretvu da uđe u K.O.
 Izbor koja dretva de udi u K.O. mora se zbiti u konačnom vremenu.

35. Za zadani algoritam medusobnog isključivanja ustanoviti je li ispravan. Obrazložiti


odgovor.
Dretva I{
dok je (1){
dok je (ZASTAVICA[J] != 0);
ZASTAVICA[I] = 1;
kriticni odsjecak;
ZASTAVICA[I] = 0;
nekriticni odsjecak;
}
}
Nije ispravan. Dretva je u K.O. kada joj je zastavica postavljena u 1. Kada dretva Di krece u svoj K.O. dretva Dj de isto
biti u K.O. jer de Di udi u petlju tek kada je zastavica od Dj=1 sto znaci da Dj u K.O. S druge strane, ako Dj nije u K.O.Di
također nece uci u njega.

36. Čemu služi Dekkerov, a čemu Lamportov algoritam? Koje strukture podataka koriste?
Dekkerov algoritam – algoritam medjusobnog iskljucivanja za dvije dretve
Strukture podataka: varijable ZASTAVICA[I], ZASTAVICA [J] i PRAVO
Lamportov algoritem – algoritam medjusobnog iskljucivanja za n dretvi
Strukture podataka: polje zastavica (koje govori koja dretva pokušava ući) ULAZ[I], polje brojeva dretvi
BROJ[J] ivarijabla zadnjeg broja ZADNJI_BROJ.

37. Navesti Dekkerov/Lamportov algoritam. (04-51) i (04-63)

38. Usporediti Petersonov i Dekkerov algoritam.


Kod Petersona se za razliku od Dekkera pravo dodjeljuje na početku, jednostavnije je radno čekanje, ako je neka
dretva brža prije ulazi u kritični odsječak.

39. Navesti najjednostavniji način meĎusobnog isključivanja više dretvi na


jednoprocesorskom računalu?
Prekidima. Kada dretva želi uci u K.O. ona zabrani prekide, i na izlasku iz K.O. ih ponovno omogudi.

40. Navesti nedjeljive instrukcije procesora koje služe kao sklopovska potpora medusobnom
iskljucivanju.
TAS (ispitati i postaviti) - u prvom ciklusu dobave sadržaj adresirane lokacije i smjeste ga u jedan od registara
procesora, a u drugom ciklusu pohranjuju u tu lokaciju vrijednost 1

swap (zamjeni)- u prvom ciklusu dobave sadržaj adresirane lokacije i smjeste ga u jedan od registara procesora, a u
drugom ciklusu pohranjuju u tu lokaciju vrijednost koja je prije toga bila pohranjena u tom ili drugom registru

fetch-and-add - u prvom ciklusu dobave sadržaj adresirane lokacije i smjeste ga u jedan od registar procesora, a u
drugom ciklusu pohranjuju na tu lokaciju taj sadržaj uvedan za jedan

6
41. U pseudokodu riješiti problem medusobnog iskljucivanja više dretvi uz pomoc nedjeljive
instrukcije TAS/SWAP/FATCH_AND_ADD. Koja je prednost tih rješenja u odnosu na Lamportov
algoritam medusobnog iskljucivanja?
dok je (1) {
TAS ZASTAVICA;
dok je (ZASTAVICA !=0) {
TAS ZASTAVICA;
}
kritični odsječak;
ZASTAVICA = 0;
nekritični odječak;
}
Rješenja sa nedjeljivim instrukcijama su jednostavnija, krača i zahtjevaju manje varijabli, pa se zbog toga brže izvode i
zauzimaju manje memorije.

42. Koji je najveci zajednicki nedostatak algoritmima medusobnog iskljucivanja (Dekkerov,


Petersonov, Lamportov te algoritmima ostvarenim uz pomoc sklopovske potpore).
Dretve koje žele udi u K.O. izvode radno čekanje. Time beskorisno troše vrijeme svojih procesora i sabirničke cikluse.

5. Jezgra operacijskog sustava


43. Što predstavlja pojam „ulazak u jezgru“ i kada se zbiva?
Pojam predstavlja poziv jezgrine funkcije i zbiva se prekidom.

44. Na što se svodi „izlazak iz jezgre“?


Na aktiviranje jedne od dretvi, pri čemu procesor mora biti vračen u korisnički način rada.

45. Navesti izvore prekida u jednostavnom modelu jezgre.


 ulazno-izlazne naprave (sklopovski prekid)
 sat
 dretve (programski prekid)

46. Od cega se sastoji jezgra operacijskog sustava?


 Strukture podataka jezgre
 Jezgrenih funkcija

47. Navesti sadržaj opisnika dretve.


 Kazaljka ili više njih za premještanje iz liste (reda) u listu(red)
 Identifikacijski broj procesa kojoj dretva pripada (PID)
 Identifikacijski broj dretve (ID)
 Stanje dretve (pasivna, aktivna, blokirana, pripravna)
 Prioritet (mjesto gdje je zapisan prioritet)
 početna adresa dretvenog adresnog prostora
 veličina dretvenog adresnog prostora
 adresa prve instrukcije dretve
 zadano kašnjenje
 prostor za smještanje konteksta (u kojem se nalazi programsko brojilo)

48. Navesti strukture podataka jezgre.


 Liste:
1. Pasivne_D – kada se dretva nalazi na samo jednoj listi (postojece_D), onda je u pasivnom stanju
2. Aktivna_D – dretve koje se izvode; broj članova u toj listi jednak je broju procesora.

7
3. Pripravne_D – ako se ne izvode, a spremne su. Prema načinu formiranja red može biti – po redu prispjeda
ili prioritetni
4. Red BSEM[i] – dretve koje cekaju na binarnom semaforu
5. Red OSEM[j] – dretve koje cekaju na opčem semaforu
6. Red odgođen1_D – zadano kašnjenje dretve
7. Red UI[k] – ima ih koliko ima U/I naprava
 Opisnici dretvi

49. Koja su blokirana stanja dretvi?


 Čekanje na binarnom seamforu
 Čekanje na opdem semaforu
 Čekanje na istek zadanog intervala kašnjenja (odgođene dretve)
 Čekanje na završetak U/I operacije.

50. Skicirati graf mogucih stanja dretvi.(05-35)

51. Što obavlja instrukcija „aktivirati prvu dretvu iz reda Pripravne_D“?


Premjestiti prvi opisnik iz reda Pripravne_D u red Aktivne_D;
Obnoviti kontekst iz opisnika Aktivna_D;
Omogučiti prekidanje;
Vratiti se iz prekidnog načina;

52. Što obavlja instrukcija „vratiti se iz prekidnog nacina“?


Vrača u procesor sadržaj programskog brojila i prevodi procesor iz sustavskog u korisnički način rada.

53. Cemu služe jegrini mehanizmi binarni i opci semafor?


Za međusobno iskljucivanje, odnosno sinkronizaciju dretvi.

54. Koje strukture podataka koriste BSEM, OS i OSEM?


Varijablu sa stanjem semafora i kazaljku na listu dretvi koje cekaju na semafor.
BSEM koristi varijablu Bsem[I].v i kazaljku. OS koristi varijablu OS.v i kazaljku. OSEM koristi varijablu Osem[J].v i
kazaljku.

55. U pseudokodu napisati jezgrine funkcije Cekaj_BSEM, Postavi_BSEM, Cekaj_OS, Postavi_OS,


Cekaj_OSEM i Postavi_OSEM. (05-41), (05-42), (05-60), (05-61), (05-66), (05-67)

56. Opisati nacin umetanja opisnika dretve u listu Zakašnjele_D. Koja vrijednost se upisuje u
polje Zadano_kašnjenje u opisniku dretve?
Lista Zakašnjele_D je složena prema vremenima kašnjenja. Prva dretva u listi ima najmanje vrijeme spavanja, dok
zadnja ima najdulje. U polje Zadano_kašnjenje prvog opisnika upisuje se apsolutna virjednost zadanog kašnjenja, a u
ostale opisnike samo dodatno odgađanje u odnosu na prethodnu dretvu.

57. Koje vrste prekida uzrokuju jezgrine funkcije Zapoceti_UI i Prekid_UI u jednostavnom
modelu jezgre?
Zapoceti_UI je programski prekid, a Prekid_UI je sklopovski.

58. Može li se prekinuti dretva koja obavlja neku jezgrinu funkciju?


Ne, jezgrina funkcija ne može biti prekinuta.

8
59. Na koji način se jezgrine funkcije obavljaju medusobno iskljucivo na jednoprocesorskom
racunalu, a kako na višeprocesorskom racunalu?
Međusobno isključivanje na jednoprocesorskom računalu ostvaruje se prekidima. Na višeprocesorskom računalu
struktura podataka jezgre se mora nalaziti u dijeljenom spremniku. Za sinkronizaciju pristupa strukturama podataka
jezgre koristi se zastavica OGRADA_JEZGRE, a međusobno isključivanje se ostvaruje radnim čekanjem.

9
PITANJA ZA VJEŽBU – 2. CIKLUS

6. Međudretvena komunikacija i koncepcija monitora


60. Sinkronizirati proizvodaca i potrošaca korištenjem brojackog semafora.
Proizvođač: Potrošač:
dok je(1){ dok je(1){
proizvesti poruku P; Ispitati_Osem(1);
Ispitati_Osem(2); R=MS[IZ];
MS[UL]=P; IZ=(IZ+1)%N;
UL=(UL+1)%N; Postavi_Osem(2);
Postavi_Osem(1); Potrošiti poruku R;
} }

Objašnjene varijabli:
MS=međuspremnik
UL, IZ=kazaljke za kretanje po međuspremniku
P, R=poruka
N=veličina međuspremnika

61. Sinkronizirati više proizvođaća i više potrošaca uz pomoć binarnih i brojackih semafora.
Proizvođač: Potrošač:
Dok je (1){ Dok je (1){
Proizvesti poruku P; Ispitati_Osem(i);
Ispitati_Osem(S); Ispitati_Bsem(K);
Ispitati_Bsem(P); Preuzeti poruku R iz prvog spremnika u
Dobaviti pretinac sa stoga SKLADISTE; Red_Poruka[i];
Postaviti P u pretinac i uvrstiti ga u Vratiti ispažnjeni pretinac na stog SKLADISTE;
Red_Poruka[i]; Postaviti_Bsem[K];
Postaviti_Bsem[P]; Postaviti_Osem(S);
Postaviti_Osem(i); Potrošiti poruku R;
} }

62. Sinkronizirati rad dviju dretvi tako da se one obavljaju naizmjenicno.


Dretva Di: Dretva Dj:
dok je (1){ dok je (1){
Ispitati_Osem (i); Ispitati_Osem (j);
nešto raditi; nešto raditi;
Postaviti_Osem(j); Postaviti_Osem(i);
} }

jedan OSEM je inicijalno postavljen na 0, a drugi na 1; Dretva u kojoj je OSEM postavljen u 1 ce prva poceti izvođenje.

63. Što je potpuni zastoj?


Potpuni zastoj je stanje sustava u kojem su sve dretve blokirane u nekom redu uvjeta.

10
64. Navesti nužne uvjete za nastajanje potpunog zastoja.
 sredstva se koriste međusobno isključivo (neko sredstvno u istom času može upotrebljavati samo jedna od
dretvi)
 dretvi se sredstvo ne može oduzeti – ona ga otpusta sama kada ga vise ne treba
 dok traži dodatna sredstva dretva drži dodijeljena
 barem 2 dretve se natječu za barem 2 sredstva

65. Što je monitor?


Monitor je jezgrin mehanizam za sinkronizaciju.

66. Navesti jezgrine strukture podataka koje se koriste za ostvarenje monitora.


 monitorski semafor
 redovi uvijeta

67. Navesti jezgrine funkcije za ostvarenje monitora.


 udi_u_monitor(M),
 izadi_iz_monitora(M),
 uvrstiti_u_red_uvjeta(M,K),
 osloboditi_iz_reda_uvjeta(M,K)

68. Kada se može dogoditi da se dvije dretve nadu u monitoru?


Jedna dretva je upravo deblokirana iz reda uvjeta, a druga koja je tu dretvu deblokirala, a još nije završila izvođenje i
izašla iz monitora.

69. U pseudokodu napisati jezgrine funkcije za ostvarenje monitora: Uci_u_monitor,


Izaci_iz_monitora, Uvrstiti_u_red_uvjeta i Osloboditi_iz_reda_uvjeta.

Uci_u_monitor(M){
Pohraniti kontekst u opisnik Aktivna_D;
Ako je (Monitor[M].v==1) {
Monitor[M].v=0;
Obnoviti kontekst iz opisnika Aktivna_D;
Omoguditi prekidanje;
Vratiti se iz prekidnog načina rada;
}
Inače {
Premjestiti opisnik iz reda Aktivna_D u red Monitor[M];
Aktivirati prvu dretvu iz reda Pripravne_D;
}
}

Izaci_iz_monitora(M){
Pohraniti kontekst u opisnik Aktivna_D;
Premjestiti opisnik iz reda Aktivna_D u red Pripravne_D;
Ako je ((Monitor[M].v==0) && (red Monitor[M] neprazan)) {
Premjesti prvi opisnik iz reda Monitor[M] u red Pripravne_D;

11
}
Inače
Monitor[M].v=1;
Aktivirati prvu dretvu iz reda Pripravne_D;
}

Uvrstiti_u_red_uvjeta(M,K){
Pohraniti kontekst u opisnik Aktivna_D;
Premjestiti opisnik iz reda Aktivna_D u Red_uvjeta[M,K];
Ako je ((Monitor[M].v==0) && (red Monitor[M] neprazan)) {
Premjesti prvi opisnik iz reda Monitor[M] u red Pripravne_D;
}
Inače
Monitor[M].v=1;
Aktivirati prvu dretvu iz reda Pripravne_D;
}

Osloboditi_iz_reda_uvjeta(M,K){
Pohraniti kontekst u opisnik Aktivna_D;
Premjestiti opisnik iz reda Aktivna_D u red Pripravne_D;
Ako je (Red_uvjeta[M,K] neprazan) {
Premjesti prvi opisnik iz reda Red_uvjeta[M,K] u red Pripravne_D;
}
Ako je ((Monitor[M].v==0) && (red Monitor[M] neprazan)) {
Premjesti prvi opisnik iz reda Monitor[M] u red Pripravne_D;
}
Inače
Monitor[M].v=1;
Aktivirati prvu dretvu iz reda Pripravne_D;
}

70. Kojim jezgrinim mehanizmom moraju biti zašticene korisnicke monitorske funkcije?
Monitorskim semaforima

71. U cemu se razlikuje monitorski semafor od binarnog semafora?


Binarni semafor koristi samo dvije funkcije, a monitorski četiri

7. Analiza vremenskih svojstava racunalnih sustava.


72. Objasniti parametre sustava i njihov odnos:
ρ - iskoristivost ρ = α/β
α - broj poslova koji u jedinicnom vremenu ulaze u sustav
1/α – prosjecno vrijeme izmedju 2 posla
β -broj poslova koje poslužitelj može obaviti u jedinici vremena
1/β – prosjecno trajanje posluživanja
n - prosjecni broj poslova u sustavu n = α T = ρ/(1-ρ) = α/(β- α)

12
T -prosjecno zadržavanje posla u sustavu T = 1/(β- α)

pi = (1-ρ)ρi - vjerojatnost da u sustavu imamo i poslova


p(i>N) = ρN+1

α = α1 + α2 + ...
ρ = ρ1 + ρ2 + ...
1/β = α1/α * 1/β1 + α2/α * 1/β2 + ...

73. Navesti Littleovo pravilo. n = α T

74. Skicirati Markovljev lanac gdje stanja predstavljaju broj poslova u sustavu. Sustav neka ima
Poissonovu razdiobu dolazaka s parametrom i eksponencijalnu razdiobu trajanja obrade s
parametrom 1/. (07-49)

76. U kojem slucaju se može dozvoliti veliki faktor iskorištenja (cak i 1)?
U determinističkom slučaju. U stohastičkom slučaju faktor iskorištenja je strogo manji od 1 (<1), dok je u
determinističkom slučaju <=1

13
PITANJA ZA VJEŽBU – 3. CIKLUS

8. Gospodarenje spremnickim prostorom


78. Gdje se generiraju adrese unutar procesora?
Programsko brojilo  adrese instrukcija
Registar kazaljke stoga  stogovne adrese
Sadržaj adresnih dijelova instrukcija  adrese podataka

79. Kako je podijeljen procesni adresni prostor?


Dretveni prostori + zajednički prostor

80. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindri, staze, sektori).
Disk se sastoji od više ploča na istoj osovini. Kružnice na ploči predstavljaju staze, a staze su podjeljene na jednake
djelove (kružne lukove s jednakim središnjim kutem) – sektore. Staze jednakih polumjera svih diskova čine cilindar.

81. Čime je odredena jedinstvena adresa svakog sektora na disku?


 Rednim brojem ploče
 Rednim brojem staze na ploči
 Rednim brojem sektora na stazi

83. Od cega se sastoji trajanje traženja staze (seek time)?


 Ubrzavanje (ručice glave)
 Gibanje konstantnom brzinom
 Usporavanje
 Fino pozicioniranje

84. Koliko iznosi prosjecno vrijeme traženja u odnosu na vrijeme koje je potrebno za prijelaz preko svih
staza?
Za vrijeme trazenja se uzima trečina vremena potrebnoh za prijelaz svih staza

82. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk - radni spremnik? Pogledaj 85.
85. Kako je podijeljeno vrijeme koje je potrebno za prijenos podataka s diska ili na disk?
1) Trajanje postavljanja glave (head positioning time)
 Trajanje traženja staze (seek time)
- Ubrzavanje ručice glave
- Gibanje konstantnom brzinom
- usporavanje
- fino pozicioniranje
 rotacijsko kašnjenje (𝑇𝑟 = 𝑇𝑟 /2)
2) Trajanje prijenosa podataka (data transfer time)
 Trajanje čitanja dijela ili cijele staze

86. Zbog čega nastaje rotacijsko kašnjenje i koliko ono iznosi?


Rotacijsko kašnjenje (Tr) nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije početka
prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor.
Iznosi između nula(najpovoljniji slučaj traženi sektor upravo nailazi ispod glave u trenutku njezinog postavljanja na
stazu) i jednog (najlošiji slučaj traženi sektor upravo prolazi ispod glave kad je ona postavljena na stazu) okretaja.
Zato se za rotacijsko kašnjenje uzima prosječna vrijednost, odnosno pola trajanja jednog okretaja (Tr=Tr/2).

14
87. Čime je odredena brzina prijenosa podataka s diska u spremnik diskovne upravljacke jedinke?
Brzinom kojom ispod glave promiču bajtovi sektora i brojem podataka koje trebamo prenjeti.

88. Neka je trajanje traženja staze Ts nekog diska s 2000 staza opisano sa sljedece tri
formule, gdje je D udaljenost izmedu trenutnog položaja glave i tražene staze:
Ts = 1.5 x D ms za D 4,
Ts = 4.0 + 0.5 x D1/2 ms za 4<D 400,
Ts = 10.0 + 0.01 x D ms za D > 400.
Koliko iznosi prosjecno vrijeme traženja staze?
2000
𝑇𝑠 = 10.0 + 0.01 ∗ = 16.66 𝑚𝑠
3

89. Navesti sadržaj procesnog informacijskog bloka.


Tablice sektora u kojima je program procesa pohranjen na disku i podaci o smještaju programa u radnom spremniku.

90. Opisati postupke statickog i dinamickog dodjeljivanja spremnika.


Statičko dodjeljivanje:
Particije su stalne veličine (fixed partitions), program kad je dodjeljen jednoj particiji uvijek je u toj particiji, i kad je
izbačen iz radnog spremnika može se vratiti samo u tu particiju. Dolazi do problema fragmentacije i toga što adresni
prostor programa nije mogao biti vedi od najvede particije fizičkog spremnika.
Dinamičko dodjeljivanje:
Programi se upisuju jedan iza drugog. Dodan je sklop s kojim se početna adresa pribraja svakoj adresi koju proces
proizvede. Programi se priređuju tako da svaki ima svoj adresni prostor. Važno je da se prije izvođenja u bazni
registar pohrani aktualna početna adresa.

91. Navesti vrste fragmentacije prilikom statickog dodjeljivanja spremnika.


Unutarnja fragmentacija: Programi nisu jednake velicine kao particije pa ce djelovi particija ostati neiskorišteni.
Vanjska fragmentacija: Tijekom rada se može dogoditi da svi procesi čiji su programi smješteni u istu particiju bivaju
blokirani pa ta particija radnog spremnika ostaje prazna. Pritom može postojati više procesa čiji programi čekaju na
dodjelu radnog spremnika, ali oni ne mogu biti napunjeni u radni spremnik jer nisu pripremljeni za tu particiju.

92. Problem fragmentacije prilikom dinamickog dodjeljivanja spremnika se ne može izbjeci, ali se može
ublažiti. Kako?
Rupe se održavaju što večima kako bi se u njih mogo smjestiti novi program.

 Pri svakom oslobađanju nekog procesnog prostora novo nastala rupa spaja se s eventualnim
susjednim rupama u novu vedu rupu
 Pri svakom novom zahtjevu za spremničkim prostorom potraži se najmanja rupa u koju se može
smjestiti novi program

93. Unatoč tome što se problem fragmentacije prilikom dinamickog dodjeljivanja spremnika može ublažiti,
fragmentacija može postati prevelika. Što treba tada učiniti?
Privremeno obustaviti izvođenje dretvi i „presložiti“ programe u kompaktni prostor.

94. Navesti i dokazati Knuthovo 50% pravilo.


Knuthovo pravilo: u stacionarnom stanju de u spremniku biti broj rupa jednak polovici broja punih blokova.
Izvod:
Knuthovo pravilo pretpostavlja da je vjerojatnost oslobađaja spremničkog prostora jednaka
vjerojatnosti zahtjeva. Pretpostavlja
se da de zbog toga tijekom vremena u sustavu dodi do stohastičkog ravnotežnog stanja odnosno da de prosječan broj
rupa i

15
punih blokova biti stalan. U tom slučaju možemo predpostaviti da postoje 4 tipa blokova razvrstavjudi ih po kriteriju
da li im im jepredhodnik i sljedbenik rupa ili puni blok.
A xxx, B xx0, C 0xx, D 0x0
Veliko slovo je tip bloka, a malo slovo je broj blokova tog tipa. Blokova tipa A ima a.

Vjerojatnost da de se pronadi neka rupa koja de točno odgovarati veličini zahtjevanog prostora je zanemariva i
označava se sa q, a vjerojatnost (p= 1 - q) je zato približno jednaka 1.

Sad idemo prebrojat rupe, blokove tipa ne brojimo jer oni nemaju rupa, a blokove tipa D brojimo dva puta jer imaju
po dve rupe. E sad bududi da ako, recimo, imamo blok tipa B(xx0) i
blok tipa C(0xx) jedan do drugoga vidimo da smo ovu nulu brojili dva puta
i zato moramo cijelu sumu podjelit još sa dva.
n(rupa) = (b+c+2d)/2

Uz to bududi da ako jednom bloku (C) slijedi nula, to mora značiti da de slijededem (B)
prethoditi, što znači da de broj blokova tipa C i tipa B bit jednak c=b .

Znači,
n(rupa)=(2b+2d)/2 = b + d
m(količina punih segmenata)=a + b + c + d

Vjerojatnost da de nastati jedna rupa (znači mora nestat jedan blok tipa A) je a/m.
Vjerojatnost da de se popunit rupa (mora nestat blok tipa D) je d/m + vjerojatnost da postoji zahtjev veličine jedne r
upe u koju de se novi program smjestiti (ili krade q).
Zbog onog prvog uvjeta vjerojatnost popunjavanja i pražnjenja rupa moraju biti otprilike jednaki znači:
a/m = d/m + q ; pomnoži s m, zamjeni q sa 1‐p
a=d + m(1‐p)

uvrstimo sad taj a u


m=a+b+c+d;
m=d + m(1‐p) +b+c+d ;

sad se sjetimo odprije da je c=b i b+d=n


m=d + m‐pm + b +b + d
m=m‐pm +2(n)
pm = 2n
n=1/2pm ; ududi da je p približno 1
n(rupa)=1/2m(memorije)

50% memorije čine rupe .

95. Kako treba podijeliti program (koji u cijelosti ne stane u radni spremnik) u prekloponom nacinu uporabe
radnog spremnika?
Na jedan osnovni dio koji se uvijek nalazi u radnom spremniku i na dijelove koji se naizmjenično smještaju u preostali
dio korisničkog dijela fizičkog spremnika.

96. Kako je podijeljen logicki, a kako fizicki adresni prostor u sustavu sa stranicenjem?
Logički adresni prostor se dijeli na jednako velike dijelove koje nazivamo stranicama (page). Prikladno je da stranice
imaju veličinu koja je cjelobrojna potencija broja dva.

16
Fizički adresni prostor možemo podijeliti na dijelove koji su jednaki veličini stranice logičkog adresnog prostora. Te
zamišljene dijelove nazivamo okvirima (frames). U jedan okvir fizičkog radnog spremnika može se smjestiti jedna
stranica logičkog adresnog prostora

97. O cemu ovisi velicina fizickog i logickog adresnog prostora?


Logički adresni prostor ovisi o arhitekturi, a fizički o RAM-u.

98. Mogu li stranice logickog adresnog prostora biti smještene u okvire fizickog spremnika proizvoljnim
redoslijedom?
Mogu. Time se izbjegava problem fragmentacije.

99. Cemu služi tablica prevodenja? Od kojih se elemenata sastoji?


Služi za prevođenje logičkog u fizički adresni prostor. Sastoji se od direktorija stranica i tablica stranica.

Tablica prevođenja ima dvije razine adresa organizirane po stranicama veličine 4 KB. U prvoj razini je jedna stranica s
1024 kazaljki od po 32 bita (direktorij stranica). Kazaljke direktorija pokazuju na stranice u kojima je opet smješteno
po 1024 riječi od po 32 bita (tablica stranica)

100. U cemu se razlikuju prekidi izazvani zbog promašaja stranice kod stranicenja na zahtjev od ostalih vrsta
prekida?
Prekid zbog adresiranja nepostojede stranice se dogodi usred instrukcije. Nakon obrade prekida mora se ponoviti
instrukcija unutar koje se dogodio prekid. Kod ostalih vrsta prekida, postojanje prekida se provjerava nakon
izvodjenja instrukcije, a ponovno pokretanje dretve započinje sljedečom instrukcijom.

101. Opisati sklopovsku potporu za ostvarenje stranicenja u Intel x86 arhitekturi. Što sadrži i cemu
služi TLB (Translation Lookaside Buffer)? Opisati tablicu prevodenja. Gdje se ona nalazi?
Intel nema registra povijesti. Stranice se razvrstavaju u dva razreda: one u koje se u
prethodnoj periodi pisalo i one u koje se nije
pisalo. Postoji jedan bit pristupa(A) i bit nečistode(D). Prvo se pokuša izbaciti stranica kojoj je A=0. Inače se izbacuje s
tranica
kojoj je bit nečistode 0, odnosno čista stranica.
TLB je 32 bitni priručni međuspremnik za prevođenje adresa koji nam služi za cjelokupno spremanje fizičke adrese i
dijela logičke adres, tj. omoguduje nam da ne moramo uzastopno dohvadati fizičku adresu ako ju trebamo češde.

Koliko puta je potrebno pristupiti radnom spremniku ako se stranica ne nalazi u TLB meduspremniku? 3 a
koliko ako se nalazi u TLB medusprenmiku? 1

102. Koju informaciju nosi bit cistoce? Gdje se on nalazi?


Označava da li se sadržaj stranice mijenjao od njenog prebacivanja u radni spremnik. Ako se mijenjao kod izbacivanja
iz radnog spremnika se mora prepisivati na disk, a ako nije onda se samo obriše iz radnog spremnika.

103. Čemu služi posmačni registar povijesti?


Za izvedbu LRU strategije. Pri punjenju stranice u neki odvir inicijaliziraju se na 0 njezin bit pristupa i posmačni
registar. Kada se pristupi stranici bit pristupa stranice se postavlja u 1. Prekid od sata periodno posmakne sve bitove
pristupa u posmačne registre i zatim bit pristipa izbriše. Sadržaj registra može se pročitati kao binarni broj. Manji broj
pokazuje da se stranicu nije duže vrijeme koristilo. Kada se pojavi potreba za izbacivanjem stranice izbacuje se ona s
najmanjim brojem.

104. Opisati sljedece strategije za izbacivanje stranica: FIFO, LRU, OPT te satni algoritam.
 FIFO – izbacuje se stranica koja je najdulje u radnom spremniku (first-in first-out)
 LRU – izbacuje se stranica koja se najdulje u proslosti nije upotrebljavala (least recently used)

17
 OPT (Optimalna strategija) – izbacuje se stranica koja se najdulje u budučnosti nede upotrebljavati
 Satni algoritam – Stranice se svrstavaju u listu po redu prispjeda. Lista se obilazi kružno posebnom kazaljkom
(kada dođe do kraja kazaljka se vrada na početak liste). Kada se pojavi potreba za praznim okvirom izbacit de
se stranica na koju pokazuje kazaljka ako je njezina zastavica A u 0, inače de se preskočiti i pritom promjeniti
vrijednost A u 0. Kazaljka se pomiče za jedno mjesto dok ne naiđe na stranicu s A=0.

105. Opisati strategiju izbacivanja stranica u Intel x86 arhitekturi kada se u obzir uzimaju dvije zastavice za
oznacavanje stanja stranice.
Zastavice koje se koriste su bit pristupa (A) i bit nečistode (D). Prije se izbacuju stranice u kojima se nije pristupalo i
koje su čiste.

106. U kojim stanjima se mogu nalaziti pojedini okviri tijekom rada?


 Aktivno stajne – okvir je dodjeljen jednom od procesa i njegov se redni broj (kazaljka koja pokazuje na njegov
početak) nalazi u tablici prevođenja tog procesa
 Slobodno stanje – okvir se nalazi u povezanoj listi oslobođenih okvira
 Slobodno stanje s obrisanim sadržajem – okvir je spreman za dodjeljivanje

9. Datotečni podsustav
107. Navesti sadržaj opisnika datoteke.
 Naziv datoteke
 Tip
 Lozinka
 Ime vlasnika
 Prava pristupa
 Vrijeme stvaranja
 Vrijeme zadnje uporabe
 Ime posljednjeg korisnika, i slično
 Opis smještaja

108. Gdje su pohranjeni

a) opis smještaja datoteke - u opisniku datoteke


b) opisnik datoteke - na disku u nekom volume-u
c) datotecna tablica - u opisniku datoteke

109. Navesti sadržaj datotecne tablice.


 broj sektora po disku (kapacitet)
 broj slobodnih sektora (veličina slobodnog prostora)
 informacije o slobodnim sektorima
 tablica opisnika pohranjenih datoteka

110. Na koji nacin se može prikazati slobodan prostor na disku.


 bitovni prikaz
 lista slobodnih sektora
 lista nakupina sektora

18
111. Opisati bitovni prikaz slobodnog prostora na disku.
U nizu bitova svakom sektoru odnosno nakupini sektora pripada jedan bit čija je vrijednost jednaka 1 kada je sektor
odnosno nakupina zauzeta, inace 0.

112. Opisati prikaz slobodnog prostora u obliku liste slobodnih blokova.


Svaki element liste sadrzi tri lokacije. Prvo je kazaljka na sljedeci slobodan element, drugo adresa prvog slobodnog
sektora, a trece broj slobodnih sektora.

113. Opisati nacin smještaja datoteka u UNIX datotecnim podsustavima (i-node).


Opisnik datoteke u UNIXu zove se i-node. Uz pretpostavku da je sektor velik 1KB u jedan sektor se može smjestiti 256
kazaljki. U opisniku se nalazi 13 kazaljki i to:
 10 neposrednih kazaljki
 1 jednostruko indirektna kazaljka
 1 dvostruko indirektna kazaljka
 1 trostuko indirektna kazaljka
Pristup do datoteke obavlja se na sljededi način:
 Prvih deset sektora dohvada se neposrednim kazaljkama čime se može dohvatiti sve sektore datoteka manjih
od 10KB
 Jedanaesta kazaljka pokazuje na sektor u kojem se nalazi sljedečih 256 kazaljki (256 + 10)KB
 Dvanaesta kazaljka pokazuje na sektor u kojem su kazaljke na 256 sektora svaki s 256 kazaljki
(256*256+256+10)KB
 Trinaesta kazaljka pokazuje na trostuko stablo kazaljki (256*256*256+256*256+256+10)KB = 16GB

114. Opisati nacin smještaja datoteka u NTFS datotecnom podsustavu. Što je MFT? Kako se pohranjuju
„male“ datoteke?
Diskovni prostor dodjeljuje se po skupinama sektora (po 1, 2, 4 ili 8 sektora). NTFS sadrži datoteku MFT (glavna
tablica datoteka) u kojoj se nalaze opisnici svih datoteka (ukljucujuci i nje same). Jedan MFT zapis ima veličinu jedne
skupine sektora (npr. 4KB). Za veče datoteke zapis sadrži indekse skupina sektora i ako je potrebno dodatno
proširenje opisa.
Datoteka se dijeli na djelove koji su jednako veliki kao nakpine sektora (virtualne skupine). Za smještaj datoteka
pronalazi se što više uzastopnih skupina sektora i dodjeljuje se datoteci (ako nema uzastopnih dodjeljuju se
pojedinačne skupine).
Male datoteke smještaju se unutar MFT zapisa.

19
Operacijski sustavi
prof. Marin Golub

- službena stranica : http://www.zemris.fer.hr/labosi/os1/tehvel

- preporučena literatura: Operating System Concepts – Silberschatz

Ivan Nenadić
Operacijski sustavi – predavanja 2/34

Predgovor

Ova skripta je rađena po bilješkama sa auditornih predavanja kolegija ‘Operacijski


sustavi’ te je moguće da se u njoj pojavljuju raznorazne greške (tipfeleri, krivi prijepisi
s ploče, netočne informacije..) pa molim da sve greške ili gradivo koje nije upisano u
ovoj skripti, a trebalo bi biti, prijavite na inenadic@yahoo.com .

Dilanje ove skripte kao i njezino prepravljanje je potpuno besplatno (bar što se
autora tiče :-)

P.S. posebna zahvala Zoranu Marinčiću na nadopuni skripte kad ja nisam bio
prisutan na predavanjima :-)

Operacijski sustavi - predavanja 2/34


Operacijski sustavi – predavanja 3/34

Sadržaj

1.Model jednostavnog računala.................................................................................. 6

1.1 Dijelovi OS-a ..................................................................................................... 6

1.2 Rudimentalno računalo ..................................................................................... 6

1.3 Osnovni registri procesora ................................................................................ 7

1.4 Procesor trajno radi sljedeće............................................................................. 8

1.5 Osnovni pojmovi ............................................................................................... 8

1.6 Proces se sastoji od .......................................................................................... 8

2.Obavljanje I/O operacija, prekidni rad...................................................................... 9

2.1 Prenošenje znakova radnim čekanjem ............................................................. 9

2.2 Prekidni način rada procesora ........................................................................ 10

2.3 Podsustav za prihvat više prekida................................................................... 10

2.4 Prenošenje blokova i sklopovi s neposrednim pristupom................................ 12

3. Datotečni podsustav ............................................................................................. 13

3.1 Koncepcija datoteka........................................................................................ 13

3.2 Opisnik datoteka ............................................................................................. 13

3.3 Smještaj datoteka u vanjskom spremniku ....................................................... 14

3.4 Tipične datotečne operacije ............................................................................ 17

4. Međusobno isključivanje u višedretvenim sustavima............................................ 19

4.1 Model višedretvenosti ..................................................................................... 19

4.2 Ostvarenje međusobnog isključivanja dretvi ................................................... 21

4.3 Sklopovska potpora međusobnom isključivanju.............................................. 23

5. Jezgra OS-a ......................................................................................................... 24

5.1 Uvod................................................................................................................ 24

5.2 Struktura podataka jednostavnog modela jezgre ............................................ 24

5.3 Prikaz mogućih stanja dretvi ........................................................................... 26

Operacijski sustavi - predavanja 3/34


Operacijski sustavi – predavanja 4/34

5.4 Jezgrine funkcije ............................................................................................. 26

6. Međudretvena komunikacija ................................................................................. 29

6.5 Pokretanje više procesa.................................................................................. 29

6.6 Višedretveni rad .............................................................................................. 29

7. Gospodarenje spremničkim prostorom (Memory Management – MM)................. 30

7.1 Fragmentacija ................................................................................................. 30

7.2 Ocjena fenomena fragmentacije (Knuthovo 50% pravilo) ............................... 31

7.3 Straničenje ...................................................................................................... 32

7.4 Praktična ostvarenja izbacivanja stranica ....................................................... 33

Slike

Slika 1 - Dijelovi OS-a................................................................................................. 6

Slika 2 - procesor i spremnik povezan na sabirnicu.................................................... 7

Slika 3 - pristupni sklop za prijenos pojedinačnih znakova ......................................... 9

Slika 4 - više prekidnih signala spojenih na jedan prekidni ulaz procesora .............. 10

Slika 5 - dijagram rada prekida i prekidne rutine....................................................... 11

Slika 6 - sustav sa sklopom za prihvat prekida ......................................................... 12

Slika 7 - jednostavni model sklopa za neposredni pristup spremniku....................... 12

Slika 8 - Opisnik datoteke ......................................................................................... 13

Slika 9 - ploče tvrdog diska....................................................................................... 14

Slika 10- Fizički sektori nisu logički susjedni sektori ................................................ 17

Slika 11 - Grafički prikaz 4 strategije posluživanja.................................................... 18

Slika 12 - Jezgra OS-a ............................................................................................. 24

Slika 13 – Opisnici .................................................................................................... 25

Slika 14 - moguća stanja dretvi................................................................................. 26

Slika 15 – statička fragmentacija radnog spremnika................................................. 30

Slika 16 - dinamička fragmentacija radnog spremnika ............................................. 30

Operacijski sustavi - predavanja 4/34


Operacijski sustavi – predavanja 5/34

Slika 17 - tipovi blokova ............................................................................................ 31

Operacijski sustavi - predavanja 5/34


Operacijski sustavi – predavanja 6/34

1.Model jednostavnog računala

def: Operacijski sustav je skup programa koji nam olakšavaju rad na računalu.

Današnji operacijski sustavi omogućuju višekorisnički i višezadaćni rad.

1.1 Dijelovi OS-a

Slika 1 - Dijelovi OS-a

- MMU – Memory Management Unit

- API – Application Program Interface

- GUI – Graphic User Interface

- I/O – Input/Output

1.2 Rudimentalno računalo


- procesor i radni spremnik

- pretpostavke:

1. U radnom spremniku nalazi se strojni oblik programa i svi potrebni podaci

2. Rezultati programa također se pohranjuju u radni spremnik

- u jednom sabirničkom ciklusu može se obaviti samo jedno ili čitanje ili pisanje
u radni spremnik

Operacijski sustavi - predavanja 6/34


Operacijski sustavi – predavanja 7/34

Slika 2 - procesor i spremnik povezan na sabirnicu

registri – služe za pohranjivanje svih informacijskih sadržaja koji ulaze ili izlaze iz
procesora i u njemu se transformiraju.

1.3 Osnovni registri procesora


- adresni međuregistar (AMR)

- podatkovni međuregistar (PMR)

- instrukcijski međuregistar – pohranjuju se instrukcije koje se izvode

- programsko brojilo (PC)

- registar kazaljke STOG-a (SP – Stack Pointer)

- skup općih registara

Operacijski sustavi - predavanja 7/34


Operacijski sustavi – predavanja 8/34

1.4 Procesor trajno radi sljedeće


Ponavljati {
dohvati iz spremnika instrukciju na koju pokazuje PC;
PC++;
dekodirati instrukciju i odrediti operaciju;
odrediti adresu operanada i rezultata;
operande dovesti u Aritmetičko-Logičku Jedinicu (ALJ) i izvesti operaciju;
pohrani rezultat;
Ako je (prekidni signal postavljen) {
zabraniti prekidanje;
aktivirati sustavni adresni prostor i sustavnu kazaljku STOG-a;
PC pohraniti na sustavni STOG;
u PC staviti adresu potprograma prekida;
}
}

Procesor “provlači” kroz niz instrukcija instrukcijsku dretvu.

1.5 Osnovni pojmovi


1. Program – nešto što je pohranjeno na papiru, disketi, memoriji,...
- statični niz instrukcija

2. Dretva (thread) - niz instrukcija koje se izvode

3. Proces - skup računalnih resursa koji omogućuju izvođenje programa


- “sve što je potrebno” da bi se program izvodio
- okolina koja omogućuje izvođenje programa

1.6 Proces se sastoji od


1. barem jedne dretve

2. zajedničkog adresnog prostora

3. adresnog prostora rezerviranog za pojedinu dretvu

4. STOG, kazaljka STOG-a, opisnici datoteka, opisnici cijevovoda, redovi


poruka, semafori...

Operacijski sustavi - predavanja 8/34


Operacijski sustavi – predavanja 9/34

2.Obavljanje I/O operacija, prekidni rad

2.1 Prenošenje znakova radnim čekanjem

PR – podatkovni registar
RS – registar stanja

Slika 3 - pristupni sklop za prijenos pojedinačnih znakova

Prenošenje jednog bajta prema izlaznoj napravi:


1. Jednom instrukcijom bajt se dobavlja iz spremnika u registar procesora

2. Drugom instrukcijom bajt se prenosi u podatkovni registar

Prihvat jednog bajta od ulazne naprave:


Jedan način prijenosa naziva se radno čekanje:

Pročitati RS;
dok je (zastavica == 0) pročitati RS;
pročitati PR; //ovim čitanjem zastavica se vraća u ‘0’

Dvožično rukovanje:

Operacijski sustavi - predavanja 9/34


Operacijski sustavi – predavanja 10/34

2.2 Prekidni način rada procesora

ZASTAVICA ↑ - generira električki signal koji se preko posebnog vodića dovodi do


procesora.

PREKID – procesor prelazi iz korisničkog načina rada u sustavski ili jezgrivi


način rada
- pozivaju se potprogrami koji sačinjavaju jezgru OS-a
- procesor pri prelasku u jezgriv način rada djeluje tako da:
- onemogući prekidanje
- adresira sustavski dio spremnika
- aktivira sustavski registar sustavske kazaljke STOG-a
- programsko brojilo ide na sustavski STOG
- u PC se postavlja kazaljka na početak potprograma

- ponašanje procesora treba nadopuniti tako da on na kraju izvođenja svake


instrukcije ispituje da li se pojavljuje prekidni signal (to se na različitim
arhitekturama izvodi na različite načine)

Pogledati ‘procesor trajno radi sljedeće’

Na početku potprograma sve registre pohraniti na sust. STOG (pohraniti kontekst)

Na kraju programa vratiti registre obrnutim redoslijedom (obnoviti kontekst)

Prije nego što se PC sa sustav. STOG-a vrati, treba se vratiti iz prekidnog načina
rada:

- omogućiti prekidanje

- prebaciti adresiranje u korisnički adresni prostor

- aktivirati korisnički registar kazaljke STOG-a

2.3 Podsustav za prihvat više prekida


Najjednostavniji oblik:
(Zastavica 1, zastavica 2,...zastavica n)

Slika 4 - više prekidnih signala spojenih na jedan prekidni ulaz procesora

Operacijski sustavi - predavanja 10/34


Operacijski sustavi – predavanja 11/34

Nedostatak: manje važan prekid (čija obrada dugo traje) može ometati rad važnijih
prekida

Podsustav za prihvat više prekida razvrstanih po prioritetima s


najjednostavnijim sklopovljem:
- navedeni nedostatak može se otkloniti programskim rješenjem

- pristupni sklopovi su razvrstani po važnosti ili prioritetu (npr. veći broj – veći
prioritet)

Slika 5 - dijagram rada prekida i prekidne rutine

Prekidna rutina ( ) {
(prekidni signal ↑, prekidanje onemogućeno, PC je na sust. STOG-u)
pohrani kontekst na sust. STOG;
ispitati uzrok prekida, indeks prekida i;
Ako je (1<=i<=N) {
oznaka_čekanja[ i ] = 1;
zastavica_i = 0;
Dok (postoji oznaka_čekanja[ j ] != 0 && j>tekući_prioritet) {
odaberi najveći j;
oznaka_čekanja[ j ] = 0;
zapis[ j ] ← kontekst sa sust. STOG-a, tekući_prioritet;
tekući_prioritet = j;
omogući prekidanje;
potprogram za obradu prekida ( j );
zabrani prekidanje;
zapis[ j ] → kontekst na sust. STOG, tekući_prioritet;
} obnovi kontekst sa sust. STOG-a;
omogući prekidanje;
vrati se iz prekidnog načina rada;
}
}

Operacijski sustavi - predavanja 11/34


Operacijski sustavi – predavanja 12/34

Sklopovska potpora za ostvarivanje višestrukog prekidanja:

Slika 6 - sustav sa sklopom za prihvat prekida

Prekidi generirani unutar procesora:


Uzrokuju ih: - dijeljenje s nulom
- adresiranje nepostojeće lokacije u adresnom prostoru
- dekodiranje nepostojeće instrukcije

Programski prekidi:
Postoji barem jedna instrukcija koja omogućuje namjerno izazivanje prekida iz
programa.

2.4 Prenošenje blokova i sklopovi s neposrednim pristupom

AR – adresni registar

BR – brojač

Slika 7 - jednostavni model sklopa za neposredni


pristup spremniku

Operacijski sustavi - predavanja 12/34


Operacijski sustavi – predavanja 13/34

3. Datotečni podsustav

3.1 Koncepcija datoteka


Datoteka je skup informacija povezanih u jednu cjelinu.

Datoteka i rad s datotekama je najvidljiviji dio OS-a.

Datotečni podsustav sastoji se od:

1. datoteka

2. direktorija (tablica)

3. procedura za manipuliranje datotekama

OS sadrži naredbe za rad s direktorijima i datotekama

osnovne naredbe:
- stvori direktorij: md ili mkdir
- briši direktorij: rmdir
- premjesti se: cd
- kopiraj: cp
- premjesti datoteku ili direktorij: mov
- briši: rm

3.2 Opisnik datoteka


Svaka datoteka je u potpunosti opisana svojim opisnikom.

pravo pristupa (zastavice): [UNIX]

User Group Other

r w x r w x r w x

chmod o-rwx .. briše rwx flagove sa ‘other’

chmod go+rx .. stavlja flagove rx na ‘group’ i ‘other’

Slika 8 - Opisnik datoteke

Operacijski sustavi - predavanja 13/34


Operacijski sustavi – predavanja 14/34

3.3 Smještaj datoteka u vanjskom spremniku

Slika 9 - ploče tvrdog diska

Staze su podijeljene na sektore jednake veličine (kapacitet)

Svaki vanjski spremnik ima svoju datotečnu tablicu.

Na disku su neke od staza rezervirane za smještaj tablica.

Organizacija tablica se razilkuje od OS-a do OS-a.

Osnovni sadržaj datotečne tablice je:

1. broj sektora po disku

2. broj slobodnih sektora

3. Informacije o slobodnim sektorima

4. tablica opisnika pohranjenih datoteka

Informacije o slobodnim sektorima – evidencija o slobodnom prostoru na disku:

a) binarni prikaz

011010011010

sektor zauzet

sektor slobodan

Operacijski sustavi - predavanja 14/34


Operacijski sustavi – predavanja 15/34

- prednost: sektori s greškom se prilikom formatiranja mogu postaviti u 1 (i više


ih nikad ne možemo koristiti)

- mana: slobodan prostor saznajemo brojeći nule (traje)

b) lista slobodnih blokova (skupina sektora) X

c) lista slobodnih skupina blokova √

Svaki sektor ima jedinstvenu adresu koja se sastoji od:

a) rednog broja ploče

b) rednog broja staze na ploči

c) rednog broja sektora na stazi

Adresira se blok bajtova a ne 1 bajt! (1 sektor ili više)

NTFS (MS WINDOWS NT, 2000, ...) – NT File System

Prostor na disku dodjeljuje se po skupinama sektora (cluster)

Cluster se sastoji od n sektora

n vel. diska B (byte)

1 < 512Mb 512

2 do 1Gb 1024

4 do 2Gb 2048

8 > 2Gb 4056

LNC – logički broj skupine

- redni broj skupine (od početka do kraja)

- fizička adresa = n . LNC

Operacijski sustavi - predavanja 15/34


Operacijski sustavi – predavanja 16/34

MFT – datoteka; glavna tablica datoteka (Master File Table)

- svaka datoteka (pa i MFT) ima u toj datoteci zapis koji je opisnik datoteke

- datoteka MFT je podijeljena na zapise a svaki taj zapis je veličine jedne


skupine

- male datoteke smještavaju se unutar MFT zapisa

- velike datoteke – u MFT-u se nalaze indeksi skupina sektora (podaci o


smještaju datoteke) i ukoliko je potrebno, MFT zapis se proširuje za dodatni
zapis.

VCN – virtualni redni broj skupine (Virtual Cluster Number)...0, 1, 2, ...

Za smještanje datoteke pronalaze se uzastopne skupine sektora (ako ih ima) i


dodjeljuju se datoteci.

UNIX FS: i-node (indeksni čvor)

U opisniku se tipično predviđa:

10k – 10 direktnih kazaljki (na sektore ili skupine sektora)

10+255 – 1 jednostruko indirektna kazaljka

Uzimamo da je sektor veličine 1k, kazaljke veličine 1B

266+256.256 – 1 dvostruko indirektna kazaljka

- 1 trostruko indirektna kazaljka

(10+256+256.256+2563 ≈ 16Gb)

Operacijski sustavi - predavanja 16/34


Operacijski sustavi – predavanja 17/34

Ukupno trajanje prijenosa podataka


trajanje postavljanja glave
trajanje traženja staze (seek time)
→ ovisi o početnom i krajnjem položaju glave
→ sastoji se od: 1. ubrzavanje glave
2. konstantna brzina
3. usporavanje
4. fino podešavanje
+ rotacijsko kašnjenje =TR/2 TR – vrijeme jednog okretaja
+ trajanje prijenosa podataka (data transfer time)
trajanje čitanja dijela ili cijele staze
(po potrebi treba uzeti u obzir faktor PREPLITANJA)
+ trajanje premještanja glave sa staze na stazu

Slika 10- Fizički sektori nisu logički susjedni sektori

Ako su dva sektora koji logički slijede jedan iza drugoga fizički smješteni na
sektorima n i n+k tada je faktor preplitanja jednak ‘k’.

3.4 Tipične datotečne operacije


- stvoriti

- izbrisati

- kopirati

- premjestiti

- otvoriti

- zatvoriti

- čitati

- pisati

Operacijski sustavi - predavanja 17/34


Operacijski sustavi – predavanja 18/34

Zadatak:

Disk s pokretnim glavama ima 100 staza (0-99). Neka se glava trenutno nalazi na
stazi 29 s tim da je prije bila na stazi 8. Zahtjevi za pristup pojedinim stazama
svrstani su po redu prispjeća: 3, 7, 40, 98, 71, 68, 70, 21, 5, 49.

a) koliki je ukupan pomak glave pri izvršenju tih zahtjeva za sve 4 strategije
posluživanja?

b) opisati svaku od navedenih strategija

c) kod kojih strategija može doći do izgladnjivanja (beskonačnog odgađanja


posluživanja nekih zahtjeva zbog posluživanja novopristiglih zahtjeva)?

d) grafički prikazati kretanje glave prilikom obrade danih zahtjeva za sve 4


strategije

Slika 11 - Grafički prikaz 4 strategije posluživanja

1. FCFS (First Come First Served) – posluživanje po redu prispijeća.

2. SSTF (Shortest Seek Time First) – posluživanje najbližih zahtjeva (može doći
do izgladnjivanja.

3. SCAN – skeniranje (ovisi o položaju glave prije početnog).

4. C-SCAN (Circular SCAN) – kružno skeniranje (posluživanje).

Operacijski sustavi - predavanja 18/34


Operacijski sustavi – predavanja 19/34

4. Međusobno isključivanje u višedretvenim sustavima

4.1 Model višedretvenosti

Dretve

- proces se sastoji od barem jedne dretve

- podaci rerzervirani za proces dostupni su svim dretvama

- dretveni dio spremničkog prostora sastoji se od:

-dijela gdje su smještene instrukcije


-STOG, kazaljka STOG-a
-lokalni podaci

- problem sinhronizacije prilikom pristupa zajedničkim podacima treba nekako


riješiti

- dretve se mogu izvoditi istodobno (paralelno) na više procesora ili prividno


istodobno (prividno paralelno) ako se izvode na istom procesoru (dretve se
izvode naizmjenično)

Dretva T čita podatke iz domene D, obavlja neku funkciju f(D) nad podacima iz
domene i rezultat upisuje u poddomenu K.. ( f(D)=K).

Ti – i-ta dretva, fi : Di →Ki

DVA ZADATKA SU MEĐUSOBNO NEZAVISNA AKO NEMAJU ZAJEDNIČKIH


LOKACIJA U SVOJIM DOMENAMA I PODDOMENAMA.

Uvijet nezavisnosti zadataka i i j je:

( K i ∩ K j ) ∪ ( Di ∩ K j ) ∪ ( D j ∩ K i ) = 0
Pišu na isto mjesto Piše tamo gdje drugi čita .

K-kodomena – mjesto gdje se upisuju rezultati

Kada zadaci pišu na isto mjesto, zadaci su zavisni.

( Di ∩ D j ) - nema jer smijemo čitati iz iste memorijske lokacije

Operacijski sustavi - predavanja 19/34


Operacijski sustavi – predavanja 20/34

Z1 – zadatak koji obavlja dretva

Z1 < Z2 – ukoliko se mora poštivati redoslijed

T1 → T2 – prvo se mora obaviti T1

Zadatak:

Sustav zadataka je zadan u obliku lanca: Z1→Z2→Z3→Z4→Z5→Z6→Z7

Zadaci imaju domene D i kodomene K prema tablici:

Z2 Z3 Z4 Z5 Z6 Z7 Z8

M1 D D D K

M2 K K D D

M3 K D K K

M4 K D

*M1-M4 – Skupine memorijskih lokacija

Odrediti maksimalni paralelni sustav zadataka uzimajući u obzir njihov međusobni


odnos u lancu.

1.Utvrđivanje zavisnosti ( K i ∩ K j ) ∪ ( Di ∩ K j ) ∪ ( D j ∩ K i ) = 0

Operacijski sustavi - predavanja 20/34


Operacijski sustavi – predavanja 21/34

2.Eliminacija redudantnih (suvišnih) zavisnosti:

3.Određivanje maksimalnog paralelnog sustava zadataka:

4.2 Ostvarenje međusobnog isključivanja dretvi


Dretva {
dok je (1) {
K.O. // Kritični odsječak (critical section)
N.K.O. // Ne-Kritični odsječak
}
}

Kritični odsječak je dio programa u kojem dretve koriste neko zajedničko sredstvo
(zajednička memorija, datoteka..).

Operacijski sustavi - predavanja 21/34


Operacijski sustavi – predavanja 22/34

ALGORITAM MEĐUSOBNOG ISKLJUČIVANJA MORA ZADOVOLJITI SLJEDEĆA 4


UVJETA:

Samo jedna dretva u nekom trenutku može biti u K.O.

Algoritam međusobnog isključivanja mora djelovati i onda kada su brzine izvođenja


dretvi različite.

Ako neka dretva zastane u N.K.O. to ne smije spriječiti drugu dretvu da uđe u K.O.

Izbor koja dretva treba ući u K.O. mora se obaviti u konačnom vremenu.

Dretva {
dok je (1) {
dok je (ZASTAVICA==1); //radno čekanje
ZASTAVICA=1;
K.O.;
ZASTAVICA=0;
N.K.O.;
}
}

dok je (1) {
dok je (PRAVO!=I);
K.O.;
PRAVO=J;
N.K.O.;
}

Rješenje:

Dekkerov algoritam (služi za međusobno isključivanje dvije dretve (Petersonov


algoritam također)).

dok je (1) {
ZASTAVICA[ I ]=1;
dok je (ZASTAVICA[ J ]==1) {
ako je (PRAVO==J) {
ZASTAVICA[ I ]=0;
dok je (PRAVO==J);
ZASTAVICA[ I ]=1;
}
}
K.O.;
PRAVO=J;
ZASTAVICA[ I ]=0;
N.K.O.;
}

Operacijski sustavi - predavanja 22/34


Operacijski sustavi – predavanja 23/34

Lamportov algoritam (za međusobno isključivanje n dretvi)

4.3 Sklopovska potpora međusobnom isključivanju


1.TAS (Test And Set) – nedjeljiva instrukcija

dok je (1) {
dok je (TAS_zastavica==1);
K.O.;
ZASTAVICA=0;
N.K.O.;
}

2.SWAP

dok je (1) {
a=1;
dok je (a==1) SWAP(KLJUČ,A);
K.O.;
KLJUČ=0;
N.K.O.;
}

3.FETCH_AND_ADD

Operacijski sustavi - predavanja 23/34


Operacijski sustavi – predavanja 24/34

5. Jezgra OS-a

5.1 Uvod
PREKID izaziva ulazak u jezgru.

JEZGRA odlučuje kad će se koja


dretva obavljati.

Izlaz iz jezgre – jezgrina funkcija je


završila, nastavlja se izvoditi prekinuta
dretva.

Slika 12 - Jezgra OS-a

Jezgra se sastoji od:

1. struktura podataka

2. jezgrinih funkcija

5.2 Struktura podataka jednostavnog modela jezgre


Opisnik dretve sastoji se od:

kazaljke

PID (Process ID)

ID dretve

stanja dretve (pasivna, aktivna, blokirana, pripravna)

prioriteta

početne adrese dretvenog spremničkog prostora

veličine dretvenog spremničkog prostora

adrese prve instrukcije

kašnjenja

prostora za smještaj konteksta (sadržaj svih registara)

Operacijski sustavi - predavanja 24/34


Operacijski sustavi – predavanja 25/34

Opisnici dretvi su smješteni u listama, tj. redcima.

Slika 13 – Opisnici

Red – po redu prispjeća

- prioritetni red

Liste ili redovi:

- lista postojećih dretvi

- lista aktivnih dretvi

- lista pripravnih dretvi

- red semafora (binarni – BSEM, opći – OS, OSEM)

- red odgođenih dretvi

- red UI naprave

Operacijski sustavi - predavanja 25/34


Operacijski sustavi – predavanja 26/34

5.3 Prikaz mogućih stanja dretvi

Slika 14 - moguća stanja dretvi

5.4 Jezgrine funkcije


a) Ulazak u jezgru (ili poziv jezgrine funkcije) zbiva se pod utjecajem prekida kada se
događa sljedeće:

• onemogući prekidanje

• pospremi programsko brojilo na sustavski stog (da se ‘program’ zna vratiti


tamo gdje je prekinut)

• pohrani kontekst na sustavski stog

• poziva se odgovarajuća jezgrina funkcija

Na početku svake jezgrine funkcije treba pohraniti kontekst sa sustavskog stoga u


opisnik ‘aktivna dretva’, to se zove pohraniti kontekst u opisnik aktivna_D.

b) Izlaz iz jezgre zbiva se kada jezgrina funkcija završi, svodi se na aktiviranje jedne
od dretvi (aktivira prvu dretvu iz reda pripravnih dretvi), a događa se sljdeće:

• premjestiti prvi opisnik iz reda pripradne_D u red aktivna_D

• obnoviti kontekst opisnika aktivna_D

• omogućiti prekidanje

Operacijski sustavi - predavanja 26/34


Operacijski sustavi – predavanja 27/34

• vratiti se iz prekidnog načina rada( PC sa sustavskog stoga u PC registar,


PC se zadnji obnavlja )

Usporedba binarnog i općeg semafora:

Binarni semafor Opći semafor

BSEM OS

Semafor je jezgrin mehanizam koji omogućuje međusobno isključivanje dretvi, a


sastoji se od:

BSEM.v Å jedne varijable Æ OS.v

0Æ neprolazan (crveno) <=0 Æ neprolazan


1Æ prolazan (zeleno) jedne kazaljke >0 Æ prolazan

Red semafora obično se formira po redu prispjeća.

čekaj_BSEM Moguća stanja su : čekaj_OS


postavi_BSEM postavi_OS
• semafor je prolazan

• neprolazan ali je
red prazan

• neprolazan ali netko


čeka

Operacijski sustavi - predavanja 27/34


Operacijski sustavi – predavanja 28/34

Što se događa prilikom poziva jezgrinih funkcija (semafora)?

zeleno crveno crveno


(nitko ne čeka) (netko čeka)

čekaj_BSEM v = 0 (prođi) pređi u red BSEM

postavi_BSEM - (već je zeleno) v=1 (nema nikog) premjesti prvi


opisnik iz reda
BSEM u red
pripravne
dretve(aktivira prvu
dretvu koja se
nalazi u redu)

čekaj_OS v--; (prođi) v--; (pređi u red OS, ide u red koji hoće
proći preko semafora)

postavi_OS v++; v++; v++; (ako je


vrijednost == 0,
premjesti prvi
opisnik iz reda OS
u red pripravne
dretve)

čekaj_OSEM v--; prijeđi u red OSEM

postavi_OSEM v++; (crveno je, v++; premjesti prvi


ako nema nikoga u opisnik iz reda
redu, pozeleni) OSEM u red
pripravne dretve
(prpustiti prvu
dretvu)

OS ima mnogo crvenih i zelenih stanja


OSEM ima mnogo prolaznih (zelenih) stanja, i samo jedno neprolazno

Operacijski sustavi - predavanja 28/34


Operacijski sustavi – predavanja 29/34

6. Međudretvena komunikacija

"Medjudretvena
komunikacija.ppt"
vidjeti predavanja power point…..

6.5 Pokretanje više procesa


int fork (void);

Vraća:

'-1' ako se dogodi greška ili ako nemože stvoriti novi proces

'0' ako uspije svoriti proces dijete, ono dobiva vrijednost '0'

vraća PID (process id)

Proces roditelja i proces djeteta nemaju isti PID


Kada se stvara novi proces, OS ne kopira sve varijable u proces dijete, to se dogodi
samo onda kad se dotična varijabla koristi u procesu dijeteta.

Proces dijete postaje proces 'zombie', ako ga roditelj ne čeka (wait (NULL)), kada
proces završi on vraća NULL procesu roditelj, pa stoga proces roditelj treba čekati
dok se proces dijete ne završi.

6.6 Višedretveni rad

thr_create(....argumenti....); // stvara više dretvi unutar istog procesa

U sustavu POSIX pthr_create (......);

thr_create() vraća: '-1' Æ ako se dogodi greška ili ako nemože stvoriti novu
dretvu

Operacijski sustavi - predavanja 29/34


Operacijski sustavi – predavanja 30/34

7. Gospodarenje spremničkim prostorom (Memory


Management – MM)

7.1 Fragmentacija
Radni spremnik
A) statičko raspoređivanje radnog spremnika

- veličina okvira (stranice) je jednaka

- okvir na disku je obično veličine jednog sektora

Slika 15 – statička fragmentacija radnog spremnika

1) Unutarnja fragmentacija – (moj komentar, ubuduće ovom bojom i italic:-)


program koji se smješta u memoriju nikada nije točno velik kao i stranica pa
će uvijek ostati mali dio praznog prostora u bloku/sektoru.

2) Vanjska fragmentacija – Svi programi koji su smješteni u određenu particiju


su blokirani a drugi koji čekaju nisu pripremljeni za izvođenje u toj particiji.

B) dinamičko raspoređivanje radnog spremnika

Slika 16 - dinamička fragmentacija radnog spremnika

Vanjski spremnik (HD,...)


Pojavljuju se statička unutarnja i dinamička fragmentacija (pogledati primjere gore).

Operacijski sustavi - predavanja 30/34


Operacijski sustavi – predavanja 31/34

Unutarnja fragmentacija kod velike datoteke nije višekratnik veličine slobodnih


sektora.

Kolika je unutarnja fragmentacija tvrdog diska?

UF = Broj datoteka . veličina sektora/2


7.2 Ocjena fenomena fragmentacije (Knuthovo 50% pravilo)
Postoje 4 tipa blokova (punih):

Slika 17 - tipovi blokova

prvi redak blokova:

broj punih blokova: m=a + b + c + d


broj rupa: n=(2d + b + c) / 2 ; b=c => (2d + 2b) / 2 => n = b + d

drugi redak blokova:

vjerojatnost da broj rupa povećamo za 1 = vjerojatnost oslobađanja . a/m


vjer. da broj rupa smanjimo za 1 = vjer. oslobađanja . d/m + (vjer. zahtjeva . q)
(q<<) ; (p+q=1)

U kojem odnosu su m i h ?

Uvjet ravnoteže:

vjerojatnost zauzimanja = vjerojatnost oslobađanja


vjer. da se broj rupa poveća za jedan = vjer. da se broj rupa smanji za 1

a d
= +q a = d + m(1 − p)
m m
m=a+b+c+d
m = d + m(1-p) + b + c + d, b = c
m = 2d + m – mp + 2b =
= 2(d+b) + m – mp
m = 2n + m – mp
2n = mp
n = (m / 2) . p ; (p ≈ 1) => n = m / 2

U stacionarnom stanju broj rupa jednak je polovici broja punih blokova.

Operacijski sustavi - predavanja 31/34


Operacijski sustavi – predavanja 32/34

7.3 Straničenje
Strategije izbacivanja stranica
Zadatak: u sustavu sa straničenjem program veličine 400 riječi (1-400) generira slijed
adresa: 23, 47, 333, 81, 105, 1, 400, 157, 30, 209, 289, 149 i 360.
Program ima na raspolaganju 200 riječi primarne memorije.
Napisati niz referenciranja stranica veličine 50 riječi (to je veličina stranice).
Koliki je postotak promašaja za sve tri strategije izbacivanja stranica?

Zahtjevi 23 47 333 81 105 1 400 157 30 209 289 149 360

Stranice 1 1 7 2 3 1 8 4 1 5 6 3 8

FIFO 1 1 1 1 8 8 8 8 6 6 6
- 7 7 7 7 4 4 4 4 3 3
- - 2 2 2 2 1 1 1 1 8
- - - 3 3 3 3 5 5 5 5

LRU 1 1 1 1 1 1 1 1 1 8
- 7 7 7 8 8 8 6 6 6
- - 2 2 2 4 4 4 3 3
- - - 3 3 3 5 5 5 5

OPT 1 1 1 1 1 1 5 5
- 7 7 7 7 4 4 6
- - 2 2 8 8 8 8
- - - 3 3 3 3 3

FIFO (First In First Out) – izbacuje se ona stranica koja je bila prva dohvaćena.
Svako dobavljanje stranice iz tvrdog diska u radni spremnik naziva se promašaj, a
pogodak kada se traži stranica koja se već nalazi u radnom spremniku.

LRU (Last Recently Used) – izbacuje se ona stranica koja se u povijesti najdulje nije
koristila.

OPT (optimalna strategija) – uzima u obzir budućnost i nije jednoznačna.

Broj stranice u koju spada određena riječ dobije se tako da se podijeli broj te riječi sa
veličinom stranice..npr. 23 / 50 = 0.xx => spada u prvu stranicu, 81 / 50 = 1.xx =>
spada u drugu stranicu.

Postotak promašaja se računa kao broj_promašaja / broj zahtjeva..npr. za FIFO:


(11 / 13) . 100%

Operacijski sustavi - predavanja 32/34


Operacijski sustavi – predavanja 33/34

7.4 Praktična ostvarenja izbacivanja stranica


Zamjena se treba obaviti što je moguće brže.

a) “algoritam što je moguće brže”

b) “postotak promašaja što je moguće manje”

Registar povijesti (posmačni, shift registar)

1 0 0 0 0 0 0 0 0 1

Otkucaj sata => pomak


(izbacuje se ona stranica koja ima najmanji broj)

Korištenje registra povijesti u praksi je neizvedivo.

Intel x86
- nema registra povijesti

- postoje samo dvije vrste stranica:

1) stranice kojima se u prethodnoj periodi otkucaja sata pristupalo

2) one stranice kojima se nije pristupalo

bit čistoće (ako je postavljen => stranica je čista, u nju se nije ništa zapisivalo).

Pristup Čistoća

0 0

0 1

1 0

1 1

Operacijski sustavi - predavanja 33/34


Operacijski sustavi – predavanja 34/34

Više UNIX operacijskih sustava i WinNT (i viši) koriste inačicu LRU strategije koja se
naziva SATNI MEHANIZAM.

- sve stranice u radnom spremniku razvrstane su u FIFO listu (trivijalno za


izvesti)

- lista se obilazi kazaljkom koja kada dođe do kraja, vraća se na početak

- izbacuje se onaj okvir (ako je to potrebno) na koji pokazuje kazaljka i bit


pristupa mu je jednak nuli a kazaljka se pomiče za jedno mjesto u desno

- ako je bit pristupa ‘1’ tada se on resetira i kazaljka se pomiče za jedno mjesto
u desno

Moguće izvesti samo na jednoprocesorskom sustavu!

Operacijski sustavi - predavanja 34/34


PITANJA ZA 1. KOLOKVIJ IZ OPERACIJSKIH
SUSTAVA
(Informatički odjel)

Uvod; Model jednostavnog računala


1. Skicirati procesor i spremnik povezane na sabirnicu. Sabirnicu podijeliti na tri dijela.
2. Nabrojiti osnovne registre procesora.
3. Opisati osnovne operacije procesora pri izvođenju jedne instrukcije.
a) bez mogućnosti prekidanja
b) s mogućnošću prekidanja
4. Objasniti pojmove program, proces i dretva.
Obavljanje U/I operacija, prekidni rad
5. Opisati osnovne komponente pristupnog sklopa (prepoznavatelj adrese, registre...).
6. Objasniti pojam "radno čekanje".
7. Skicirati signale "dvožičnog rukovanja" između pristupnog sklopa i ulazno-izlazne
naprave.
8. Opisati što se događa kada se pojavi prekid.
9. Kako djeluje procesor pri prelasku u jezgrin način rada?
10. Napisati u pseudokodu što procesor trajno radi i kako treba nadopuniti ponašanje
procesora tako da se omogući prekidni način rada?
11. Objasniti pojmove "pohraniti kontekst", "obnoviti kontekst" i "vratiti se iz prekidnog
načina rada".
12. Čemu služi i kako djeluje sklop za prihvat prekida?
13. Što sve uzrokuje prekid generiran unutar procesora?
14. Zadatak: "U sustavu s jednostavnim sklopovljem javljaju se prekidi...".
15. Nabrojiti registre sklopa za neposredni pristup spremniku i objasniti njihovu funkciju.
Međusobno isključivanje u višedretvenim sustavima
16. Objasniti pojmove višezadaćni rad, višedretveni rad i višekorisnički rad.
17. Što je to dretva i od čega se sastoji dretveni spremnički prostor? Na koji način dretve
istog procesa međusobno najlakše komuniciraju?
18. Navesti i obrazložiti uvjet nezavisnosti zadataka.
19. Zadatak: "Sustav zadataka je zadan u obliku lanca...".
20. Nabrojiti uvjete koje treba zadovoljavati algoritam međusobnog isključivanja.
21. Čemu služi Dekkerov, a čemu Lamportov algoritam?
22. Navesti instrukcije procesora koje predstavljaju sklopovsku potporu međusobnom
isključivanju. Za barem jednu od njih objasniti kako se koristi u međusobnom
isključivanju.
Jezgra operacijskog sustava
23. Navesti najznačajnije sadržaje opisnika dretvi.
24. Opisati strukturu podataka jednostavnog modela jezgre.
25. Koja su moguća stanja dretvi?
26. Nacrtati graf prijelaza dretvi iz stanje u stanje.
27. Što se događa prilikom poziva jezgrine funkcije?
28. Što se sve zbiva kada jezgrina funkcija završi?
29. Opisati način ostvarenja i osnovnu upotrebu binarnog semafora.
30. Opisati način ostvarenja i osnovnu upotrebu općeg semafora.
31. Čemu služi semafor i u čemu se razlikuju binarni i opći semafor?
32. Kako treba proširiti jezgrine funkcije u višeprocesorskom sustavu?
1.

2. Nabrojiti osnovne registre procesora.

1. adresni međuregistar (za dohvat odnosno spremanje podataka)


2. podatkovni međuregistar (za dohvat odnosno spremanje podataka)
3. instrukcijski registar (spremaju se instrukcije kad se dobave)
4. programsko brojilo ili PC (za dohvat instrukcija, pokazuje na sljedeću instrukciju)
5. registar kazaljke stoga (stek pointer)
6. registar stanja (registar zastavica)

3. Opisati osnovne operacije procesora pri izvođenju jedne instrukcije.

1. dohvatiti iz spremnika instrukciju na koju pokazuje programsko brojilo


2. povećati PC za jedan (povećati PC tako da pokazuje na sljedeću instrukciju)
3. dekodirati instrukciju i odrediti operaciju koju treba izvesti
4. odrediti adresu operanda i rezultata
5. operande dovesti u AL (aritmetičko-logičku jedinicu) i izvesti zadanu operaciju
6. pohraniti rezultat u neki opći registar
to se ponavlja sve dok je procesor uključen

4. Objasniti pojmove: program, dretva i proces.

PROGRAM - statični niz instrukcija


- nešto što je pohranjeno na papiru, disketi, memoriji itd.

DRETVA - niz instrukcija u izvođenju, dijeli se na niti

PROCES - je program koji se izvodi ili program u izvođenju zajedno sa svim potrebnim
resursima
Sastoji se od: - barem jedne dretve
- zajedničkog adresnog prostora
- adresnog prostora rezerviranog za svaku pojedinu dretvu
- ostalo – stog, kazaljka stoga, opisnici datoteka, opisnici
cjevovoda, redovi poruka, semafori, uvjetne varijable, varijable
zaključavanja itd.

5. Opisati osnovne komponente pristupnog sklopa.

- sklop za dekodiranje adrese (dobavlja adresu podatka)


- podatkovni registar (za podatke)
- registar stanja (daje procesoru stanje u kojem se nalazi naprava)
- upravljački dio (određuje stanje naprave)
6. Što je to radno čekanje?

RADNO ČEKANJE je prijenos znakova gdje:

1. procesor treba pročitati registar stanja


2. dok je odgovarajuća zastavica u registru stanja ZASTAVICA=0 nemoj raditi ništa nego
pročitaj ponovo RS (registar stanja), tek kad je ZASTAVICA=1 može se pročitati
podatkovni registar (PR).

SKRAČENO:
pročitaj (RS);
dok je (ZASTAVICA==0) pročitaj (RS);
pročitaj (PR);

7. Skicirati signale «dvožilnog rukovanja» između pristupnog sklopa i U/I naprave.

8. Opisati što se događa kada se pojavi prekid.


Kada se dogodi prekid procesor prelazi iz KORISNIČKOG u JEZGRIN (sustavski) način
rada. Nakon toga pozivaju se podprogrami koji čine jezgru OS-a.

9. Kako djeluje procesor pri prelasku u jezgrin način rada?

Procesor zabrani daljnje prekidanje, adresira sustavski dio spremnika, aktivira sustavski
registar kazaljke stoga. Programsko brojilo sprema na sustavski stog, te se u PC na
početak podprograma sprema kazaljka.

10. Napisati u pseudokodu što procesor trajno radi i kako treba nadopuniti ponašanje
procesora tako da se omogući prekidni način rada?
ponavljati {
.
.
.
//na kraju dolazi
ako je (prekidni signal postavljen) {
zabrani prekidanje;
aktivirati sustavski adresni prostor i sustavsku kazaljku stoga;
PC ↔ sustavski stog;
PC ↔ adresa početka podprograma;
}
} sve dok je (procesor uključen);

11. Objasniti pojmove: pohraniti kontekst, obnoviti kontekst i vratiti se iz prekidnog


načina rada.
POHRANITI KONTEKST - na početku podprograma treba spremiti sve registre
na sustavski stog, a taj čin se naziva pohraniti kontekst (kontekst je skup svih
registara procesora).
OBNOVITI KONTEKST - na kraju podprograma treba vratiti registre obrnutim
redosljedom
VRATITI SE IZ PREKIDNOG NAČINA RADA – prije no što se PC (programsko
brojilo) sa sustavskog stoga vrati u PC (sadržaj se
vrati) treba:
1. omogućiti prekidanje
2. prebaciti adresiranje u korisnički adresni prostor
aktivirati korisnički registar kazaljke stoga
12. Čemu služi i kako djeluje sklop za prihvat prekida? ***
Sklop za prihvat prekida služi za filtriranje prekida tako da kad se dogodi prekid manjeg
prioriteta sklop ne šalje prekid procesoru (ne ometa ga kao softversko ostvarenje ovog
sklopa, tako da procesor ni ne zna da je bio prekid)
Umjesto n zastavica sklop ima n prekidnih vodiča od pojedinih U/I sklopova pa tek onda u
procesor.

13. Što sve uzrokuje prekid generiran unutar procesora?


- djeljenje s nulom
- adresiranje nepostojeće lokacije u adresnom prostoru dretve
- dekodiranje nepostojećeg instrukcijskog koda

14. Zadatak sa predavanja (dijagran prikaza prekidnog rada)


U sustavu s minimalnim sklopovljem javljaju su prekidi P1, P2, P3, P4 i P5. Prekidi
P1, P2 i P3 javljaju se u trenutcima 1ms, 13ms, 0ms, respektivno (istim
redosljedom). Prekid P4 javlja se dva puta u trenutcima 4ms i 6ms. Prekid P5 javlja
se dva puta u trenutcima 3ms i 9ms. Prioritet prekida određen je brojem (P5 ima
najviši prioritet). Svaka od prekidnih rutina traje 1ms.
Grafički prikazati aktivnost procesora u glavnom programu (GP), procedurama za
obradu prekida (Pi) i proceduri za određivanje prioriteta prekida (POPP) koja traje
0.5ms.

15. Nabrojiti registre sklopa za neposredni pristup spremniku i pojasniti njihovu


funkciju.
ADRESNI REGISTAR (AR) - sprema se početna adresa bloka koji se želi
prenesti
BROJAČ (BR) - sprema se broj znakova koji se prenose
REGISTAR STANJA (RS) - daje procesoru zahtjev za prekid ***
PODATKOVNI REGISTAR (PR) - spremaju se podaci koji se prenose ***

16. Objasniti pojmove višezadaćni rad, višedretveni rad i višekorisnički rad


Višezadaćni rad (multitasking) – mogućnost računala da obavlja istovremeno više poslova
Višedretveni rad (multithreading) – brzo obavljanje više procesa u jednom programu
Višekorisnički rad (multiuser system) – računalo koje mogu koristiti više osoba
- svima je zajedničko da obavljaju više zadaća odjednom
17. Što je to dretva i od čega se sastoji dretveni spremnički prostor? Na koji način
dretve istog procesa međusobno najlakše komuniciraju?
Dretva je proces koji je dio nekog većeg procesa ili programa.
Dretveni spremnički prostor se sastoji od: niza instrukcija (program)
stoga i kazaljke stoga
lokalnih podataka
18. Navesti i obrazložiti uvjet nezavisnosti zadataka.
(Di ∩ Kj) U (Dj ∩ Ki) U (Ki ∩ Kj) = 0

Kada za dvije dretve vrijedi uvjet tada su ta dva zadatka nezavisna. Ako su bilo koji
od ova tri uvjeta ispunjeni zadaci su zavisni.

Di ∩ Kj – u isto vrijeme ita dretva čita podatak i jota dretva zapisuje – ako se to
dogodi onda su dretve zavisne
Dj ∩ Ki – u isto vrijeme jota dretva čita podatak i ita dretva zapisuje – ako se to
dogodi onda su dretve zavisne
Ki ∩ Kj – i ita i jota dretva zapisuju na istu kodomenu – ako se to dogodi onda su dretve
zavisne

19. Zadatak sa predavanja (sustav zadataka)


Sustav zadataka je zadan u obliku lanca: Z1 -> Z2 -> Z3 -> Z4 -> Z5 -> Z6 -> Z7 a
zadaci imaju domene (D) i kodomene (K) prema tablici:

Z1 Z2 Z3 Z4 Z5 Z6 Z7
M1 D D D K
M2 K K D D
M3 K D K K
M4 K D

Odrediti maksimalno paralelni sustav zadataka uzimajući u obzir njihov međusobni


odnos u lancu.

D1, D2 i D3 se mogu izvršavati


paralelno

D4 i D3 se mogu paralelno

D5 i D6 idu paralelno

D6 i D7 mogu paralelno
20. Nabrojiti uvjete koje treba zadovoljavati algoritam međusobnog isključivanja.
1. Dvije dretve ne smiju obavljati K.O. (kritični odsječak)
2. Mehanizam mora djelovati kako brzo se obavljaju drtve
3. Ako neka dretva bude u N.K.O. ne smije spriječiti drugu da uđe u K.O.
4. U konačnom vremenu mora se odlučiti koja će ući prva

21. Čemu služi Dekkerov, a čemu Lamparov algoritam?


Dekkerov postupak služi za međusobno isključivanje dvije dretve.
Lamparov postupak služi za međusobno isključivanje više dretvi.

22. Navesti instrukcije procesora koje predstavljaju sklopovsku potporu


međusobnom isključivanju. Za barem jednu od njih objasniti kako se koristi u
međusobnom isključivanju.
TAS (test & set)
SWAP (zamijeni)
FETCH_AND_ADD – dohvati i povećaj za 1

dok je (TAS(varijabla)!=0); → radi ništa


TS ispita neku varijablu i postavi je

23. Navesti najznačajnije sadržaje opisnika dretvi. ***


OPISNIK (DESKRIPTOR) DRETVE – je zapis u kojem su pohranjeni podaci o dretvi i
sastoji se od:
1. kazaljke ili više njih
2. identifikacijski broj procesa kojoj dretva pripada (PID)
3. identifikacijski broj dretve (ID)
4. stanje dretve može biti -pasivna
-aktivna
-blokirana
-pripravna (za izvođenje)
5. prioritet (mjesto gdje je zapisan prioritet)
6. početna adresa dretvenog spremnika prostora
7. veličina dretvenog spremničkog prostora
8. adresa prve instrukcije
9. zadano kašnjenje
10. prostor za smještanje konteksta

24. Opisati strukturu podataka jednostavnog modela jezgre ***


1. LISTA (RED) POSTOJEĆIH DRETVI – kada se dretva nalazi na samo jednoj listi
onda je u pasivnom stanju
2. LISTA (RED) AKTIVNIH DRETVI
- koje se izvode, broj članova u toj listi je jednak broju procesora
- u jednoprocesorskom sustavu ima samo jedan deskriptor
3. LISTA (RED) PRIPRAVNIH DRETVI
- ako se ne izvode (spremne su) onda se nalaze na ovoj listi
- prema načinu formiranja red može biti:
a) po redu prispjeća (FCFS ili FIFO)
b) prioritetni
4. RED SEMAFORA – dretve tijekom izvođenja mogu biti blokirane čekajući na
ispunjenje nekog uvjeta
4 načina blokiranja i to čekanjem na:
- BSEM (binarni semafor)
- OSEM (opći semafor)
- istek zadanog intervala kašnjenja
- završetak U/I operacije
5. LISTA (RED) ODGOĐENIH DRETVI – (Mi – zadano kašnjenje ite dretve)
6. LISTA (RED) U/I NAPRAVE – takvih redova ima onoliko koliko ima U/I naprava
- U/I naprave se obično koriste pojedinačno
25. Koja su moguća stanja dretvi?

1. Aktivna dretva
2. Pasivne dretve
3. BSEM (binarni semafor)
4. OSEM (opći semafor)
5. Odgođene dretve
6. U/I
7. Pripravne dretve

26. Nacrtati graf prijelaza dretvi iz stanje u stanje.

27. Što se događa prilikom poziva jezgrine funkcije?


Onemogući se daljnje prekidanje → ne mogu se pozivati druge funkcije. Pohranjuje se
kontekst, pamti se gdje je bio prekid. Poziva se odgovarajuća funkcija koja sa
sustavnog stoga pohranjuje kontekst u opisnik aktivna d.

28. Što se sve zbiva kada jezgrina funkcija završi?


Aktivira se prva dretva iz reda Pripravne D. u red Aktivna D. Obnovi se kontekst iz opisnika
Aktivna D. Omogućuje se prekidanje, vraća se iz prekidnog načina. PC iz konteksta → PC.
Sustavski prelazi u korisnički način rada.

29. Opisati način ostvarenja i osnovnu upotrebu binarnog semafora.


Binarni semafor je jezgrin mehanizam koji služi za međusobno isključivanje dretvi, tj. za zaštitu
kritičkih odsječaka. On propušta jednu po jednu dretvu.

30. Opisati način ostvarenja i osnovnu upotrebu općeg semafora.

31. Čemu služi semafor i u čemu se razlikuju binarni i opći semafor?


Binarni se od općeg razlikuje samo u realizaciji. Stanja su ista.

32. Kako treba proširiti jezgrine funkcije u višeprocesorskom sustavu?


Jezgrine funkcije treba proširiti radnim čekanjem.
j-fja... () {
dok je (TAS OGRADA_JEZGRE==1)
ne radi ništa
? - Nisam našao odgovor
* - nisam siguran

Datotečni podsustav
1. Navesti elemente datotečnog podsustava. (18)
2. Navesti barem pet osnovnih naredbi operacijskog sustava za rad s datotekama. (18)
3. Opisati osnovni sadržaj opisnika datoteke. (19)
4. Navesti osnovni sadržaj datotečne tablice. (20)
5. Opisati način evidencije binarnim prikazom o slobodnom prostoru na disku. (20)
6. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk ↔ radni spremnik? (21)
7. Navesti tipične datotečne operacije. (21)
8. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindi, staze, sektori). (19) ?
9. Opisati strategije posluživanja zahtjeva za pristup stazama tvrdog diska. (23) ?
10. Zadatak: " Disk s pokretnim glavama ima 100 staza (0-99). Neka...". (23)
Međudretvena komunikacija
11. Što se događa prilikom poziva funkcije fork?
12. Napisati program u C-u ili u pseudokodu koji pokreće dva procesa.
13. Nabrojati mehanizme za komunikaciju među procesima.
14. Napisati program u C-u ili u pseudokodu koji pokreće dvije dretve.
15. Nabrojiti mehanizme za sinkronizaciju rada dretvi, odnosno procesa.
16. Što je to potpuni zastoj? ?
17. Navesti nužne uvjete za nastajanje potpunog zastoja.
Gospodarenje spremničkim prostorom
18. Navest vrste fragmenatcije prilikom statičkog i dinamičkog dodjeljivanja spremnika.
19. Navesti i pokazati Knuthovo 50%-tno pravilo.
20. Navesti osnovne strategije zamjene stranica.
21. Zadatak: "U sustavu sa straničenjem program veličine 400 riječi (1-400) generira slijed
adresa:...". ?*
22. Čemu služi posmačni registar povijesti. Opisati ga. *?
23. Budući da Intel x86 nemaju registra povijesti opisati strategiju izbacivanja stranica. *
24. Što je to satni mehanizam?
Datotečni podsustav
1. Navesti elemente datotečnog podsustava. (18)
1.) Datoteka
2.) Tablica (direktorija)
3.) Procedura za manipuliranje datotekama

2. Navesti barem pet osnovnih naredbi operacijskog sustava za rad s datotekama. (18)
stvori (mkdir, md), briši (rmdir), premjesti (mv), kopiraj (copy, cp), promijeni tekući
direktorij (cd)

3. Opisati osnovni sadržaj opisnika datoteke. (19)


Sadrži:
1.) ime datoteke
2.) tip datoteke
3.) lozinku
4.) ime vlasnika
5.) prava pristupa
6.) vrijeme stvaranja
7.) vrijeme zadnje promjene
8.) ime zadnjeg korisnika
9.) opisnik smještaja

4. Navesti osnovni sadržaj datotečne tablice. (20)


1.) Broj sektora po disku
2.) broj slobodnih sektora
3.) informacije o slobodnim sektorima
4.) tablica opisnika pohranjenih datoteka

5. Opisati način evidencije binarnim prikazom o slobodnom prostoru na disku. (20)


binarni prikaz: 011000101001100... ima onoliko 1 i 0 koliko ima sektora, a svaki sektor ima svoju
jedinstvenu adresu koja se sastoji od:
1.) rednog broja ploče
2.) rednog broja staze na ploči
3.) rednog broja sektora na stazi

6. Koliko iznosi ukupno trajanje prijenosa podataka tvrdi disk ↔ radni spremnik? (21)
7. Navesti tipične datotečne operacije. (21)
stvoriti, izbrisati, kopirati, premjestiti, otvoriti (file *fopen (“ime datoteke”, tip→ r, w ... datoteke),
zatvoriti, čitati (fgets), pisati (fputs) “””””””””” → pokazivač na opisnik tablice

8. Opisati organizaciju smještaja sadržaja na magnetskom disku (cilindi, staze, sektori). (19)

9. Opisati strategije posluživanja zahtjeva za pristup stazama tvrdog diska. (23)

10. Zadatak: Disk s pokretnim glavama ima 100 staza (0-99). Neka se glava trenutno nalazi na
stazi 29 s tim da je prije bila na stazi 8. Zahtjevi za pristup pojedinim stazama, svrstani su po
redu prispjeća. Zahtjevi su slijedeći: 3, 7, 40, 98, 71, 68, 70, 21, 5 i 49. Koliki je ukupan pomak
glave pri izvršenju tih zahtjeva za strategiju poslučivanja:
1. redom prispjeća FCFS (first come first serve)
2. s najkraćim vremenom traženja SSTF (shortest seek time first)
3. pregledavanje (scan)
4. kružno pregledavanje (c-scan)

FCFS – krenem od 29 pa na 3, pa na 40... Cijelo vrijeme pratiš zahtjeve (3,7,40,98,71...).


Kasnije računam ukupan pomak (29-3) +... = 262
SSTF – gledam od 29 kaj mi je najbliže – 40 ili 21. Sa 21 gledam kaj mi je bliže 7 ili 40. 7...
Kada dođem do kraja, idem natrag na 29 i desno. Na kraju se računa pomak glave.
SCAN – sve zahtjeve na desno do kraja i onda na lijevo.
C-SCAN – opet sve zahtjeve na desno do kraja, onda crtkano do 0, pa ponovo na desno

Međudretvena komunikacija
11. Što se događa prilikom poziva funkcije fork?
Sistemskim pozivom fork zahtijeva se stvaranje novog procesa. Kada proces koji se trenutno
izvodi pokrene novi proces, pokrenuti proces postaje proces "dijete" procesa "roditelja" koji
ga je pokrenuo. Dijete dobija kopije segmenta instrukcija i segmenta podataka od roditelja.
Također, dijete nasljeđuje većinu sistemskih podataka od roditelja.

12. Napisati program u C-u ili u pseudokodu koji pokreće dva procesa.
To si isfurajte u bilježnicu iz OS (labosa) koja je dozvoljena na ispitu. Program ide ovako:
#include <stdio.h>
#define br.procesa 2
#define br. prolaza 5
void proces (int i) {
int j;
for (j=1 ; j<br. prolaza; j++) {
printf(''\n Proces: %d, prolaz: %d\n'', i, j);
sleep (1);
}
}
int main (void) {
int i;
for (i=0; i<br. procesa; i++) {
switch(fork() ) {
case –1: printf('' Ne mogu stvoriti novi proces! \n'');
exit (0);
case 0: Proces(i), exit(0);
default: break;
}
}
for (i=0; i<br. procesa; i++) wait (null);
return 0;
}

13. Nabrojati mehanizme za komunikaciju među procesima.


1.) Zajednička memorija
2.) Cijevovodi (obični i imenovani)
3.) Varijable okoline
4.) Red poruka

14. Napisati program u C-u ili u pseudokodu koji pokreće dvije dretve.
To si isfurajte u bilježnicu iz OS (labosa) koja je dozvoljena na ispitu. Program ide ovako:
#include <stdio.h>
#include >ptherad.h>
#define br.dretvi 2
void *dretva (void *rbr) {
int i, brd;
for (i=1; i<6; i++) {
printf(''Ja sam dretva: %d i i= %d\n'', (int)rbr, i);
sleep (1);
}
}
int main (void) {
int i, br[br_dretvi] { *t[br.dretvi]
pthread_t t;
for (i=0; i<br.dretvi; i++) {
br[i]=i+1;
if (pthread_create (&t, null, dretva (int*) & br[i]))
{
printf(''Ne mogu stvoriti dretvu!\n'');
exit (1);
}
while (pthread_join(t, null)= =0);
return 0;
}
}

15. Nabrojiti mehanizme za sinkronizaciju rada dretvi, odnosno procesa.


1.) Semafor (bsem i osem)
2.) Monitor
3.) Varijable međusobnog isključivanja (mutex-mutex_int, mutex_lock, mutex_unlock)
4.) Uvjetne varijable: cond_vari, cond_nt, ...
5.) K.O. = Enter Critical Section, Leave Critical Section
6.) Redovi poruka
7.) Cjevovodi
16. Što je to potpuni zastoj?

17. Navesti nužne uvjete za nastajanje potpunog zastoja.


1.) Dretva koristi sredstvo međusobno isključivo
2.) Dretva samo otpušta pridjeljeno joj sredstvo kada obavi svoj dio posla (nemože joj ga
nitko oduzeti)
3.) Dretva drži dodjeljeno joj sredstvo dok čeka na dodjelu dodatnog sredstva

Gospodarenje spremničkim prostorom


18. Navesti vrste fragmenatcije prilikom statičkog i dinamičkog dodjeljivanja spremnika.
Kod statičkog su unutarnja (interna) i vanjska (eksterna) fragmentacija.
Kod dinamičkog je vanjska fragmentacija.

19. Navesti i pokazati Knuthovo 50%-tno pravilo.


4 tipa punih blokova:

Puni blokovi m=a+b+c+d b=c → n=b+d


Broj rupa n=(b+c+2d)/2

Oslobađanje srednjega:

VJ_broj rupa + 1=a/m * vjerojatnost oslobađanja


VJ_broj rupa – 1 = d/m * vjerojatnost oslobađanja + vj_zahtjeva *q

Uvjet ravnoteže: jednake vjerojatnosti


q=1-p
→ a/m=d/m+(1-p) → a=d+(1-p)m
m=a+b+c+d= d+(1-p)m+b+c+d
m=2d+m-pm+2b (p≈1)
pm=2n
n=m/2

20. Navesti osnovne strategije zamjene stranica.


1.) FIFO (first in first out)
2.) LRU (least recently used)
3.) OPT – optimalna strategija

21. Zadatak: U sustavu sa straničenjem program veličine 400 riječi (1-400) generira slijed
adresa: 23, 47, 333, 81, 105, 1, 400, 157, 30, 209, 289, 149, 360. Program ima na raspolaganju
200 riječi primarne memorije. Napisati niz refenciranja stanica veličine 50 riječi. Koliki je
postotak promašaja za sve tri strategije izbacivanja stranica?

22. Čemu služi posmačni registar povijesti. Opisati ga.


Koristi se u praktičnim ostvarenjima izbacivanja stranica.
23. Budući da Intel x86 nemaju registra povijesti opisati strategiju izbacivanja stranica.
Izbacuje se stranica kojoj je bit pristupa = = 0, a ako je bit = = 1, bit čistoće = = 0.

24. Što je to satni mehanizam?


Satni mehanizam je jedna inačica algoritma LRV-a koju koriste OS-evi kao što su Unix i Win
NT.
1. UVOD
1.1. Prvi susret s operacijskim sustavom
1.1.1. Zadatci OS-a

Od čega je sastavljen računalni sustav? / Što je sklopovlje računala?


Računalni sustav je sastavljen od procesora, radnog spremnika, vanjskih spremnika i različitih ulazno-
izlaznih naprava.
Sklopovlje računala čine komponente od kojih je sastavljen računalni sustav.

Što je operacijski sustav?


Operacijski sustav je skup osnovnih programa koji omogućuju prevođenje radnih zahvata na računalu
– izvođenje operacija računala.
On nadoknađuje sva ograničenja i nedostatke sklopovlja i stvara privid stroja koji je mnogo prikladniji
za korištenje.

Koji su zadatci operacijskog sustava?


Zadatci operacijskog sustava:
-olakšavanje uporabe računala
-organizacija djelotvornog iskorištavanja svih dijelova računala
-omogućavanje ostvarenja komunikacije između računala ako su ona spojena u mrežu

Objasni zadatak OS-a: organizacija djelotvornog iskorištavanja svih dijelova računala.


Unutar računala se istovremeno može odvijati više poslova. Operacijski sustav se mora pobrinuti da
se procesor prebacuje s izvođenja jednog niza instrukcija na drugi i podržati višeprogramski rad.
Višeprogramski rad označava da operacijski sustav mora svakom pojedinom programu omogućiti
pristup do potrebnih mu datoteka i svih ostalih sredstava.
Sva nužna sredstva OS mora dodjeljivati pojedinim programima i oduzimati ih od drugih tako da ona
budu što je moguće bolje iskorištena.

Što je sučelje?
Sučelje je utvrđeni način komuniciranja: postavljanje zahtjeva OS-u i izgled povratnih poruka OS-a.
Općenito, naziv sučelje se koristi za čvrsto dogovoreni način uspostavljanja veze između nekih, inače
razdvojenih, cjelina.

Tko može pokrenuti operacije OS-a?


Operacije OS-a može pokrenuti:
-čovjek preko korisničkog sučelja
-program preko sučelja primjenskog programa

1.1.2. Odvijanje tipičnog posla u računalnom sustavu

Gdje se čuvaju svi programi i podaci u računalu?


Svi programi i svi podaci u računalu se trajno čuvaju u obliku datoteka u vanjskim spremnicima.
Sve što se u računalu događa svodi se na premještanje, mijenjanje i pohranjivanje datoteka.
Skiciraj i objasni postupak pripreme jednog programa i njegova korištenja.

Datoteke su prikazane kao ikone dokumenta, a aktivni programi kao pravokutnici.


Neke datoteke koje sadržavaju gotove strojne programe će aktiviranjem postati programi
(podebljana strelica na slici).
Koraci pripreme jednog programa i njegova korištenja:
1.Iz datoteke se aktivira program za uređivanje teksta. On prihvaća znakove s tipkovnice i pohranjuje
ih postupno u datoteku izvornog programa.
2.Aktivira se kompilator iz svoje datoteke. On prihvaća datoteku izvornog teksta kao ulaznu datoteku
i uz dodatno korištenje bibliotečne datoteke izgrađuje strojni oblik programa, koji se opet pohranjuje
u datoteku.
3.Novostvoreni strojni program se aktivira i postaje program koji prihvaća ulazne podatke s
tipkovnica ili iz unaprijed pripremljene podatkovne datoteke.
4.Program koji prihvaća ulazne podatke s tipkovnica ili iz unaprijed pripremljene podatkovne
datoteke izračunava rezultate i pohranjuje ih u datoteku rezultata.
5.Aktivira se neki program za crtanje koji će kao ulaznu datoteku prihvatiti datoteku rezultata i
proizvesti crtež na papiru i rastersku sliku na zaslonu.

1.2.Hijerarhijska izgradnja operacijskog sustava


Navedi principe stroge izgradnje hijerarhijskog sustava.
Principi stroge izgradnje hijerarhijskog sustava:
-sustav se izgrađuje po razinama
-svaka razina se sastoji od objekata i operacija nad tim objektima
-objekti i operacije neke razine se izgrađuju samo s pomoću objekata i operacija prve neposredne
niže razine
-detalji ostvarenja objekata i operacija pojedine razine su skriveni
Skiciraj razine u strogoj hijerarhijskoj izgradnji sustava i objasni ih.

Razina Ri ostvarena je samo pomoću objekata i operacija razine Ri-1, a razina Ri+1 samo od objekata i
operacija iz razine Ri.
Razina Ri+1 „ne vidi“ objekte i operacije iz razine Ri-1, ona kroz svoje sučelje „vidi“ jednake objekte i
operacije u razini Ri.

Skiciraj grubu slojevitu strukturu sustava i objasni ju.

Na računalno sklopovlje oslonjena je razina OS-a računala. Iznad razine OS-a nalazi se razina
primjenskih programa koji transformiraju računalni sustav u različite virtualne strojeve.
Različiti korisnici sa svoje razine kroz sučelja primjenskih programa gledaju „svoj“ virtualni stroj
(korisnici moraju poznavati samo neke najosnovnije funkcije OS-a, a do njih mogu pristupiti kroz
sučelje OS-a predviđeno za korisnike).
Primjenski programi su, s jedne strane, neporedno oslonjeni na sklopovlje(izvođenje programa se
svodi na izvođenje niza strojnih instrukcija), s druge strane, oslonjeni na funkcije pripremljene unutar
OS-a koje su dohvatljive kroz njegovo sučelje prema primjenskim programima – API.

Od čega se sastoji strojni oblik programa?


Strojni oblik programa se sastoji od niza strojnih instrukcija koje u sklopovlju računala izazivaju neke
osnovne operacije.

1.3. Načini izučavanja OS-a


Nabroji i objasni pristupe razmatranja djelovanja računalnog sustava.
Za razmatranje djelovanja računalnog sustava su moguća dva pristupa:
-Sustav se može razmatrati s „vanjske strane“, tako da se pođe od korisničkog sučelja i u
objašnjavanju slijedi redom one funkcije nižih razina koje su nužne za razumijevanje nekog podskupa
operacija koje omogućuju ostvarenje razmatrane funkcije.
-Sustav se može početi razmatrati od najnižih razina i postupno opisivati sve više i više razine.
Prvi pristup je uobičajen pri brzom upotrebnom upoznavanju operacijskog sustava, a drugi pristup je
prikladniji pri izučavanju računalnih sustava u okviru redovitog školovanja.

2. MODEL JEDNOSTAVNOG RAČUNALA


2.1.Von Neumannov model računala i načini njegova ostvarenja
2.1.1. Funkcijski model računala

Nabroji i objasni dijelove Von Neumannov modela.


Von Neumannov model utvrđuje da svako računalo mora imati sljedeće dijelove:
-ULAZNI DIO preko kojeg se u spremnik unosi iz okoline podaci i instrukcije programa
-IZLAZNI DIO preko kojeg se u okolini prenose rezultati programa
-RADNI ili GLAVNI SPREMNIK u koji se pohranjuju svi podaci i instrukcije programa uneseni izvana,
kao i rezultati djelovanja instrukcija
-ARITMETIČKO-LOGIČKA JEDINICA koja može izvoditi instrukcijama zadane aritmetičke i logičke
operacije
-UPRAVLJAČKA JEDINICA koja dohvaća instrukcije iz spremnika, dekodira ih i na temelju toga upravlja
aritmetičko-logičkom jedinkom, te ulaznim i izlaznim dijelovima

Skiciraj funkcijski Von Neumannov model računala.

2.1.2. Sabirnička građa računala

Što je sabirnica?
Sabirnica je jedan zajednički snop vodiča na koji su spojeni svi dijelovi računala. Osim vodiča sabirnica
ima i svoj sabirnički elektronički sklop, koji pomaže pri ostvarivanju veza.
Skiciraj sklopovlje računala povezano sabirnicom i objasni.

Sve potrebne razmjene podataka, instrukcija i upravljačkih signala obavljaju se preko zajedničkih
vodiča.
Kosa crtica preko crte koja predstavlja sabirnicu označava da je riječ o snopu vodiča.
Sabirnica se mora naizmjence (s podjelom vremena) koristi za ostvarenje potrebnih veza između
dijelova računala.

Objasni sabirnički ciklus i skiciraj.

Vrijeme na sabirnici se dijeli na sabirničke periode ili sabirničke cikluse. U jednom sabirničkom ciklusu
trajanja 𝑇𝐵 ostvaruje se jedna veza, tj. prijenos jednog sadržaja.
npr. Sabirnica koja ima ciklus trajanja 𝑇𝐵 = 100𝑛𝑠 omogućila bi da se u jednoj sekundi obavi 10
milijuna prijenosa sadržaja.

2.1.3. Radni ili središnji spremnik računala

Što je radni spremnik i čemu on služi?


Radni spremnik je središnji dio svakog računala, on je polazno odredište i ishodište svih informacija
koje kolaju između svih ostalih dijelova računala. Dobio je svoj naziv zbog toga što pri izvođenju
programa u njemu moraju biti smještene instrukcije programa i podaci na koje te instrukcije djeluju.

Što je adresa bajta?


Adresa bajta je broj čvrsto povezan sa bajtom u spremniku koji ima svoj redni broj i pomoću njega se
bajt odabire.
Kako se zapisuju adrese bajtova unutar spremnika?
Adrese bajtova unutar spremnika se izražavaju brojevima zapisanima u binarnom obliku. Ako se za
zapisivanje adrese koristi m bitova, tada se može zapisati 2𝑚 različitih adresa, a adrese se kreću u
granicama od 0 do 2𝑚−1. Sa brojem m određena je veličina adresnog prostora.

2.1.4. Rudimentarno računalo, radni spremnik

Što je rudimentarno računalo i čemu nam ono služi?


Rudimentarno računalo je model računala koji se sastoji samo od procesora i radnog spremnika.
Ono služi za modeliranje ponašanja računalnog sustava, pri čemu se pretpostavlja da:
-u radnom spremniku je smješten strojni oblik programa kao niz instrukcija pohranjenih u uzastopne
spremničke lokacije
-u radnom spremniku se nalaze i svi podaci koje će program dohvaćati tijekom izvođenja
-program će rezultate koje bude proizvodio tijekom izvođenja pohranjivati u za to predviđene
lokacije radnog spremnika.

Skiciraj procesor i spremnik koji su povezani na sabirnicu i objasni.

Sabirnica je prikazana detaljnije i vidi se da ima tri dijela:


-adresni dio sabirnice s m vodiča
-podatkovni dio s n vodiča
-upravljački dio s k vodiča.
Preko sabirnice se istovremeno može prenijeti 4 bajta. (Širina pristupa do spremnika je 4 bajta ili 32
bita)
Procesor je povezan na sabirnicu preko registara koje nazivamo međuregistrima prema sabirnici.
Sve razmjene sadržaja se obavljaju preko jedne sabirnice, pa se sabirnički ciklusi moraju dijeliti svim
sudionicima i to može ograničiti brzinu rada računala.

Kakve su to poravnate adrese?


Poravnate adrese su adrese sadržaja koji imaju više od osam bitova gdje su adrese cjelobrojni
višekratnici od broja bajtova potrebnih za pohranjivanje sadržaja.

Što se događa u jednom spremničkom ciklusu?


U jednom spremničkom ciklusu se može obaviti jedno pohranjivanje u spremnik ili jedno dobavljanje
sadržaja iz spremnika.
Ciklus pohranjivanja:
-procesor na adresni dio sabirnice postavlja adresu iz svog adresnog međuregistra, signal
pohranjivanja na priključak POHRANITI-DOBAVITI, preko upravljačkog dijela sabirnice, te postavlja
podatak iz svog podatkovnog registra na podatkovni dio sabirnice
-spremnik prihvaća adresu u svoj registar adrese, prihvaća podatak u registar sadržaja i pohranjuje
sadržaj u bajtove spremnika
Ciklus dobavljanja:
-procesor na adresni dio sabirnice postavlja adresu iz svog adresnog međuregistra i signal dobavljanja
na priključak POHRANITI-DOBAVITI, preko upravljačkog dijela sabirnice
-spremnik prihvaća sa sabirnice adresu u svoj registar adrese, prebacuje iz bajtova spremnika
sadržaje u registar sadržaja, te postavlja sadržaj na podatkovni dio sabirnice
-procesor prihvaća u svoj podatkovni registar sadržaj s podatkovnog dijela sabirnice

2.1.5. Rudimentarno računalo – procesor

Što se događa u procesoru u rudimentarnom računalu?


U procesoru se događaju sadržaji spremničkih lokacija.

Kako interpretiramo sadržaje koji se dobavljaju iz procesora?


Unutar procesora se sadržaji koji se dobavljaju iz procesora interpretiraju dvojako:
-kao instrukcije strojnog programa računala
-kao osnovni tipovi podataka

Kako procesor adresira instrukcije i podatke?


Procesor adresira instrukcije i podatke na bitno različite načine.
Instrukcije se dohvaćaju s adrese na koju pokazuje posebni registar procesora koji nazivamo
programskim brojilom. Podaci se adresiraju tijekom izvođenja instrukcije, i to na temelju informacije
o smještaju podataka sadržanih u instrukciji.
Dio instrukcije koji definira operaciju koja će se izvoditi određuje i način interpretacije niza bitova koji
će biti dobavljani iz spremnika.
Procesorom je određen tip podataka. Za svaki tip podataka su propisani načini zapisivanja.
Dogovoreni su oblici osnovnih tipova podataka (osnovni objekti).
Skiciraj pojednostavljeni model procesora.

Pretpostavlja se da su brojevi bitova adrese i podataka jednaki. Svi registri su jednake duljine i svi
prospojni putovi imaju jednak broj vodiča. Međusobno su povezani s ostalim dijelovima procesora,
posebice s aritmetičko-logičkom jedinicom pomoću unutarnjih sabirnica S1,S2 i S3. Preklopke na
crtama koje povezuju registre na sabirnicu simboliziraju povezanost registra na sabirnicu. Zamišljene
preklopke otvara i zatvara upravljački sklop prema potrebi.

Čime su određena osnovna svojstva i ponašanje procesora?


Osnovna svojstva i ponašanje procesora određeni su skupom registara i skupom instrukcija koje
procesor može obaviti. Skup instrukcija određen je izvedbom aritmetičko-logičke i upravljačke
jedinice procesora.

Čemu služe registri?


Registri služe za pohranjivanje svih informacijskih sadržaja koji ulaze i izlaze iz procesora i u njemu se
transformiraju.

Navedi i opiši registre i njihovu ulogu u radu procesora.


-adresni međuregistar: služi za adresiranje spremnika, ali i za adresiranje ostalih dijelova računala
-podatkovni međuregistar: posrednik za razmjenu sadržaja između procesora i ostalih dijelova
računala. Svi podaci koji se žele prenijeti iz procesora na sabirnicu prolaze kroz podatkovni
međuregistar.
-instrukcijski registar: U njega se prenosi instrukcija dobavljena iz spremnika. Bitovi instrukcije
dovode se na upravljačku jedinku koja iz njih ustanovljuje koju operaciju procesor treba obaviti.
-programsko brojilo (PC): registar koji sadržava adresu instrukcije koju sljedeću treba obaviti. Njega
upravljačka jedinka automatski povećava tako da se instrukcije pohranjene u spremniku izvode jedna
iza druge.
-registar kazaljke stoga (SP): služi za poseban način adresiranja spremnika. U spremniku se rezervira
posebna skupina uzastopnih bajtova i zapiše u registar kazaljke stoga najvišu adresu te skupine. S
pomoću tog registra ostvaruje se pohranjivanje podataka na stog.
-registar stanja (registar zastavica): bitovi registra stanja služe za zapisivanje različitih zastavica koje
označavaju ispravnost ili neispravnost rezultata i operacija ili neke druge pojave. Vrijednosti tih
zastavica jesu uvjeti na temelju kojih upravljački sklop određuje daljnji tijek odvijanja programa.
-opći registar: služi za pohranjivanje operanada i rezultata, te za pripremanje adresa budućih pristupa
do spremnika.

Koja je uloga upravljačke jedinice?


Upravljačka jedinica upravlja radom cijelog procesora. Ona dekodira instrukciju dovedenu u
instrukcijski registar i na temelju toga povezuje potrebne registre na unutarnje sabirnice, određuje
aritmetičko-logičkoj jedinici vrstu operacije koju treba obaviti i automatski prelazi s instrukcije na
instrukciju.

Koja je uloga generatora takta?


Generator takta generira impulse koji pobuđuju elektroničke sklopove (određuje brzinu rada
procesora). Sve pojave unutar procesora su sinkronizirane s generatorom takta.

Koja je uloga aritmetičko-logičke jedinice?


Aritmetičko-logička jedinica obavlja aritmetičke i logičke operacije s operandima koji se u našem
modelu procesora dovode na njezin ulaz preko sabirnica S1 i S2 i rezultat postavlja na sabirnicu S3.
Svoje instrukcije dobiva od upravljačke jedinice.

Što je strojni program?


Strojni program su niz instrukcija programa pohranjene u spremniku i to onim redoslijedom kako ih
treba izvoditi.

Opiši ponašanje sklopovlja procesora pri izvođenju svake instrukcije.

Procesor je automatski izvoditelj programa koji obavlja instrukcije onim redom kojim su one
smještene u spremniku.
Opiši izvođenje instrukcija i njenu podjelu.
1. faza dohvata instrukcije:
-sadržaj programskog brojila prebacuje se u adresni međuregistar
-upravljačka jedinica pokreće aktivnost dohvata instrukcije iz spremnika
-instrukcija dolazi u podatkovni međuregistar i iz njega u instrukcijski registar
2.faza dekodiranja instrukcije:
upravljačka jedinica:
-utvrđuje na temelju dijela bitova instrukcije (operacijskim kodom) operaciju koju treba provesti
-povećava sadržaj programskog brojila tako da pokazuje na sljedeću instrukciju
-šalje upravljačke signale aritmetičko-logičkoj jedinici kako bi ona “znala“ koju operaciju treba obaviti
-na temelju dijela bitova instrukcije (adresni dio instrukcije) ustanovljuje iz kojih registara dolaze
operandi i gdje treba pohraniti rezultat, te zatvara odgovarajuće preklopke na unutarnjim
sabirnicama
-ako adresni dio instrukcije određuje da operand dolazi iz spremnika, onda se adresa operanda
prebacuje u adresni međuregistar i pokreće dobavljanje operanda iz spremnika, pa će se taj operand
naći u podatkovnom međuspremniku i iz njega dovesti u aritmetičko-logičku jedinicu
3.faza obavljanja operacije:
-aritmetičko-logička jedinica obavlja zadanu operaciju i pohranjuje rezultat preko sabirnice S3 u
odredište
-vrijednosti pojedinih zastavica koje ovise o dobivenom rezultatu pohranjuju se u registar stanja

2.1.6. Brzina rada procesora, priručni spremnik

O čemu ovisi brzina rada procesora?


Brzina rada procesora se često iskazuje brojem instrukcija koje može izvesti u sekundi. To ovisi o
tome koliko perioda takta procesor troši za izvođenje instrukcija.
Sabirnica sa svojom ograničenom brzinom prijenosa bitno ograničava mogućnosti procesora. U
jednom sabirničkom ciklusu se može dobaviti samo onoliko bajtova koliko to dopušta širina pristupa.
Tako bi sabirnica sa sabirničkim ciklusom od 𝑇𝐵 = 100 𝑛𝑠 dopuštala izvođenje 10 milijuna instrukcija
u sekundi, iako procesor ima moć od 20MIPS(milijuna instrukcija po sekundi).

Što je priručni spremnik, gdje se nalazi i koja je njegova uloga?


Priručni spremnik ili cache je manji spremnik koji se dodaje neposredno uz procesor i ima dopuštenu
brzinu pristupa sukladnu brzini rada procesora. Instrukcije i podaci koji se nalaze u cache-u se
dostupni u istom vremenu kao i registri procesora.
Koristi se da bi se brzina procesora približila svojim maksimalnim brzinama, tako što se prilikom
izvođenja programa dijelovi koji se trenutno izvode premještaju u cache.
Priručni spremnik može imati samo ograničenu veličinu i posebnim se mehanizmima treba osigurati
da se kopija sadržaja onog dijela glavnog spremnika koji se upravo koristi u njega premjesti.

2.1.7. Instrukcijski skup procesora

Što određuje instrukcijski skup nekog procesora?


Instrukcijski skup nekog procesora određuje izvedba ALU i upravljačke jedinice.
Upravljačka jedinica mora dekodirati instrukcije i na temelju njihova sadržaja narediti ALU koju
operaciju treba obaviti te povezati potrebne registre na unutarnje sabirnice i postavljati upravljačke
signale ostalim dijelovima računala.
Što sadržava procesorski čip?
Procesorski čip sadržava sklopove: registre, upravljačku jedinicu, aritmetičku jedinicu, priručni
spremnik; koji su međusobno povezani složenim vezama.
Površina procesorskog čipa je od silicija i na nju se može staviti ograničeni broj tranzistora (osnovni
građevini element svih sklopova procesora). Procesor će biti djelotvorniji ako ima više registara i
skromniji instrukcijski skup.

Kako se dijele instrukcije procesora?


Instrukcije procesora se mogu podijeliti u nekoliko podskupina:
-instrukcije za premještanje sadržaja između spremnika i registara procesora
-instrukcije za obavljanje aritmetičkih i logičkih operacija
-instrukcije za programske skokove ili grananja
-instrukcije za posebna upravljačka djelovanja

Od čega se sastoji instrukcija?


Instrukcija se sastoji od dva dijela:
-dio za smještaj operacijskog koda
-adresni dio instrukcije

Kako izgleda instrukcija za premještanje sadržaja, od čega se sastoji?

Instrukcija za premještanje sadržaja se sastoji od:


-k bitova operacijskog koda
-p bitova za izbor registra
-r bitova za pomaknuće
S k bitova operacijskog koda moguće je razlikovati 2𝑘 instrukcija. Od toga su nam potrebne dvije
kodne vrijednosti za premještanje: jedna za punjenje registra iz spremnika i druga za pohranjivanje
sadržaja registra u spremnik.
S p bitova za izbor registra može se odabrati jedan od najviše 2𝑝 registara.
Preostalih r = n-k-p bitova služi za zapisivanje sadržaja koji možemo nazvati pomaknućem s pomoću
kojeg se određuje adresa u spremniku.

Kako izgleda troadresna instrukcija za obavljanje operacija, od čega se sastoji?

Troadresna instrukcija za obavljanje operacija ima 5 dijelova:


-k bitova operacijskog koda
-tri puta po p bitova za izbor registara
-r bitova za možebitnu modifikaciju instrukcije, što povećava broj mogućih operacija
Operacijski kod određuje vrstu operacije. Upravljačka jedinica nakon dekodiranja operacijskog koda i
r modifikacijskih bitova postavlja upravljačke bitove ALU i na temelju sadržaja triju grupa od po p
bitova zatvara preklopke na unutarnjim sabirnicama S1, S2 i S3. Posljedica takve instrukcije jest
obavljanje zatražene operacije s operandima iz registara operanda i pohranjivanje rezultata u registar
rezultata.

Kako izgleda instrukcija za programske skokove, od čega se sastoji?

Instrukcija za programske skokove sastoji se od operacijskog koda, uvjeta za skok i pomaknuća.


Operacijskim kodom se određuje vrsta skoka. Dodatnih l bitova se koristi za definiranje uvjeta za
skok. Pomaknuće određuje adresu.
Instrukcijama koda narušava se slijedno izvođenje programa koje inače procesor automatski obavlja.
Tim instrukcijama izaziva se „skakanje“ ili „grananje“ programa.

Kako se dijele instrukcije?


Instrukcije se dijele na:
-instrukcije za bezuvjetne skokove
-instrukcije za uvjetovane skokove

Koja je uloga instrukcija za bezuvjetne skokove?


Instrukcije za bezuvjetne skokove izazivaju skok u programu na adresu koja je određena
pomaknućem adresnog dijela instrukcije i to bez ispitivanja bilo kakvog uvjeta.

Napiši pseudokod izvođenja instrukcija za bezuvjetne skokove u procesoru.

Koja je uloga instrukcija za uvjetovane skokove?


Unutar instrukcija za uvjetovane skokove ispituje se uvjet zadan instrukcijom. Uvjeti koji određuju da
li će se skok obaviti ili ne su određeni vrijednošću zastavica zapisanih u pojedinim bitovima registra
stanja procesora. Zastavice označavaju posebne slučajeve rezultata neke od prethodnih operacija
koje je procesor izveo.
Instrukcije uvjetovanih skokova omogućuju grananje programa i ostvarivanje programskih petlji.

Napiši pseudokod procesorskog obavljanja instrukcije uvjetovanog skoka.

2.2. Instrukcije za poziv potprograma i povratak iz potprograma (nedovršeno)


Kada se pozivaju potprogrami?
Potprogrami se „pozivaju“ na onim mjestima gdje je to potrebno, oni obavljaju svoj dio posla i nakon
toga program mora nastaviti svoje izvođenje instrukcijom koja se nalazi na adresu iza instrukcije
poziva potprograma.

Koje instrukcije su potrebne za ostvarenje potprograma?


Dvije posebne instrukcije skoka služe za ostvarenje potprograma:
-instrukcija za poziv potprograma
-instrukcija za povratak iz potprograma

Skiciraj tijek odvijanja programa s pozivima potprograma.

Spremnik računala prikazan je na slici razlomljen u tri dijela kako bi se jednostavnije prikazao tijek
izvođenja programa.
U jednom dijelu spremnika je pohranjen program, u drugom dijelu spremnika je smješten programski
odsječak potprograma. Treći dio spremnika je rezerviran za smještanje stoga.

2.2.2. Instrukcijska dretva


Skiciraj instrukcijsku dretvu.

Što znači da procesor „provlači“ kroz niz instrukcija instrukcijsku dretvu?


Ako pretpostavimo da je strojni program na neki način pohranjen u spremnik i da su početni ili ulazni
podaci također pohranjeni u spremnik. Ako nakon toga na neki način u programsko brojilo upišemo
adresu prve instrukcije programa, procesor će automatski početi izvoditi jednu instrukciju za drugom
– time će započeti izvođenje tog programa. Tada se može reći da procesor „provlači“ kroz niz
instrukcija instrukcijsku dretvu.

2.3. Računalni proces


Nabroji vremenska svojstva programa.
Vremenska svojstva programa su:
-trenutak početka izvođenja programa
-trenutak završetka izvođenja programa
-trajanje izvođenja programa
-zaustavljanje izvođenja programa

Kada izvođenje programa dobiva obilježje procesa? Kako nazivamo takav proces?
Izvođenje programa dobiva obilježje procesa kada mu se pripišu neka vremenska svojstva. S obzirom
da se proces odvija u računalu govorimo o računalnom procesu.

Koja je povezanost operacijskog sustava i procesa?


Prije započinjanja procesa u računalu moraju se stvoriti uvjeti za njegovo izvođenje. Operacijski
sustav ima osnovni zadatak stvaranje takvih uvjeta za odvijanje programa.
Unutar procesa mora postojati barem jedna instrukcijska dretva. Operacijski sustav mora osigurati
nesmetano izvođenje dretve. Brzina izvođenja dretve je određena brzinom procesora.

You might also like