You are on page 1of 47

Operativni sistemi

(pitanja i odgovori)


Sadraj
Uvod ......................................................................................................................................................... 1
Konkurentno programiranje ..................................................................................................................... 4
Sinhronizacija pomou semafora ............................................................................................................. 8
Izvedba CppTss-a ................................................................................................................................... 10
Ulazno-izlazni moduli CppTss-a ........................................................................................................... 11
Virtuelna maina CppTss-a .................................................................................................................... 13
CppTss izvrilac ..................................................................................................................................... 16
Svojstva datoteka ................................................................................................................................... 19
Sloj operativnog sistema za rukovanje procesima ................................................................................. 21
Sistemski procesi .................................................................................................................................... 23
Sloj operativnog sistema za rukovanje datotekama ............................................................................... 25
Sloj operativnog sistema za rukovanje radnom memorijom .................................................................. 30
Sloj operativnog sistema za rukovanje kontrolerima ............................................................................. 34
Sloj operativnog sistema za rukovanje procesorom ............................................................................... 37
Mrtva petlja ............................................................................................................................................ 38
Komunikacija sa operativnim sistemom ................................................................................................ 40
Klasifikacija operativnih sistema ........................................................................................................... 42

1

Uvod
1. Koje poslove obavlja operativni sistem?
Operativni sistem objedinjuje raznorodne delove raunara u skladnu celinu i sakriva od korisnika one
detalje funkcionisanja ovih delova, koji nisu bitni za korienje raunara. (upravlja sastavnim
delovima raunara i prua korisniku pristupano radno okruenje)
2. ta obuhvata pojam datoteke?
Pojam datoteke obuhvata sadraj (korisniki podaci) i atribute (npr. veliina datoteke i vreme njenog
nastanka) datoteke.
3. ta se nalazi u deskriptoru datoteke?
U deskriptoru datoteke nalaze se atributi datoteke.
4. ta omoguuju datoteke?
Datoteke omoguuju trajno uvanje podataka.
5. ta obavezno prethodi itanju i pisanju datoteke?
itanju i pisanju datoteke obavezno prethodi njeno otvaranje, radi pripreme zahtevanog pristupa
podacima.
6. ta sledi iza itanja i pisanja datoteke?
Iza itanja i pisanja datoteke sledi njeno zatvaranje. Time se sauvaju atributi i sadraj datoteke i
ujedno onemogui pristupanje njenim podacima do njenog novog otvaranja.
7. ta obuhvata pojam procesa?
Pojam procesa obuhvata aktivnost (angaovanje procesora na izvravanju korisnikog programa),
sliku (adresni prostor procesa sa naredbama izvravanog programa, stekom i podacima koji se
obrauju u toku izvravanja programa) i atribute (npr. stanje procesa i njegov prioritet) procesa.
8. ta se nalazi u deskriptoru procesa?
U deskriptoru procesa nalaze se atributi procesa.
9. Koja stanja procesa postoje?
Stanja procesa su: eka, spreman i aktivan.
10. Kada je proces aktivan?
Proces je aktivan kada procesor izvrava program.
11. ta je kvantum?
Kvantum je unapred odreeni vremenski interval za koji aktivni proces preputa procesor spremnom
procesu istog (najvieg) prioriteta.
12. ta se deava nakon isticanja kvantuma?
Trenutke isticanja kvantuma oznaavaju prekidi sata. Obrada ovakvih prekida sata izaziva prevoenje
aktivnog procesa u stanje spreman i prekljuivanje procesora na onaj od ostalih procesa najvieg
prioriteta, koji je najdue u stanju spreman. Pri tome aktivirani proces prelazi iz stanja spreman u
stanje aktivan.
13. Po kom kriteriju se uvek bira aktivan proces?
Aktivan proces se bira po prioritetu procesa i vremenu provedenom u stanju spreman.
2

14. Koji prelazi su mogui izmeu stanja procesa?
Mogui prelazi su: aktivaneka, eka spreman i spremanaktivan
15. Koji prelazi nisu mogui izmeu stanja procesa?
Nisu mogui prelazi: eka aktivan i spremaneka.
16. ta omoguuju procesi?
Procesi omoguuju bolje iskorienje raunara (procesora) i njegovu bru reakciju na deavanje
vanjskih dogaaja.
17. ta karakterie sekvencijalni proces?
Proces je sekvencijalan ako je njegov trag (redosled u kome se izvravaju naredbe programa) odreen
u vreme programiranja, ondosno ako zavisi samo od obraivanih podataka. Trag sekvencijalnog
procesa moe da se prikae kao nit koja povezuje izvravane naredbe u redosledu njihovog
izvravanja. Nit sekvencijalnog procesa nasleuje njegove atribute (stanje i prioritet). Mana
sekvencijalnih procesa je da su neosetljivi na vanjske dogaaje.
18. ta karakterie konkurentni proces?
Proces sa vie istovremeno postojeih niti naziva se konkurentan proces. On odgovara izvavanju
konkurentnog programa. Samo jedna nit moe biti u stanju aktivna, dak su ostale u stanju eka ili
spremna. Prekljuivanja procesora sa jednog od ovih izvravanja na drugo, zavisno od vanjskih
dogaaja, uzrokuju da se odgovarajue niti prepliu u redosledu koji nije odreen u vreme
programiranja.
19. ta ima svaka nit konkurentnog procesa?
Svaka nit konkurentnog procesa ima svoj prioritet, svoje stanje, svoj stek, pa i svoj deskriptor.
20. Koju operaciju uvodi modul za rukovanje procesorom?
Modul za rukovanje procesorom uvodi operaciju prekljuivanja.
21. Po emu se razlikuju prekljuivanja izmeu niti istog procesa i prekljuivanja izmeu niti
raznih procesa?
U toku prekljuivanja procesora izmeu niti istog procesa ne dolazi do izmene adresnog prostora
procesa, pa je ovakvo prekljuivanje bre (krae) od prekljuivanja izmeu niti raznih procesa.
22. Koje operacije uvodi modul za rukovanje kontrolerima?
Modul za rukovanje kontrolerima, odnosno njegovi drajveri uvode (drajverske) operacije ulaza i
izlaza.
23. ta karakterie drajvere?
Svaki od drajvera specijalizovan je za jednu vrstu kontrolera, opsluuje jednu klasu ulazno-izlaznih
ureaja i ima zadatak da konkretan ulazno-izlazni ureaj predstavi u apstraktnom obliku sa
jednoobraznim i pravilnim nainom korienja. Obraivai prekida ulaze u sastav drajvera.
24. Koje operacije uvodi modul za rukovanje radnom memorijom?
Modul za rukovanje radnom memorijom uvodi operacije zauzimanja i oslobaanja.
25. Koje operacije poziva modul za rukovanje radnom memorijom kada podrava virtuelnu
memoriju?
3

Kada podrava virtuelnu memoriju, modul za rukovanje radnom memorijom poziva operacije ulaza i
izlaza (jer se tada brine o prebacivanju sadraja stranica izmeu radne i masovne memorije).
26. Koje operacije uvodi modul za rukovanje datotekama?
Modul za rukovanje datotekama uvodi operacije otvaranja, zatvaranja, itanja i pisanja.
27. Koje operacije poziva modul za rukovanje datotekama?
Modul za rukovanje datotekama poziva operacije ulaza i izlaza (jer se brine o prebacivanju delova
sadraja datoteka izmeu radne i masovne memorije) i operaciju zauzimanja (radi zauzimanja
dovoljno velikog baferskog prostora za bafere, koji su potrebni za pomenuto prebacivanje)
28. ta omoguuju multiprocessing i multithreading?
Multiprocessing i multithreading omoguuju bolje iskorienje procesora, istovremenu podrku veeg
broja korisnika (viekorisniki reim rada) i bru reakciju raunara na vanjske dogaaje.
29. Koje operacije uvodi modul za rukovanje procesima?
Modul za rukovanje procesima uvodi operacije stvaranja i unitavanja.
30. Koje operacije poziva modul za rukovanje procesima?
Modul za rukovanje procesima poziva operacije itanja, zauzimanja i oslobaanja.
31. Koje module sadri slojeviti operativni sistem?
Slojeviti operativni sistem sadri 5 modula, i to za rukovanje: procesom, datotekama, radnom
memorijom, kontrolerima i procesorom. (nabrojani su moduli od najvieg do najnieg sloja hijerarhije)
32. ta omoguuju sistemski pozivi?
Sistemski pozivi omoguuju prelazak iz korisnikog prostora u sistemski prostor, radi poziva operacija
operativnog sistema.
33. Koje adresne prostore podrava operativni sistem?
Operativni sistem podrava korisniki i sistemski prostor (korisniki prostor je adresni prostor koji
poseduje svaki od procesa, a sistemski prostor je adresni prostor koji poseduje operativni sistem).
34. ta karakterie interpreter komandnog jezika?
Interpreter komandnog jezika je poseban proces iz korisnikog sloja, koji je zaduen za preuzimanje i
interpretiranje komandi komandnog jezika. On posreduje izmeu korisnika i operativnog sistema.
Koristi operativni sistem na programskom nivou, jer u toku svog rada poziva sistemske operacije.
35. Koji nivoi korienja operativnog sistema postoje?
Postoje programski (omoguuje ga sistemska biblioteka) i interaktivni nivo (omoguuju ga komande
komandnog jezika) korienja operativnog sistema.






4


Konkurentno programiranje
1. ta je preplitanje?
Preplitanje je meanje izvravanja naredbi raznih niti, odnosno niti i obraivaa prekida.
2. Da li preplitanje ima sluajan karakter?
Preplitanje ima sluajan karakter, jer nije unapred poznato posle izvravanja koje naredbe e se desiti
prekid i eventualno prekljuivanje.
3. ta izaziva pojavu preplitanja?
Preplitanje izazivaju prekidi i eventualno prekljuivanje (izazvano obradom prekida, nakon ega
procesor izvri naredbe potprograma prekljuivanja i zatim nastavi da izvrava naredbe druge niti).
4. Da li preplitanje moe uticati na rezultat izvravanja programa?
Preplitanje moe da utie na rezultat izvravanja programa. Rezultati mogu da budu stohastini.
5. ta su deljene promenljive?
Kada istoj promenljivoj pristupa vie niti ili niti i obrade prekida, tu promenjivu nazivamo deljena
promenljiva.
6. ta je preduslov ouvanja konzistentnosti deljenih promenljivih?
Preduslov ouvanja konzistentnosti deljenih promenljivih je obezbeenje meusobne iskljuivosti
izvravanja operacija deljenih promenljivih (omoguavanje da novo izvravanje bilo koje od operacija
deljene promenljive moe poeti tek nakon zavretka prethodno zapoetog izvravanja neke od ovih
operacija).
7. ta su kritine sekcije?
Tela operacija deljenih klasa ili delovi ovih tela, ije izvravanje je kritino za konzistentnost deljenih
promenljivih, nazivaju se kritine sekcije.
8. ta je sinhronizacija?
Sprovoenje vremenskog usklaivanja izvravanja kritinih sekcija, kojim se postie njihova
meusobna iskljuivost, naziva se sinhronizacija. Vrsta sinhronizacije, koja ostvaruje neki dodatan
uslov u pogledu izvravanja kritinih sekcija, naziva se uslovna sinhronizacija.
9. Koje vrste sinhronizacije postoje?
Postoje sinhronizacija zaduena za ostvarenje meusobne iskljuivosti i uslovna sinhronizacija.
10. ta je atomski region?
Atomski region je kritina sekcija u kojoj su onemogueni prekidi, samim tim i obrada prekida, pa ni
tetna preplitanja.
11. ta suava primenu atomskih regiona?
Primenu atomskih regiona suava zahtev da oni budu to krai, jer je injenica da oni odlau obradu
novih prekida i usporavaju reakciju procesora na vanjske dogaaje.
12. emu slui propusnica?
Propusnice i iskljuivi regioni se zasnivaju na zaustavljanju aktivnosti niti, kada ona pokua da ue u
kritinu sekciju deljene promenljive kojoj ve pristupa neka druga nit. Svaka deljena promenljiva
5

poseduje jednu propusnicu za ulazak u njene kritine sekcije. Propusnica moe biti slobodna ili
zauzeta i bez nje nije mogu ulazak u kritinu sekciju deljene promenljive.
13. ta se deava sa niti koja zatrai, a ne dobije propusnicu?
Nit, koja zatrai, a ne dobije propusnicu, zaustavlja svoju aktivnost i prelazi u stanje eka.
14. ta se deava kada nit vrati propusnicu?
Kada nit vrati propusnicu, ona se dodeljuje nekoj drugoj niti, koja tada iz stanja eka, prelazi u stanje
spreman. U kritinu sekciju ulazi tek kada postane aktivna, tj. kada se procesor prekljui na nju.
15. Kako se titi konzistentnost propusnica?
Konzistentnost propusnica titi se pomou atomskih regiona.
16. ta je iskljuivi region?
Iskljuivi region je ona kritina sekcija koja meusobnu iskljuivost ostvaruje korienjem propusnica.
17. ta uvode poeljne osobine konkurentnih programa?
Poeljne osobine konkurentnih programa uvode tvrdnju iskljuivanja nepoeljnog i tvrdnju
uskljuivanja poeljnog.
18. Po emu se konkurentno programiranje razlikuje od sekvencijalnog?
Konkurentno programiranje se razlikuje od sekvencijalnog po rukovanju nitima i deljenim
promenljivama.
19. Koje prednosti ima konkurentna biblioteka u odnosu na konkurentni programski jezik?
Korienjem konkurentne biblioteke izbegavaju se aktivnosti vezane za definisanje sintakse i
semantike programskog jezika, kao i aktivnosti vezane za zahvate na kompajleru. Njena dodatna
prednost je to omoguuje da se za konkurentno programiranje koristi ve postojei, znai poznat
programski jezik.
20. Kako se opisuju niti?
Niti se opisuju funkcijom, iju adresu kasnije prosleujemo kao argument poziva konstruktora klase
thread.
21. Kako se kreiraju niti?
Niti se kreiraju pomou konstruktora klase thread. Nakon kreiranja niti, neophodno je odrediti njen
odnos prema funkciji main(). Da ne bi dolo do prevremenog kraja aktivnosti kreirane niti, koristi se
operacija join(), koja zaustavlja aktivnost svog pozivaoca, sve dok se ne zavri aktivnost niti na koju
se odnosi ova operacija. Pomou operacije detach() saoptava se da regularan kraj aktivnosti niti, na
koju se ova operacija odnosi, moe da nastupi i kao posledica kraja aktivnosti procesa, kome dotina
nit pripada.
22. Kada se zauzima propusnica deljene promenljive?
Propusnica deljene promenljive se zauzima na poetku kritine sekcije (pre obavljanja izlaznih i
ulaznih operacija niti).
23. Kada se oslobaa propusnica deljene promenljive?
Propusnica deljene promenljive se oslobaa na kraju kritine sekcije (posle obavljanja izlaznih i
ulaznih operacija niti).

6

24. Kakvu ulogu ima klasa mutex?
Klasa mutex omoguava meusobnu iskljuivost krtinih sekcija, upotrebom propusnice. Objekat ove
klase predstavlja propusnicu.
25. Kakve operacije sadri klasa mutex?
Klasa mutex sadri operacije lock() i unlock(). Operacija lock() omoguuje zauzimanje propusnice, a
operacija unlock() oslobaanje propusnice.
26. Kakvu ulogu ima klasa unique_lock?
Klasa unique_lock ima isti efekat kao pozivanje operacija klase mutex, lock() na poetku i unlock() na
kraju kritine sekcije. Razlog za to je to konstruktor klase unique_lock poziva operaciju lock(), a
destruktor operaciju unlock().
27. Kakve operacije sadri klasa unique_lock?
Klasa unique_lock sadri operaciju lock() i operaciju unlock(). Konstruktor ove klase poziva operaciju
lock(), a destruktor operaciju unlock().
28. Kakvu ulogu ima klasa condition_variable?
Klasa conditiona_variable slui za ostvarenje uslovne sinronizacije.
29. Kakve operacije sadri klasa condition_variable?
Klasa condition_variable sadri operacije wait() i notify_one(). Obe se koriste u iskljuivom regionu.
Operacija wait() omoguuje zaustavljanje aktivnosti niti, koja pozove ovu operaciju, dok se ne ispuni
dati uslov. Operacija notify_one() omoguuje objavu ispunjenja datog uslova, radi nastavka aktivnosti
jedne od niti koje oekuju ispunjenje dotinog uslova.
30. U pozivu koje od operacija klase condition_variable se vraa propusnica?
Propusnica se vraa u pozivu operacije wait().
31. Koje vrste razmene poruka postoje?
Postoje sinhrona i asinhrona razmena poruka. Sinhrona razmena poruka se jo naziva i randevu.
32. U emu se razlikuju sinhrona i asinhrona razmena poruka?
Asinhrona razmena poruka je razmena u kojoj se aktivnost poiljaoca zaustavlja pri slanju poruka
samo kada je komunikacioni kanal pun, dok se aktivnost primaoca zaustavlja pri prijemu poruka samo
kada je ovaj kanal prazan. Kod sihrone razmene poruka se uvek zaustavlja aktivnost niti koja prva
zapone razmenu poruka, bez obzira da li se radi o poiljaocu ili primaocu. Aktivnost ove niti ostaje
zaustavljena dok i druga nit ne zapone razmenu poruka. Sinhrona razmena poruka dozvoljava da se u
komunikacionom kanalu ne uva poruka, ve samo njena adresa. Tada primalac moe direktno
preuzeti poruku od poiljaoca, ime se izbegava potreba da se poruka prepisuje u komunikacioni
kanal, to je neizbeno kod asinhrone razmene poruka.
33. ta omoguuje funkcija sleep_for()?
Funkcija sleep_for() omoguuje uspavljivanje niti.
34. Po kojim ciljevima se konkurentno programiranje razlikuje od sekvencijalnog?
Opisivanje obrada podataka je jedini cilj sekvencijalnog, a osnovni cilj konkurentnog programiranja.
Bolje iskorienje raunara i njegovo vre sprezanje sa okolinom su dodatni ciljevi konkurentnog
programiranja, po kojima se ono razlikuje od sekvencijalnog programiranja.

7

35. Zato operacija condition_variable::wait() predstavlja prikriveni kraj iskljuivog regiona?
Operacija condition_variable::wait() predstavlja prikriveni kraj iskljuivog regiona, jer ona vraa
propusnicu i izaziva prekljuivanje na nivou niti. Ova nit moe da dobije vraenu propusnicu i da ue
u neki od iskljuivih regiona iste deljene promenljive.
36. ta je mrtva petlja?
Mrtva petlja je pojava meuzavisnosti niti, koja dovodi do trajnog zaustavljanja aktivnosti niti, a to
ima za posledicu da izvravanje konkurentnog programa nema kraja.




























8

Sinhronizacija pomou semafora
1. ta karakterie semafor?
Semafor je sredstvo za sinhronizaciju niti (regulie prolaz niti kroz kritinu sekciju) i zasniva se ideji
saobraajnog semafora, koji regulie ulazak vozova u stanicu sa jednim kolosekom.
2. Koje operacije su vezane za semafor?
Za semafor su vezane operacije stop() i resume().
3. Kako semafor obezbeuje sinhronizaciju meusobne iskljuivosti?
Sinhronizacija niti, koju omoguuje semafor, zasniva se na zaustavljanju aktivnosti niti, kao i na
omoguavanju nastavljanja njihove aktivnosti. Ulazak niti u kritinu sekciju zavisi od stanja semafora.
Kada stanje semafora dozvoli ulazak niti u kritinu sekciju, pri ulasku se semafor prevodi u stanje koje
onemoguuje ulazak druge niti u kritinu sekciju. Ako se takva nit pojavi, njena aktivnost se
zaustavlja pred kritinom sekcijom. Pri izasku niti iz kritine sekcije, semafor se prevodi u stanje koje
dozvoljava novi ulazak u kritinu sekciju i ujedno omoguuje nastavak aktivnosti niti koja najdue
eka na ulaz u kritinu sekciju (ako takva nit postoji).
4. Kako se obino implementira semafor?
Semafori se obino implementiraju u okviru operativnog sistema i tada se njihova implementacija
obino zasniva na (kratkotrajnom) onemoguenju prekida.
5. U emu se semafori razlikuju od iskljuivih regiona?
Semafori i iskljuivi regioni predstavljaju dva razliita pristupa sinhronizaciji. Iskljuivi regioni su
prilagoeni objektno orijentisanom programiranju, dok su semafori prilagoeni procedurnom
programiranju.
6. Koji semafori postoje?
Postoje binarni i generalni semafori. Postoji i posebna vrsta binarnog semafora, raspodeljeni binarni
semafor.
7. ta karakterie binarni semafor?
Binarni semafor je semafor ije stanje ne moe prei vrednost 1.
8. ta karakterie raspodeljeni binarni semafor?
Raspodeljeni binarni semafor se realizuje pomou vie binarnih semafora, za koje vai ogranienje da
suma njihovih stanja ne moe prei vrednost 1.
9. ta karakterie generalni semafor?
Genearlni semafor je semafor ije stanje moe sadrati vrednost veu od 1.
10. ta omoguuje raspodeljeni binarni semafor?
Pomou raspodeljenog binarnog semafora se ostvaruje uslovna sinhronizacija, tako to se na ulazu u
svaku kritinu sekciju poziva operacija stop() jednog od njegovih binarnih semafora, a na izlazu iz nje
operacija resume() tog ili nekog od preostalih binarnih semafora.
11. ta omoguuje binarni semafor?
On omoguuje ostavarenje sinhronizacije meusobne iskljuivosti, ako se njegovo stanje inicijalizuje
na vrednost 1. Tada su njegove operacije stop() i resume() sline operacijama lock() i unlock() klase
9

mutex. Ako se stanje binarnog semafora inicijalizuje na 0, tada su njegove operacija stop () i resume()
sline operacijama wait() i notify_one() klase condition_variable.
12. ta omoguuje generalni semafor?
Generalni semafor omoguuje ostvarenje uslovne sinhronizacije prilikom rukovanja resursima.
Pozitivno stanje generalnog semafora moe predstavljati broj slobodnih primeraka nekog resursa.
Zahvaljujui tome, zauzimanje primeraka resursa se moe opisati pomou operacije stop(), a njegovo
oslobaanje pomou operacije resume() generalnog semafora.
13. Koje su prednosti i mane semafora?
Prednosti semafora su u tome to su jednostavni i efikasni, a mana je to raspodeljeni binarni semafori
nisu ba najpodesnije sredstvo za opisivanje uslovne sinhronizacije.

























10

Izvedba CppTss-a
1. ta obuhvata izvedba CppTss-a?
Izvedba CppTss-a ukljuuje neophodne delove operativnog sistema, koji su potrebni za samostalno
izvravanje konkurentnog programa. Ona obuhvata ulazno-izlazne module, izvrioca (kernel) i
virtuelnu mainu.
2. Koja klasa omoguuje stvaranje atomskih regiona?
Stvaranje atomskih region omoguuje klasa Atomic_region. Njen konstruktor onemoguuje prekide, a
destruktor ponitava akciju konstruktora.
3. Koju klasu nasleuju klase koje opisuju ponaanje drajvera?
Klase koje opisuju ponaanje drajvera nasleuju klasu Driver.
4. ta omoguuje operacija start_interrupt_handling() klase Driver?
Operacija start_interrupt_handling() klase Driver omoguuje smetanje adrese obraivaa prekida u
tabelu prekida. Prvi argument poziva ove operacije predstavlja broj vektora prekida, a drugi adresu
obraivaa prekida.
5. Koje operacije sadri klasa Event?
Klasa Event sadri operacije expect() i signal().
6. ta omoguuje operacija expect() klase Event?
Opeacija expect() klase Event omoguuje zaustavljanje aktivnosti niti, koja pozove ovu opraciju, dok
se ne desi vanjski dogaaj koga reprezentuje objekat klase Event. Tome prethode prevoenje ove niti u
stanje eka i prekljuivanje procesora na spremnu nit. Operacija except() poziva se samo iz
atomskog regiona.
7. ta omoguuje operacija signal() klase Event?
Operacija signal() klase Event omoguuje objavu deavanja nekog vanjskog dogaaja, radi nastavka
aktivnosti niti koja (najdue) oekuje deavanje dotinog dogaaja. Operaciju signal() ima smisla
pozivati samo iz obraivaa prekida, jer jedino oni opisuju reakciju na deavanje vanjskih dogaaja.
Izvravanje operacije signal() prevodi nit, koja je doekala deavanje vanjskog dogaaja, u stanje
spremna. Operacija signal() poziva se samo jednom i to na kraju obrade prekida.










11

Ulazno-izlazni moduli CppTss-a
1. Na koje drajvere se oslanjaju ulazno-izlazni moduli CppTss-a?
U ulazno-izlazne module CppTss-a spadaju znakovni i blokovski ulazno-izlazni moduli. Znakovni
ulazno-izlazni modul se oslanja na drajver ekrana i drajver tastature. Blokovski ulazno-izlazni modul
se oslanja na drajver diska.
2. ta se deava u obradi prekida ekrana?
U obradi prekida ekrana objavljuje se da je prikaz prethodnog znaka zavren.
3. Do ega dovodi pokuaj niti da prikae novi znak dok kontroler ekrana prikazuje prethodni
znak?
Pokuaj niti da prikae novi znak dok kontroler ekrana prikazuje prethodni znak, zaustavlja aktivnost
niti.
4. ta se deava u obradi prekida tastature?
U obradi prekida tastature kod znaka se preuzima iz registra podataka i smeta u cirkularni bafer, ako
on nije pun i zatim se objavljuje da je kod znaka preuzet.
5. Do ega dovodi pokuaj niti da preuzme znak kada je cirkularni bafer drajvera tastature
prazan?
Pokuaj niti da preuzme znak kada je cirkularni bafer drajvera tastature prazan zaustavlja njenu
aktivnost.
6. ta se desi kada se napuni cirkularni bafer drajvera tastature?
Kada se napuni cirkularni bafer drajvera tastature, nit preuzima znak. Kada se cirkularni bafer popuni
do kraja, polje first_empty klase Keyboard_driver (koje sadri indekse cirkularnog bafera) se anulira.
7. Koje klase nasleuje klasa Terminal_out?
Klasa Terminal_out nasleuje klasu mutex.
8. Koje klase nasleuje klasa Terminal_in?
Klasa Terminal_in nasleuje klasu mutex.
9. ta rade operacije klase Terminal_out za prikaz brojeva?
Operacije klase Terminal_out za prikaz brojeva omoguuju formatiranje prikazivanog podatka
(njegovo pretvaranje u niz znakova). One koriste operaciju string_put() klase Terminal_out za prikaz
niza znakova.
10. ta rade operacije klase Terminal_in za preuzimanje brojeva?
Operacija klase Terminal_in za preuzimanje brojeva, string_get(), poziva opereaciju edit() klase
Terminal_in, koja je zaduena za eho znakova na ekranu i njihovo primitivno editiranje. Preostale
operacije klase Terminal_in koriste operaciju string_get() za preuzimanje niza znakova, koji
odgovaraju raznim tipovima podataka. One zatim konvertuju te znakove u odgovarajui tip podataka.
11. ta zakljuava operacija Terminal_in::string_get()?
Operacija Terminal_in::string_get() zakljuava tastaturu do kraja izvravanja, i ekran, kada pone eho
znakova, preuzetih u ovoj operaciji.
12. ta otkljuava operacija Terminal_in::string_get()?
12

Operacija Terminal_in::string_get() otkljuava tastaturu na kraju izvravanja, i ekran, nakon eha
znakova i njihovog primitivnog editiranja.
13. ta zakljuava operacija Terminal_out::string_put()?
Operacija Terminal_out::string_put() zakljuava ekran.
14. ta otkljuava operacija Terminal_out::string_put()?
Operacija Terminal_out::string_put() otkljuava ekran.
15. ta obuhvata primitivno editiranje koje podrava klasa Terminal_in?
Primitivno editiranje, koje podrava klasa Terminal_in, obuhvata pozivanje operacije edit() klase
Terminal_in, koja je zaduena za eho znakova na ekranu.
16. ta se desi u obradi prekida diska?
U obradi prekida diska objavljuje se kraj prenosa bloka.
17. Operacije koje klase ulazno-izlaznih modula CppTss-a vraaju poruku greke?
Operacije klasa Disk_driver i Disk vraaju poruku greke (vraaju -1 kao error, ako je broj bloka vei
nego to je mogue).





















13

Virtuelna maina CppTss-a
1. Koji zadatak ima virtuelna maina CppTss-a?
Virtuelna maina za potrebe ostatka biblioteke CppTss:
- emulira kontrolere tastature, ekrana i diska,
- emulira mehanizam prekida,
- podrava okonanje izvravanja konkurentnog programa,
- podrava rukovanje pojedinim bitima memorijskih lokacija,
- podrava rukovanje numerikim koprocesorom
- podrava rukovanje stekom
2. ta omoguuje emulacija hardvera biblioteci CppTss?
Emulacija hardvera omoguuje da konkurentni program ne pristupa stvarnom, nego emuliranom
hardveru, pa se izvrava kao obian (neprivilegovan) Linux proces. Zato, u sluaju greaka, on ne
moe ugroziti funkcionisanje operativnog sistema u okviru koga se izvrava.
3. Na emu se zasniva emulacija mehanizma prekida?
Emulacija mehanizma prekida se zasniva na:
- uvoenju (emulirane) tabele prekida
- uvoenju (emuliranog) bita prekida i
- obezbeenju nezavisnosti (asinhronosti) izmeu prekida i izvravanja konkurentnog programa
4. ta vai za mehanizam Linux signala?
Na mehanizmu Linux signala zasniva se nezavisnost (emuliranih) prekida od izvravanja
konkurentnog programa. On omoguuje da se na pojavu signala reaguje izvravanjem odabrane
funkcije, koja se naziva obraiva signala. Signali su unapred odreeni, a svaki od njih je pridruen
jednoj vrsti dogaaja. Kada se takav dogaaj desi, mehanizam signala zaustavi izvravanje programa,
radi pokretanja izvravanja odgovarajueg obraivaa prekida. Nakon obrade dotinog signala, mogu
je nastavak zaustavljenog izvravanja programa.
5. ta omoguuje klasa Linux_signals?
Klasa Linux_signals opisuje reakciju na Linux signale.
6. ta omoguuje klasa Linux_timer?
Klasa Linux_timer odreuje uestanost deavanja signala SIGVTALRM (pridruen dogaaju isticanja
zadatog vremenskog intervala).
7. ta podrava klasa Interrupt?
Klasa Interrupt:
- uvodi (emuliranu) klasu prekida,
- omoguuje registrovanje odlaganja obrade (emuliranog) prekida.
- regulie redosled pozivanja obraivaa pojedinih (emuliranih) prekida.
8. Koja funkcija pokree odloenu obradu (emuliranih) prekida?
Funkcija ad__restore_interrupts() pokree odloenu obradu (emuliranih) prekida.


14

9. ta omoguuje klasa Keyboard_controller?
Klasa Keyboard_controller opisuje kontroler tastature. Njeno polje data_reg predstavlja registar
podataka kontrolera, a njena operacija input() opisuje ponaanje kontrolera tastature. Ako postoji znak
za preuzimanje, on se preuzima u okviru operacije input() posredstvom odgovarajueg Linux
sistemskog poziva. Ujedno se poziva obraiva prekida tastature, posredstvom operacije handler(),
klase Interrupt, koja emulira tabelu prekida.
10. ta omoguuje klasa Display_controller?
Klasa Display_controller opisuje kontroler ekrana. Njena polja data_reg i status_reg predstavljaju
registre podataka i stanja kontrolera, a njena operacija output() opisuje ponaanje kontrolera ekrana.
Ako postoji znak za prikazivanje, on se prikazuje u okviru operacije output(), posredstvom
odgovarajueg Linux sistemskog poziva. Ujedno se poziva obraiva prekida ekrana posredstvom
operacije handler(), klase Interrupt, koja emulira tabelu prekida.
11. ta omoguuje klasa Disk_controller?
Klasa Disk_controller opisuje ponaanje kontrolera diska. Njena polja operation_reg, buffer_reg,
block_reg i status_reg odgovaraju registrima smera prenosa, bafera, bloka i stanja kontrolera, a njena
operacija transfer() opisuje ponaanje kontrolera diska. Konstruktor klase Disk_controller koristi
sistemski poziv calloc() radi zauzimanja radne memorije, u kojoj se uvaju blokovi emuliranog diska.
Inercija diska se emulira brojanjem poziva operacije transfer(). Kada broj poziva ove operacija postane
jednak procenjenom broju vremenskih jedinica potrebnom za prenos blooka, tada se obavi prenos
bloka u okviru ove operacije i ujedno se pozove obraiva prekida diska posredstvom operacije
handler(), klase Interrupt, koja emulira tabelu prekida.
12. ta omoguuje klasa Linux_terminal?
Klasa Linux_terminal omoguuje da se (za potrebe emulacija) iskljui eho Linux terminala, prevede
Linux terminal u reim rada bez linijskog editiranja i obezbedi da poziv itanja znaka sa terminala
bude neblokirajui.
13. Koja klasa omoguuje prevoenje Linux terminala u reim rada bez linijskog editiranja?
Prevoenje Linux terminala u reim rada bez linijskog editiranja omoguuje klasa Linux_terminal.
14. Koja klasa omoguuje iskljuivanje eha Linux terminala?
Iskljuivanje eha Linux terminala omoguuje klasa Linux_terminal.
15. Koja klasa obezbeuje da itanje znakova sa Linux terminala bude neblokirajue?
Klasa Linux_terminal omoguuje da itanje znakova sa Linux terminala bude neblokirajue.
16. Kojim Linux sistemskim pozivom se okonava izvravanje konkurentnog programa?
Izvravanje konkurentnog programa okonava se sistemskim pozivom exit().
17. ta omoguuje rukovanje pojedinim bitima memorijskih lokacija?
Rukovanje pojedinim bitima memorijskih lokacija omoguuju asemblerske naredbe za dobijanje
indeksa najznaajnijeg postavljenog bita u rei (bsr), za postavljanje datog bita rei (bts) i za njegovo
ienje (btr). Funkcije ad__get_index_of_most_significiant_set_bit(), ad_set_bit() i ad_clear_bit()
posreduju u korienju ovih asemblerskih naredbi.
18. ta omoguuje rukovanje numerikim koprocesorom?
Rukovanje koprocesorom omoguuje klasa I387_npx. Ona omoguuje da se pripremi i preuzme
inicijalni sadraj registara numerikog koprocesora. Njen konstruktor inicijalizuje registre numerikog
15

koprocesora i smeta njihov inicijalni sadraj u polje initial_contex ove klase. To omoguuju
asemblerske naredbe fninit i fnsave.
19. ta omoguuje rukovanje stekom?
Rukovanje stekom omoguuje funkcija ad__stack_init(). Ona na stek smesti povratnu adresu funkcije
koja opisuje stvaranu nit (destroy()) i povratnu adresu funkcije prekljuivanja (thread_function()), kao
i kontekst niti na koju se procesor prvi put prekljuuje. Funkcija ad__stack_swap() ima ulogu funkcije
prekljuivanja. Funkcija preljuivanja prvo na stek aktivne niti smesti njen kontekst, zatim ona kao
vaei stek postavi stek novoaktivirane niti i na kraju sa ovog steka preuzme kontekst novoaktivirane
niti.
20. ta obuhvata kontekst niti?
Kontekst niti obuhvata:
- pokaziva prethodnog frejma,
- poetno stanje (emuliranog) bita prekida,
- poetno stanje status (flag) registra procesora i
- poetni sadraj registara procesora.





















16

CppTss izvrilac
1. Koje izuzetke podrava klasa Failure?
Klasa Failure podrava izuzetke nastale u toku izvravanja konkurentnog programa.
2. ta omoguuje klasa List_link?
Klasa List_link omoguuje obrazovanje dvosmernih listi pomou polja left i right. Operacije ove klase
omoguuju preuzimanje vrednosti ovih polja, uvezivanje novog elementa na kraj liste, izvezivanje
elementa sa poetka liste, proveru da li u listi ima uvezanih elemenata, odnosno da li je lista prazna.
3. ta omoguuje klasa Permit?
Klasa Permit opisuje rukovanje propusnicama. Njene operacije omoguuju:
- proveru da li je propusnica iskljuive promenljive zauzeta,
- zauzimanje ove propusnice,
- njeno oslobaanje i
- rukovanje listama deskriptora niti.
4. ta sadre objekti klase Permit?
Objektni klase Permit sadre:
- polje free, koje uva stanje propusnice,
- pokazivako polje previous, koje omoguuje obrazovanje liste propusnica,
- polje admission_list, oko kog se obrazuje liste deskriptora niti koje ekaju na propusniicu da bi
ule u iskljuivi region i
- polje fulfiled_list, oko kog se obrazuje lista deskriptora niti koje ekaju na propusnicu nakon
ispunjenja uslova.
5. ta je uslov konzistentnosti propusnice?
Uslov konzistentnosti propusnice je da poziv operacije provere da li je propusnica zauzeta i poziv
operacije zauzimanja propusnice moraju biti u istom atomskom regionu.
6. ta sadre objekti klase Descriptor?
Objekti klase Descriptor sadre:
- polje stack_top, koje sadri pokaziva (adresu) vrha steka niti,
- polje priority, koje sadri prioritet niti,
- polje last, koje sadri adresu poslednje dobijene propusnice,
- polje tag, namenjeno za smetanje priveska deskriptora niti.
7. Koju klasu nasleuje klasa Descriptor?
Klasa Descriptor nasleuje klasu List_link, da bi bilo mogue deskriptore niti uvezivati u liste.
8. ta karakterie nultu nit?
Nulta nit nalazi se u nultoj listi spremnih niti i ima prioritet 0 (kao i nulta lista). Ona angauje procesor
(aktivna je) kada nema drugih spremnih niti. Kada je nulta nit u stanju spremna, tada je njen deskriptor
uvezan u nultu listu spremnih niti. Nulta nit ne moe biti u stanju eka.
9. ta karakterie klasu Ready_list?
Klasa Ready_list omoguuje rukovanje spremnim nitima. Svakom od prioriteta niti se dodeljuje
posebna lista spremnih niti i podrazumeva se da se deskriptor spremne niti uvek uvezuje na kraj liste
17

spremnih niti, koja odgovara prioritetu dotine niti. Takoe se podrazumeva da se deskriptor spremne
niti uvek izvezuje sa poetka odabranje liste spremnih niti.
10. Koje operacije omoguuju rukovanje multi-listom?
Rukovanje multi-listom omoguuju operacije klase Ready:
- highest() - dobijanje prioriteta najprioritetnije neprazne liste spremnih niti
- insert() - uvezivanje deskriptora niti na kraj odgovarajue liste spremnih niti,
- extract() - izvezivanje deskriptora niti sa poetka najprioritetnije neprazne liste spremnih niti
- higher_than() - poreenje prioriteta najprioritetnije neprazne liste spremnih niti, sa prioritetom
zadate niti.
11. Koju klasu nasleuje klasa Kernel?
Klasa Kernel nasleuje klasu Descriptor, da bi jedini objekat klase Kernel reprezentovao deskriptor
main niti.
12. ta reprezentuje jedini objekat klase Kernel?
Jedini objekat klase Kernel reprezentuje deskriptor main() niti. Konstruktor ove klase proglaava
aktivnom main() nit.
13. ta omoguuje klasa Kernel?
Klasa Kernel omoguuje rukovanje procesorom, a ono se svodi na prekljuivanje procesora sa jedne
niti na drugu. U nadlenosti klase Kernel je i podrka viih slojeva iz hijerarhijske strukture CppTss
izvrioca.
14. Kada dolazi do rasporeivanja u okviru klase Kernel?
Do rasporeivanja dolazi:
- kada se pojavi spremna niti sa viim prioritetom od aktivne (operacija schedule()) i
- na kraju kvantuma (operacija periodic_schedule())
15. Koju klasu nasleuje klasa mutex?
Klasa mutex nasleuje klasu Permit.
16. ta omoguuje klasa Driver?
Klasa Driver omoguuje smetanje adrese obraivaa prekida u tabelu prekida. Pored toga, ona uvodi
definiciju klase Event, koja omoguuje zaustavljanje aktivnosti niti do deavanja dogaaja i objavu
deavanja dogaaja.
17. ta registruje Timer_driver::interrupt_handler()?
Timer_driver::interrupt_handler() registruje otkucaje sata, tj.:
- brojanje otkucaja sata, radi praenja sistemskog vremena,
- odbrojavanje otkucaja sata preostalih do kraja kvantuma aktivne niti kao i
- odbrojavanje otkucaja sata preostalih do buenja uspavane niti.
18. ta omoguuje Timer_driver::interrupt_handler()?
Kada broj otkucaja, preostalih do isticanja kvantuma aktivne niti, padne na nulu, potrebno je
pokretnuti periodino rasporeivanje. Takoe, kada broj otkucaja, preostalih do buenja uspavane niti,
padne na nulu, potrebno je probuditi sve niti za koje je nastupio trenutak buenja. Sve ovo omoguuje
operacija Timer_driver::interrupt_handler().

18

19. ta karakterie odseke slobodne radne memorije?
Slobodnu radnu memoriju obrazuje celi broj jedinica sastavljenih od UNIT bajta. Rukovanje
slobodnom radnom memorijom podrazumeva da se uvek zauzima (odnosno oslobaa) celi broj ovih
jedinica. Zauzimanja (oslobaanja) ovakvih zona slobodne radne memorije uzrokuju iscepkanost
slobodne radne memorije u odseke, zbog ega se odseci uvezuju u jednosmernu listu.
20. U kom redosledu su uvezani odseci slobodne radne memorije?
Odseci radne memorije su uvezani u jednosmernu listu, ureenu u rastuem redosledu njihovih
poetnih adresa. Poetak svakog odseka sadri svoju veliinu (u jedinicama od po UNIT bajta) i
pokaziva narednog odseka.
21. Koju klasu nasleuje klasa Memory_fragment?
Klasa Memory_fragment nasleuje klasu mutex.
22. ta vai za konzistentnost operacija Memory_fragment::take() i Memory_fragment::free()?
Konzistentnost operacija Memory_fragment::take() i Memory_fragment::free() je ouvana. Ove
operacije pozivaju globalni operatori new() i delete(), u kojima dolazi do zakljuavanja i otkljuavanja
jedinog objekta klase Memory_fragment.
23. Gde se sve titi konzistentnost zakljuavanjem i otkljuavanjem jedinog objekta klase
Memory_fragment?
Konzistentnost zakljuavanjem i otkljuavanjem jedinog objekta klase Memory_fragment titi se u
definicijama funkcija operator new() i operator delete().
24. Koje operacije sadri klasa thread?
Klasa thread sadri operacije join() i detach().
25. ta koristi klasa thread za ostvarenje konzistentnosti?
Za ostvarenje konzistentnosti, klasa thread koristi objekat klase mutex.
26. ta karakterie deskriptore uspavanih niti?
Deskriptori uspavanih niti se uvezuju u listu u hronolokom redosledu buenja niti. Svakom od ovih
deskriptora je dodeljen privezak, koji pokazuje relativno vreme buenja (relativni broj otkucaja do
buenja) u odnosu na prethodnika u listi. Ovakava lista zove se delta lista.
27. Ko budi uspavane niti?
Uspavane niti budi sistemska nit Wake_up_daemon, ije vreme buenja je uvek jednako najranijem
vremenu buenja korisnikih niti. Ova sistemska nit poziva operaciju awake().








19

Svojstva datoteka
1. Na ta ukazuje ime datoteke?
Poeljno je da ime datoteke ukazuje na njen konkretan sadraj i na vrstu njenog sadraja (radi
klasifikacije datoteka po njihovom sadraju).
2. Od koliko delova se sastoji ime datoteke?
Imena datoteka su dvodelna. Prvi deo imena datoteke oznaava njen sadraj, a drugi deo oznaava
vrstu njenog sadraja, odnosno njen tip. Ova dva dela imena datoteke obino razdvaja taka. (npr.
godina1.txt)
3. Od koliko delova se sastoji ime imenika?
Imena imenika su jednodelna, jer nema potrebe za klasifikacijom imenika.
4. ta obuhvata rukovanje datotekom?
Rukovanje datotekom obuhvata rukovanje njenim sadrajem i njenim imenom.
5. ta karakterie hijerarhijsku organizaciju datoteka?
Razvrstavanjem datoteka u imenike nastaje hijerarhijska organizacija datoteka, u kojoj su na viem
nivou hijerarhije imenici, a na niem nivou se nalaze datoteke koje pripadaju navedenim imenicima.
Ovakva hijerarhijska organizacija povlai za sobom i hijerarhijsko oznaavanje datoteka. Hijerarhijsku
oznaku ili putanju (path name) datoteke obrazuju ime imenika kome datoteka pripada i ime datoteke.
Ime imenika se zavrava znakom /. Hijerarhijska organizacija datoteka ima vie nivoa, kada imenik
pored datoteka obuhvata i druge imenike. Obuhvaeni imenici se nalaze na niem nivou hijerarhije.
Na vrhu hijerarhijske organizacije datoteka se nalazi korenski imenik (root) koji obino nema ime.
Hijerarhijska organizacija datoteka dozvoljava da postoje datoteke (imenici) sa istim imenima, pod
uslovom da pripadaju raznim imenicima. Zahvaljujui hijerarhijskoj organizaciji datoteka, mogue je
rukovanje skupovima datoteka. Npr. mogue je kopiranje celog imenika, odnosno kopiranje svih
datoteka i imenika, koji mu pripadaju.
6. ta vai za apsolutnu putanju?
Navoenje apsolutne putanje datoteke, sa svim prethodeim imenicima, potrebno je kad god je mogu
nesporazum, zbog datoteka (imenika) sa istim imenima. Ali, ako postoji mogunost odreivanja nekog
imenika kao radnog, tada se njegova putanja moe podrazumevati i ne mora se navoditi.
7. ta vai za relativnu putanju?
Radni imenik omoguuje korienje relativnih putanja. (ne pie se apsolutna putanja, ve relativna
putanja od radnog imenika)
8. Koje datoteke obrazuju sistem datoteka?
Datoteke koje pripadaju istoj hijerarhijskoj organizaciji obrazuju sistem datoteka.
9. Koja su prava pristupa datotekama?
Prava pristupa datotekama su pravo itanja, pravo pisanja i pravo izvravanja (za izvrne datoteke).
10. Koje kolone ima matrica zatite?
Matrica zatite ima tri kolone, po jednu za svaku kategoriju korisnika (vlasnik datoteke, saradnici,
ostali korisnici).

20

11. emu je jednak broj redova matrice zatite?
Broj redova matrice zatite jednak je broju datoteka.
12. Gde se mogu uvati prava pristupa matrice zatite?
Prava pristupa matrice zatite mogu se uvati u deskriptorima datoteke (redovi matrice zatite
rasporeeni po deskriptorima raznih datoteka), ako su vezana za datoteke, a ako su prava pristupa
matrice zatite vezana za korisnike, elemente njenih kolona uvaju pojedini korisnici.
13. ta je potrebno za spreavanje neovlaenog menjanja matrice zatite?
Za spreavanje neovlaenog menjanja matrice zatite potrebno je znati za svaku datoteku ko je njen
vlasnik, jer jedino on sme da zadaje i menja prava pristupa sebi, svojim saradnicima i ostalim
korisnicima. Takoe, potrebno je i razlikovanje korisnika, da bi se meu njima mogao prepoznati
vlasnik datoteke. To se postie predstavljanjem (login) korisnika.
14. Kada korisnici mogu posredno pristupiti spisku lozinki?
Korisnici mogu posredno pristupiti spisku lozinki jedino u dva sluaja, radi svog predstavljanja i radi
izmene svoje lozinke.
15. Koju dunost imaju administratori?
Sva druga rukovanja spiskovima imena i lozinki registrovanih korisnika (sem predstavljanja korisnika
i promene lozinke), kao to su ubacivanja u ove spiskove novih parova (ime, lozinka) ili njihovo
izbacivanje iz ovih spiskova, nalaze se u nadlenosti poverljive osobe, koja se naziva administrator.
Zatita datoteka zavisi od odgovornosti i poverljivosti administratora. Zbog prirode njegovog posla,
ima smisla administratora izuzeti iz zatite datoteka, s tim da on tada svoje nadlenosti mora vrlo
oprezno koristiti.
16. ta sadri numerika oznaka korisnika?
Sadri dva redna broja, prvi oznaava korisnika, a drugi grupu kojoj korisnik pripada.
17. Kakvu numeriku oznaku imaju saradnici vlasnika datoteke?
Saradnici vlasnika datoteke imaju isti redni broj grupe kao i vlasnik.
18. Kakvu numeriku oznaku imaju ostali korisnici?
Ostali korisnici imaju redni broj grupe razliit od rednog broja grupe vlasnika.
19. Kada se obavlja provera prava pristupa datoteci?
Provera prava pristupa datoteci obavlja se samo pre prvog pristupa.
20. ime se bavi sigurnost?
Sigurnost se odnosi na uspenost zatite od neovlaenog korienja ne samo datoteka, nego i ostalih
delova raunara kojima upravlja operativni sistem. Sigurnost se bavi nainima prepoznavanja ili
indentifikacije korisnika, kao i nainima provere njihovih prava pristupa.




21

Sloj operativnog sistema za rukovanje procesima
1. ta omoguuju sistemske operacije za rukovanje procesima?
Sistemske operacije za rukovanje procesima omoguuju stvaranje procesa, unitavanje procesa,
izmenu atributa procesa (npr. izmena radnog imenika procesa).
2. ta obuhvata stvaranje procesa?
Stvaranje procesa obuhvata stvaranje njegove slike i deskriptora, kao i pokretanje njegove aktivnosti.
3. ta obuhvata unitavanje procesa?
Unitavanje procesa obuhvata zaustavljanje njegove aktivnosti, kao i unitenje njegove slike i
deskriptora.
4. ta sadri slika procesa?
Slika procesa sadri izvravane mainske naredbe, promenljive i stek. Ona obuhvata niz lokacija radne
memorije sa uzastopnim (logikim) adresama.
5. Za ta se koristi slobodna radna memorija procesa?
Slobodna radna memorija procesa je na raspolaganju procesu za irenje (punjenje) steka, ali i za
stvaranje dinamikih promenljivih (taj deo slobodne radne memorije se naziva heap).
6. Koji atributi procesa postoje?
Atributi procesa nalaze se u deskriptoru procesa i karakteriu aktivnost procesa. Oni obuhvataju:
- stanje procesa (spreman, aktivan, eka)
- sadraje procesorskih registara (zateene u njima pre poslednjeg prekljuivanja procesora sa
procesa)
- numeriku oznaku vlasnika procesa,
- oznaku procesa stvaraoca,
- trenutak pokretanja aktivnosti procesa,
- ukupno trajanje aktivnosti procesa (ukupno vreme angaovanja procesora),
- podatke o slici procesa (njenoj veliini i poloaju u radnoj i masovnoj memoriji),
- podatke o datotekama koje proces koristi,
- podatak o radnom imeniku procesa i
- razne podatke neophodne za rukovanje aktivnou procesa (poput prioriteta procesa ili
poloaja sistemskog steka procesa, koga koristi operativni sistem u toku obavljanja sistemskih
operacija)
7. Koje sistemske operacije za rukovanje procesima postoje?
Postoje operacije stvaranja procesa ( fork() i exec() ), operacije unitenja procesa ( exit() ), posebna
operacija wait() (omoguuje zaustavljanje aktivnosti procesa stvaraoca i prekljuivanje procesora na
stvarani proces).
8. Koji atributi se nasleuju od procesa stvaraoca prilikom stvaranja procesa?
Prilikom stvaranja procesa od procesa stvaraoca nasleuju se npr. numerika oznaka vlasnika procesa,
podatak o radnom imeniku procesa ili njegov prioritet.
9. Koji atributi procesa nastanu prilikom njegovog stvaranja?
Prilikom stvaranja procesa nastaju npr. podaci o slici procesa.
22

10. U kojim stanjima moe biti proces stvaralac nakon stvaranja novog procesa? ???
Kada se u okviru stvaranja procesa, stigne do pokretanja njegove aktivnosti, mogue je prekljuivanje
procesora sa procesa stvaraoca na stvarani proces. To se desi ako je prioritet stvaranog procesa vii od
prioriteta procesa stvaraoca. U tom sluaju proces stvaralac dospeva meu spremne procese. Inae
tamo dospeva stvarani proces. Znai za sad aktivan i spreman. Moe biti i u stanju eka?..
11. ta je stepen multiprogramiranja?
Stepen multiprogramiranja je najvei mogui broj slika procesa, koje mogu istovremeno da postoje u
radnoj memoriji.
12. ta karakterie kopiju slike procesa?
Kopija slike procesa se nalazi u masovnoj memoriji. U toku aktivnosti procesa, menja se samo deo
njegove slike u radnoj memoriji, jer se menjaju samo vrednosti njegovih promenjivih i njegov stek, pa
je prilikom izbacivanja slike procesa, potrebno samo njen izmenjeni deo prebaciti u kopiju slike u
masovnoj memoriji. Ali, pri vraanju slike u radnu memoriju prebacuje se cela njena kopija, da bi se u
radnoj memoriji obnovila cela slika procesa. Vraanje slike jednog procesa vezano je za unitavanje
drugog procesa, jer se tada oslobaa prostor u radnoj memoriji. Podaci o kopiji slike procesa (koja
nastaje istovremeno sa slikom procesa ili prilikom njenog prvog izbacivanja, a nestaje istovremeno sa
slikom procesa) uvaju se u deskriptoru procesa, zajedno sa podacima o slici procesa.
13. Koje rasporeivanje je vezano za zamenu slike procesa?
Za zamenu slike procesa vezano je dugorono rasporeivanje, u okviru koga se odabira proces ija se
slika izbacuje, kao i proces ija se slika ubacuje.
14. ta karakterie rukovanje nitima unutar operativnog sistema?
Rukovanje nitima moe, ali i ne mora, biti u nadlenosti sloja za rukovanje procesima. Kada je
rukovanje nitima povereno sloju za rukovanje procesima, tada operativni sistem nudi sistemske
operacije za rukovanje nitima, koje omoguuju stvaranje, unitavanje i sinhronizaciju niti. U ovom
sluaju, deskriptori i sistemski stek niti se nalaze u sistemskom prostoru, dok se sopstveni stek niti
nalazi u korisnikom prostoru (unutar slike procesa).
15. ta karakterie rukovanje nitima van operativnog sistema?
Kada rukovanje nitima nije u nadlenosti operativnog sistema, brigu o nitima potpuno preuzima
konkurentna biblioteka. Rukovanje nitima se odvija u korisnikom prostoru, u kome se nalaze i
deskriptor niti, kao i stekovi niti. Osnovna prednost je efikasnost, jer su pozivi potprograma
konkurentne biblioteke bri od poziva sistemskih operacija. Mana je to poziv blokirajue sistemske
operacije iz jedne niti dovodi do zaustavljanja aktivnosti procesa kome ta nit pripada. Na taj nain se
spreava konkurentnost unutar procesa, jer zaustavljanje aktivnosti procesa spreava aktivnost
njegovih spremnih niti. Ovo znaajno umanjuje praktinu vrednost ovog pristupa.





23

Sistemski procesi
1. ta karakterie nulti proces?
Tipian primer sistemskog procesa je nulti proces ili beskonani proces, na koga se procesor
prekljuuje, kada ne postoji drugi spreman proces. U toku aktivnosti nultog procesa izvrava se
beskonana petlja, to znai da je beskonaan proces uvek aktivan ili spreman (ne prelazi u stanje
eka). Njegov prioritet je nii od prioriteta svih ostalih procesa, a on postoji za sve vreme aktivnosti
operativnog sistema.
2. ta je karakteristino za proces dugoroni rasporeiva?
Dugoroni rasporeiva je sistemski proces koji se brine o zameni slika procesa (kada za to ima
potrebe). On se periodino aktivira, radi pozivanja operacije za zamenu slika procesa. Nakon toga on
se uspava (pozivom odgovarajue sistemske operacije iz sloja za rukovanje kontrolerima), tj. njegova
aktivnost se zaustavlja, dok ne nastupi trenutak za njegovo ponovno aktiviranje. Dugoroni
rasporeiva postoji za sve vreme aktivnosti operativnog sistema.
3. ta radi proces indentifikator?
Proces identifikator je sistemski proces koji podrava predstavljanje korisnika. Proces indentifikator
opsluuje terminal, da bi posredstvom njega stupio u interakciju sa korisnikom u toku predstavljanja,
radi preuzimanja njegovog imena i lozinke. Po preuzimanju imena i lozinke, on proverava njihovu
ispravnost i, ako je prepoznao korisnika, tada stvara proces komunikator, koji nastavlja interakciju sa
korisnikom. Pri tome, proces identifikator svoj terminal preputa stvorenom procesu komunikatoru i
zaustavlja svoju aktivnost, koja se nastavlja tek nakon zavretka aktivnosti procesa komunikatora.
Proces identifikator postoji za sve vreme aktivnosti operativnog sistema.
4. Ko stvara proces komunikator?
Proces identifikator stvara proces komunikator, kome preputa svoj terminal i zaustavlja svoju
aktivnost.
5. ta sadri slog datoteke lozinki?
Svaki slog datoteke lozinki sadri:
- ime i lozinku korisnika,
- numeriku oznaku korisnika,
- putanju radnog imenika korisnika i
- putanju izvrne datoteke, sa inicijalnom slikom korisnikog procesa komunikatora.
6. ta oznaava SUID (switch user identification)?
Poto korisnici nemaju naina da pristupe datoteci lozinki, postavlja se pitanje kako omoguiti
korisniku da sam izmeni svoju lozinku. Ako je administrator vlasnik izvrne datoteke sa inicijalnom
slikom procesa za izmenu lozinki, dovoljno je naznaiti da on treba da bude i vlasnik procesa nastalog
na osnovu ove izvrne datoteke (SUID). Zahvaljujui tome, vlasnik ovakvog procesa je administrator
bez obzira koji je korisnik pokrenuo proces. U tom sluaju, nema smetnje da korisnik, koji izazove
stvaranje procesa za izmenu lozinke, pristupi datoteci lozinki. Pri tome, proces za izmenu lozinki
dozvoljava korisniku samo da izmeni sopstvenu lozinku, tako to od korisnika dobije ime, vaeu i
novu lozinku, pa ako su ime i vaea lozinka ispravni, on vaeu lozinku zameni novom.


24

7. ta je neophodno za podmetanje trojanskog konja?
Za podmetanje trojanskog konja (procesa koji opsluuje terminal, oponaajui proces indentifikator)
narednom korisniku neophodno je da se korisnik (koji ga podmee) ne odjavi sa sistema.
8. ta karakterie simetrinu kriptografiju?
Ako algoritam dekriptovanja direktno i jednoznano sledi iz algoritma kriptovanja, a klju
dekiptovanja iz kljua kriptovanja, re je o simetrinoj kriptografiji. Poznavanje kljua kriptovanja
omoguuje i dekriptovanje, tako da klju kriptovanja predstavlja tajnu kao i klju dekriptovanja.
Algoritmi kriptovanja i dekriptovanja ne predstavljaju tajnu, jer je praksa pokazala da se takva tajna ne
moe sauvati. Simetrina kriptografija nije podesna za kriptovanje poruka. U praksi, simetrina
kriptografija se zasniva na DES i IDEA pristupima.
9. ta karakterie asimetrinu kriptografiju?
U asimetrinoj kriptografiji, iz kljua kriptovanja ne moe se odrediti klju dekriptovanja, pa
poznavanje kljua kriptovanja ne omoguuje dekriptovanje. Klju kriptovanja se naziva javni klju, jer
je dostupan svima, a klju dekriptovanja privatni klju, jer je dostupan samo osobama ovlaenim za
dekriptovanje. Algoritmi kriptovanja su jednostavni, a njima odgovaraju komplikovani algoritmi
dekriptovanja, pa je asimetrina kriptografija mnogo sporija od simetrine. U praksi, asimetrina
kriptografija se zasniva na RSA algoritmu.
10. Na emu se temelji tajnost kriptovanja?
Tajnost kriptovanja se zasniva na injenici da (1) komplikovanost algoritma kriptovanja i
dekriptovanja, (2) velika duina kljueva kriptovanja i dekriptovanja, kao i (3) veliki broj ovih
kljueva ine praktino neizvodljivim pokuaj da se dekriptuje kriptovani tekst probanjem, jednog po
jednog, svih moguih kljueva dekriptovanja.














25

Sloj operativnog sistema za rukovanje datotekama
1. Kako se predstavlja sadraj datoteke?
Punu slobodu rukovanja podacima nudi predstava sadraja datoteke kao niz bajta, pod uslovom da se
ovaj niz moe, po potrebi, produivati ili skraivati, kao i da se bajtima iz niza moe pristupati u
proizvoljnom redosledu, korienjemn rednog broja bajta, za njegovu identifikaciju. Sadraji datoteka
nalaze se u blokovima masovne memorije.
2. Gde se javlja interna fragmentacija?
Pojava da poslednji blok datoteke nije popunjen do kraja naziva se interna fragmentacija. (znai, javlja
se unutar bloka) Ona je vana, jer nepopunjeni poslednji blok datoteke predstavlja neupotrebljen deo
masovne memorije.
3. ta karakterie kontinualne datoteke?
Kontinualne datoteke karakterie to da se njihov sadraj nalazi u susednim blokovima (iji redni
brojevi se uzastopni). Kod njih redni broj bloka sa traenim bajtom se odreuje kao kolinik rednog
broja bajta i veliine bloka, izraene brojem bajta koji sadri svaki blok. Ostatak deljenja ukazuje na
relativni poloaj bajta u bloku.
4. Koji oblik evidencije slobodnih blokova masovne memorije je podesan za kontinualne
datoteke?
Evidencija slobodnih blokova masovne memorije treba da olaka pronalaenje dovoljno dugakih
nizova susednih blokova. Zato je podesna evidencija u obliku niza bita, u kome svaki bit odgovara
jednom bloku i pokazuje da li je on zauzet (0) ili slobodan (1).
5. ta je eksterna fragmentacija?
Eksterna fragmentacija je pojava iscepkanosti slobodnih blokova masovne memorije u kratke nizove
susednih blokova. Ona oteava rukovanje kontinualnim datotekama. Nastaje kao rezultat viestrukog
stvaranja i unitenja datoteka u sluajnom redosledu. Eksterna fragmentacija izaziva neupotrebljivost
slobodnih blokova masovne memorije. Problem eksterne fragmentacije se moe reiti sabijanjem
datoteka, tako da svi slobodni blokovi budu potisnuti iza datoteka i da tako obrazuju niz susednih
blokova.
6. ta karakterie rasute datoteke?
Poto upotrebnu vrednost kontinualnih datoteka smanjuju problem eksterne fragmentacije, potreba da
se unapred zna veliina kontinualnih datoteka i tekoe sa njihovim produavanjem, umesto njih se
koriste rasute datoteke. Sadraj rasutih datoteka smeten (rasut) je u nesusednim blokovima masovne
memorije. Kod rasutih datoteka, redni brojevi bajta se preslikavaju u redne brojeve blokova pomou
posebne tabele pristupa.
7. ta karakterie tabelu pristupa?
Pomou tabele pristupa se kod rasutih datoteka redni brojevi bajta preslikavaju u redne brojeve
blokova. Veliina tabele pristupa ograniava duinu rasutih datoteka. Tabele pristupa se uvaju u
blokovima masovne memorije.
8. ta ulazi u sastav tabele pristupa?
Elementi tabele pristupa sadre redne brojeve blokova. Indekse ovih elemenata odreuje kolinik
rednog broja bajta i veliine bloka. Tabela pristupa se deli na odseke. Poetni odseak nije vei od
26

bloka masovne memorije, uvek je prisutan i ima p elemenata. Dodatni odseci jednaki su bloku
masovne memorije, prisutni su samo kad su neophodni. Svaki dodatni odseak moe da sadri b
elemenata tabele pristupa (b > p). Dodatnih odseaka ima ukupno 1 + b+ b
2
.
Tabela pristupa zauzima:
- jedan blok (ili njegov deo) sa poetnim odsekom
- jedan blok sa dodatnim odsekom
- blok prvog stepena indirekcije - poseban blok, zauzima se kada zatreba jo iseaka, sadri do b
rednih brojeva blokova sa dodatnim odsecima i u svakom od njih se nalazi b novih elementa.
- blok drugog stepena indirekcije - zazima se po potrebi, sadri do b rednih brojeva blokova
prvog stepena indirekcije, sa do b blokova sa dodatnim odsecima, a u svakom od njih se
nalazi b novih elemenata tabele pristupa
9. Kada rasuta datoteka ne zauzima vie prostora na disku od kontinualne datoteke?
Rasuta datoteka ne zazima vie prostora od kontinualne kada sadri samo poetni odseak.
(kontinualna datoteka zauzima minimalno jedan blok, a poetni odseak rasute nije vei od jednog
bloka)
10. Koji oblik evidencije slobodnih blokova masovne memorije je podesan za rasute datoteke?
Za evidenciju slobodnih blokova masovne memorije kod rasute datoteke podesan je oblik liste
slobodnih blokova. Slobodni blokovi, uvezani u ovu listu, sade redne brojeve ostalih slobodnih
blokova.
11. Kada dolazi do gubitka blokova prilikom produenja rasute datoteke?
Kada samo promenjena kopija bloka evidencije slobodnih blokova dospe u masovnu memoriju, blok
iskljuen iz ove evidencije postaje izgubljen, jer njegov redni broj nije prisutan niti u ovoj evidenciji, a
niti u tabeli pristupa neke od rasutih datoteka.
12. Kada dolazi do mogunosti viestrukog nezavisnog korienja istog bloka prilikom
produenja rasute datoteke?
Ako samo promenjena kopija bloka tabele pristupa dospe u masovnu memoriju, blok pridruen ovoj
tabeli ostaje i dalje ukljuen u evidenciji slobodnih blokova, pa je mogue istovremeno ukljuivanje
istog bloka u vie razliitih datoteka, ime se naruava njihova konzistentnost. Zato je potrebno uvek
prebaciti u masovnu memoriju prvo promenjenu kopiju bloka evidencije slobodnih blokova, pa tek iza
toga i promenjenu kopiju bloka tabele pristupa.
13. Kada pregled izmena ukazuje da je sistem datoteka u konzistentnom stanju?
Ako u pregledu izmena nije registrovan potpun opis nameravane izmene, tada izmena nije ni zapoeta,
pa je sistem datoteka u konzistentnom stanju. Ako su u pregledu izmena registrovani potpuni opis
nameravane izmene i njeno uspeno obavljanje, tada je sistem datoteka u konzistentnom stanju.
Kada je u pregledu izmena registrovan potpun opis nameravane izmene, ali nije registrovano njeno
uspeno obavljanje, tada je sistem datoteka mogue vratiti u konzistentno stanje.
14. Kako se ubrzava pristup datoteci?
Pristup datoteci se ubrzava tako to se u radnoj memoriji zauzme prostor za vie bafera, namenjenih za
uvanje kopija korienih blokova (koji e se koristiti u skorijoj budunosti).


27

15. Od ega zavisi veliina bloka?
Na brzinu prebacivanja podataka izmeu radne i masovne memorije vaan uticaj ima i veliina bloka,
jer to je blok vei , u proseku se potroi manje vremena na prebacivanje jednog bajta izmeu radne i
masovne memorije. Meutim to je blok vei, vea je i interna fragmentacija. Ta dva oprena zahteva
utiu na izbor veliine bloka, koja se kree od 512 bajta do 8192 bajta.
16. ta sadri deskriptor kontinualne datoteke?
Kontinualne datoteke zahtevaju od sloja za rukovanje datotekama da za svaku datoteku vodi
evidenciju ne samo o njenom imenu, nego i o rednom broju poetnog bloka datoteke, kao i o duini
datoteke. Podatke o poetnom bloku i duini datoteke (izraena brojem bajta ili brojem blokova) uva
njen descriptor. Deskriptor kontinualne datoteke sadri, pored atributa koji omoguuju preslikavanje
rednih brojeva bajta u redne brojeve blokova, sadri i:
- numeriku oznaku vlasnika datoteke,
- prava pristupa datoteci za njenog vlasnika,
- njegove saradnike i za ostale korisnike,
- podatak da li je datoteka zakljuana ili ne,
- SUID podatak da li numerika oznaka vlasnika datoteke postaje numerika oznaka vlasnika
procesa stvorenog na osnovu sadraja datoteke (vai samo za izvrne datoteke),
- datum poslednje izmene datoteke.
17. Kako se reava problem eksterne fragmentacije?
Problem eksterne fragmentacije se moe reiti sabijanjem datoteka, tako da svi slobodni blokovi budu
potisnuti iza datoteka i da tako obrazuju niz susednih blokova. Mana ovog postupka je dugotrajnost.
18. Kako se ublaava problem produenja kontinualne datoteke?
Problem produenja kontinualne datoteke se ublaava ako se dozvoli da se kontinualna datoteka
sastoji od vie kontinualnih delova. Pri tome se za svaki od ovih delova u deskriptoru datoteke uvaju
podaci o rednom broju poetnog bloka dotinog dela i o njegovoj duini. Ovakav pristup je pogodan
za veoma dugake datoteke (uvanje zvunog ili video zapisa).
19. ta sadri deskriptor rasute datoteke?
Deskriptor rasute datoteke sadri poetni odseak tabele pristupa, redni broj njenog prvog dodatnog
odseka, redni broj bloka prvog stepena indirekcije i redni broj bloka drugog stepena indirekcije. On
takoe sadri i duinu rasute datoteke. Deskriptor rasute datoteke sadri i sve nabrojano kod
deskriptora kontinualne datoteke.
20. ta je imenik?
Datoteke se grupiu u skupove datoteka. Oni se nazivaju imenici. Za imenike su dovoljna jednodelna
imena, jer nema potrebe za njihovom klasifikacijom.
21. ta sadre elementi tabela otvorenih datoteka?
Svaki element tabele otvorenih datoteka sadri adresu kopije deskriptora odgovarajue datoteke iz
tabele deskriptora datoteka. Indeks elementa tabele otvorenih datoteka (u kome je adresa kopije
deskriptora otvorene datoteke) predstavlja povratnu vrednost poziva sistemske operacije otvaranja
datoteke. On se koristi kao argument u pozivima drugih sistemskih operacija sloja za rukovanje
datotekama.


28

22. Koje sistemske operacije za rukovanje datotekama postoje?
Sistemske operacije za rukovanje datotekama su:
- operacije otvaranja datoteke (open()),
- operacije stvaranja datoteke (create()),
- operacija zatvaranja datoteke (close()),
- operacije zakljuavanja/otkljuavanja datoteke (flock()),
- operacije itanja datoteke (read()),
- operacije pisanja datoteke (write()),
- operacija izmene pozicije datoteke (seek()),
- operacije za izmenu atributa datoteke (u nju spada operacija za izmenu imena datoteke),
- operacija za stvaranje linka (dodatnog imena) datoteke (link()),
- operacija unitenja datoteka (unlink())
Postoje i sistemske operacije za rukovanje imenicama, to su mount() koja omoguuje spajanje dva
sistema datoteka, i unmount(), koja razdvaja dva prethodno spojena sistema datoteka.
23. Koji su argumenti sistemskih operacija za rukovanje datotekama?
- open() - argument je putanja datoteke (kao dodatni argument moe se javiti oznaka koja govori
da li se otvara samo za itanje ili pisanje/itanje),
- create() - argument je putanja stvarane datoteke,
- close() - argument je indeks otvorene datoteke,
- flock() - argument je indeks otvorene datoteke,
- read() i write() - argument je indeks otvorene datoteke i broj bajta koji se itaju ili piu (pored
toga, write() jo sadri adresu zone u koju se smetaju proitani bajti, a read() adresu zone u
koju se smetaju bajti za pisanje),
- seek() - argument je indeks otvorene datoteke i podatak o novoj poziciji,
- operacije za izmenu atributa imaju obavezne argumente putanju datoteke i novu vrednost
menjanog atributa datoteke,
- link() - argument je putanja sa imenom datoteke i putanja sa linkom,
- unlink() - argument je putanja unitavane datoteke.
24. ta karakterie specijalne datoteke?
Specijalne datoteke predstavljaju pojedine ulazne ili izlazne ureaje. Slue za opisivanje tih ulaznih ili
izlaznih ureaja. Dele se na znakovne (podravaju sekvencijalno itanje ili pisanje znakova) i
blokovske (podravaju itanje ili pisanje blokova) specijalne datoteke.
25. ta sadri deskriptor specijalne datoteke?
Deskriptor specijalne datoteke obuhvata atribute, kao numerika oznaka vlasnika datoteke, prava
pristupa datoteci za njenog vlasnika, za njegove saradnike i ostale korisnike ili podatak da li je
datoteka zakljuana ili nije. U deskriptorima se nalaze podaci o odgovarajuem drajveru i primerku
ureaja, koga on opsluuje. Deskriptor sadri i redni broj drajvera i redni broj ureaja.
26. ta omoguuju blokovske specijalne datoteke?
Blokovske specijalne datoteke omoguuju direktne pristupe blokovima diska, to je vano, na primer,
kod pronalaenja izgubljenih blokova, kod sabijanja datoteka, ili kod pripremanja disk jedinica za
korienje.

29

27. ta omoguuje rukovanje particijama?
Blokovska specijalna datoteka ne mora bude vezana za jedan celi disk, ve se moe odnositi na deo
diska, koji se naziva prticija. Rukovanje particijama omoguava i formiranje logikih disk jedinica,
koje obuhvataju vie particija na raznim fizikim diskovima. To omoguava: (1) bri pristup
blokovima logike disk jedinice, (2) veu pouzdanost logike disk jedinice ili (3) oboje.




























30

Sloj operativnog sistema za rukovanje radnom memorijom
1. Kakav moe biti logiki adresni prostor?
Logiki adresni prostor moe biti:
- kontinualan,
- sastavljen od segmenata raznih veliina,
- sastavljen od stranica iste veliine i
- sastavljen od segmenata raznih veliina, koji se sastoje od stranica razne veliine.
2. ta karakterie kontinualni logiki adresni prostor?
Kontinualni logiki adresni prostor se sastoji od jednog niza uzastopnih logikih adresa, koji poinje
od logike adrese 0. Veliina kontinualog adresnog prostora nadmauje potrebe prosenog procesa.
Neophodno je poznavati najviu ispravnu logiku adresu, koja se zova granina adresa. Logike
adrese procesa ne smeju biti vee od njegove granine adrese. Za kontinualni logiki prostor se
podrazumeva da se niz uzastopnih logikih adresa preslikava u niz uzastopnih fizikih adresa. Ova dva
niza se razlikuju po tome to niz uzastopnih fizikih adresa ne poinje od 0 nego od neke adrese koja
se zove bazna adresa. Dodavanjem bazne adrese logikoj adresi nastaje fizika adresa.
3. ta karakterie segmentirani logiki adresni prostor?
Segmentirani logiki adresni prostor se sastoji od vie nizova uzastopnih logickih adresa (za svaki
segment po jedan niz). Da bi se znalo kom segmentu pripada logika adresa, njeni znaajniji biti
sadre adresu njenog segmenta, a manje znaajni biti unutranju adresu u njenom segmentu. Svaki
segment je kontinualan, pa ga karakteriu njegova granina i bazna adresa. Za translaciju logike
adrese u fiziku potrebna je tabela segmenata. Broj njenih elemenata odreuje najvei broj segmenata,
a svaki element sadri graninu i baznu adresu odgovarajueg segmenta. Adresa segmenta indeksira
element tabele segmenata.
4. ta karakterie stranini logiki adresni prostor?
Stranini logiki adresni prostor sastoji se od jednog niza uzastopnih logikih adresa (podeljenog u
stranice iste veliine). Da bi se znalo kojoj stranici pripada logika adresa, njeni znaajniji biti sadre
adresu njene stranice, a manje znaajni biti unutranju adresu u njenoj stranici. Svaka stranica je
kontinualna, pa ima svojstva kontinualnog logikog adresnog prostora. Veliina stranice je unapred
poznata i jednaka stepenu broja dva. Svaku stranicu karakterie samo njena bazna adresa. Za
translaciju je potrebna tabela stranica. Broj njenih elemenata odreuje najvei broj stranica, a svaki
element sadri baznu adresu odgovarajue stranice. Adresa stranice indeksira element tabele stranica.
5. ta karakterie stranino segmentirani logiki prostor adresni prostor?
Stranino segmentirani logiki prostor adresni prostor se sastoji od vie nizova uzastopnih logikih
adresa (za svaki segment po jedan niz podeljen u stranice iste veliine). Da bi se znalo kom segmentu
pripada logika adresa, njeni najznaajniji biti sadre adresu njenog segmenta, njeni srednji biti adresu
njene stranice, a najmanje znaajni biti unutranju adresu u njenoj stranici. Svaki segment je
kontinualan, kao i stranica, s tim da je njena veliina unapred poznata i jednaka stepenu broja dva. Za
translaciju je potrebna jedna tabela segmenata i vie tabela stranica (za svaki segment po jedna).
Elementi tabele segmenta sadre graninu adresu stranice u segmentu i baznu adresu tabele stranica
segmenata. Adresa segmenata indeksira element tabele segmenata.

31

6. ta karakterie translacione podatke?
Svaki proces mora da ima neophodne translacione podatke koji obuhvataju ili graninu i baznu adresu,
ili tabelu segmenata, ili tabelu stranica, ili tabelu segmenata sa pripadnim tabelama stranica.
Translacione podatke pripremi operativni sistem, prilikom stvaranja procesa. Oni se menjaju prilikom
prekljuivanja, pa utiu na trajanje prekljuivanja.
7. ta karakterie translaciju logikih adresa kontinualnog logikog adresnog prostora u fizike
adrese?
Da bi translacija bila mogua, neophodno je da se u lokacije fizike radne memorije smesti slika
procesa. U ovom sluaju, translacija logikih adresa u fizike adrese odgovara dinamikoj relokaciji i
olakava zamenu slika procesa.
8. Koji logiki adresni prostor se koristi kada veliina fizike radne memorije prevazilazi
potrebe svakog procesa?
Kada veliina fizike radne memorije prevazilazi potrebe svakog procesa koriste se kontinualni i
segmentirani logiki adresni prostor.
9. ta karakterie segmentaciju?
Translaciji prethodi smetanje slike procesa u lokacije fizike radne memorije. Segmenti logikog
adresnog prostora procesa sadre delove njegove slike. Prednost segmentacije je to ubrzava zamenu
slika procesa, jer se segment naredbi ne mora izbacivati, ako je ranije ve izbaen u masovnu
memoriju, niti ubacivati, ako ve postoji u fizikoj radnoj memoriji.
Ako se dozvoli da svakom potprogramu ili promenljivoj odgovara poseban segment, radi se o punoj
segmentaciji. U tom sluaju, stvaraju se uslovi za dinamiko linkovanje potprograma za program, to
doprinosi racionalnom korienju masovne memorije. Puna segmentacija dozvoljava i deljenje
promenljivih izmeu raznih procesa, ako se segment iste promenljive ukljui u slike vie procesa.
Elementi tabele segmenata se proiruju oznakom prava pristupa segmentu.
Rukovanje segmentima se obavlja posredstvom sistemskih programa, kao to su kompajler i linker.
10. Koji logiki adresni prostor se koristi kada je vano racionalno korienje fizike radne
memorije?
Kada je vano racionalno korienje fizike radne memorije koriste se segmentirani i stranino
segmentiran logiki adresni prostor.
11. Koji logiki adresni prostor se koristi kada je veliina fizike radne memorije nedovoljna za
pokrivanje potreba tipinog procesa?
Kada je veliina fizike radne memorije nedovoljna za pokrivanje potreba tipinog procesa, koriste se
stranini (zove se i virtuelni adresni prostor) i stranino segmentiran logiki adresni prostor.
12. ta sadre elementi tabele stranica?
Elementi tabele stranica sadre baznu adresu odgovarajue stranice.
13. ta karakterie virtuelni adresni prostor?
Virtuelni adresni pripada virtuelnoj memoriji i sadri virtuelne adrese. Stranice virtuelnog adresnog
prostora sa slikom procesa se nalaze na masovnoj memoriji. Kada zatreba, kopije neophodnih
virtuelnih stranica se automatski prebacuju iz masovne u fiziku radnu memoriju i obrnuto. Praktina
upotrebljivost virtuelne memorije se temelji na svojstvu lokalnosti izvravanja programa (za
izvravanje programa je dovoljno da u fizikoj radnoj memoriji uvek bude samo deo programa).
32

14. Po kom principu se prebacuju kopije virtuelnih stranica?
Kopije neophodnih virtuelnih stranica, kada zatreba, automatski se prebacuju iz masovne memorije u
fiziku radnu memoriju i obrnuto. Do prebacivanja u obrnutom smeru dolazi, kada je potrebno
osloboditi lokacije fizike radne memorije sa kopijama, u meuvremenu izmenjenih virtuelnih
stranica. Da bi se znalo koja kopija virtuelne stranice je izmenjena, neophodno je automatski
registrovati svaku izmenu svake od kopija virtuelnih stranica.
15. ta karakterie straninu segmentaciju?
Svaki segment uvodi sopstveni virtuelni adresni prostor. Stranice virtuelnog adresnog prostora
segmenata se nalaze u masovnoj memoriji, a u fizikim stranicama se nalaze samo kopije neophodnih
virtuelnih stranica segmenata. Prednost stranine segmentacije je da ona omoguava dinamiko
proirenje segmenata. Stanina segmentacija moe otvorenim datotekama dodeljivati posebne
segmente i na taj nain ponuditi koncept memorijski preslikane datoteke. Pristup ovakvoj datoteci ne
zahteva sistemske operacije za itanje, pisanje ili pozicioniranje. Mana ovog koncepta je da se veliina
datoteke izraava celim brojem stranica i to virtuelni adresni prostor segmenata moe biti suvie mali
za pojedine datoteke.
16. Koji logiki adresni prostor se koristi kada je vano racionalno korienje fizike radne
memorije, a ona ima nedovoljnu veliinu?
Kada je vano racionalno korienje fizike radne memorije, a ona ima nedovoljnu veliinu, koristi se
stranino segmentiran logiki adresni prostor
17. Kako se deli fizika radna memorija?
Fizika radna memorija se deli na lokacije koje stalno zauzima operativni sistem i na ostale slobodne
lokacije koje su na raspolaganju za stvaranje procesa i druge potrebe.
18. Kako se deli virtuelni adresni prostor?
Viruelni adresni prostor se deli tako to mu je gornja polovina rezervisana za operativni sistem, a
donja polovina je na raspolaganju svakom procesu. Gornja polovina se zato naziva sistemski virtuelni
adresni prostor, a donja korisniki virtuelni adresni prostor.
19. U kom obliku moe biti evidencija slobodne fizike memorije?
Za potrebe kontinualnog ili segmentiranog logikog adresnog prostora, evidencija slobodne fizike
memorije moe da bude u obliku niza bita u kome svaki bit odgovara grupi susednih lokacija. ee se
pravi u obliku liste slobodnih odseaka fizike radne memorije. Na poetku rada operativnog sistema,
ovakva lista sadri jedan odseak, koji obuhvata celu fiziku slobodnu radnu memoriju. Ovakav
odseak se drobi u vie kraih odseaka, kao rezultat viestrukog stvaranja i unitavanja procesa u
sluajnom redosledu. Za potrebe virtuelnog adresnog procesa evidencija moe biti u obliku niza bita, u
kome svaki bit odgovara slobodnoj fizikoj stranici. Alternativa je da se slobodne fizike stranice veu
u listu. Atraktivna je i evidencija o slobodnim odsecima veliine jednake multiplu fizike stranice, jer
se u virtuelnom adresnom prostoru uvek zauzima celi broj stranica.
20. Kod kog adresnog prostora se javlja eksterna fragmentacija?
Eksterna fragmentacija se javlja kod kontinualnog i segmentiranog adresnog prostora.
21. Kako se nazivaju skupovi fizikih stranica, koji se dodeljuju procesima?
Skupovi fizikih stranica, koji se dodeljuju procesima (za uvanje kopija svih virtuelnih stranica koje
su neophodne procesoru za izvravanje pojedinih mainskih naredbi), nazivaju se minimalni skupovi.
33

22. Kada treba proiriti skup fizikih stranica procesa?
Uveanje skupa fizikih stranica ima smisla samo ako to dovodi do smanjivanja uestanosti straninih
prekida. Skup fizikih stranica procesa treba proiriti kada je, u toku aktivnosti, uestanost straninih
prekida iznad neke (iskustveno odreene) gornje granice.
23. Kada treba smanjiti skup fizikih stranica procesa?
Ako je uestanost straninih prekida ispod neke (iskustveno odreene) donje granice, tada treba
smanjiti skup fizikih stranica.
24. Kada ne treba menjati veliinu skupa fizikih stranica procesa?
U sluaju da je uestanost straninih prekida izmeu donje i gornje granice, tada nema potrebe menjati
veliinu skupa fizikih stranica procesa. U tom sluaju, skup fizikih stranica (odnosno, njima
odgovarajui skup virtuelnih stranica) obrazuje radni skup.
25. Koji pristupi oslobaanja fizikih stranica obezbeuju smanjenje uestalnosti straninih
prekida nakon poveavanja broja fizikih stranica procesa? ???
Sledei pristupi oslobaanja fizikih stranica obezbeuju smanjenje uestanosti straninih prekida
nakon poveavanja broja fizikih stranica:
- pronalaenje fizike stranice koja nije koriena u nekom prethodnom periodu (Not Recently
Used - NRU),
- pronalaenja najmanje koriene fizike stranice (Least Recently Used-LRU),
- softverska simulacija pronalaenja najmanje koriene fizike stranice (Not Frequently Used -
NFU/aging)
26. Koji pristupi oslobaanja fizikih stranica koriste bit referenciranja? ???
Sledei pristupi oslobaanja fizikih stranica koriste bit referenciranja:
- pronalaenje fizike stranice koja nije koriena u nekom prethodnom periodu (Not Recently
Used - NRU),
- pronalaenja najmanje koriene fizike stranice (Least Recently Used-LRU),
- softverska simulacija pronalaenja najmanje koriene fizike stranice (Not Frequently Used -
NFU/aging),
- second chance,
- clock,
- wclock
27. Koji pristupi oslobaanja fizikih stranica koriste bit izmene? ???
Sledei pristupi oslobaanja fizikih stranica koriste bit izmene:
- Not Recently Used - NRU
- oslobaanje fizike stranice sa najstarijim sadrajem (First In First Out - FIFO) (koristi i bit
izmene),
- second chance,
- clock,
- wclock
28. Na ta se oslanja rukovanje virtuelnom memorijom?
Rukovanje virtuelnom memorijom oslanja se na operacije sloja za rukovanje kontrolerima.

34

Sloj operativnog sistema za rukovanje kontrolerima
1. ta karakterie ulazno-izlazne ureaje?
Ulazni i izlazni ureaji se dele na blokovske i znakovne ureaje. Razlikuju se u pogledu jedinice
pristupa (za blokovske ureaje jedinica pristupa je blok, za znakovne ureaje jedinica pristupa je
znak), u pogledu naina pristupa (dok mnogi blokovski ureaji dozvoljavaju direktan pristup,
znakovni ureaji podravaju samo sekvencijalni pristup), i u pogledu upravljanja (za razliku od
blokovskih, znakovni ureaji dozvoljavaju dinamiko podeavanje njihovih pojedinih funkcionalnih
karakteristika). Svaki ulazno-izlazni uredjaj ima svoj drajver.
2. Koja svojstva imaju drajveri?
Svaki od drajvera namenjen je za rukovanje odreenom klasom ureaja. Obino, jedan drajver moe
da opslui vie primeraka ureaja iste klase. Driveri su u tesnoj saradnji sa kontrolerima ulaznih i
izlaznih ureaja i kriju sve posebnosti funkcionisanja ovih kontrolera.
3. ta karakterie tabela drajvera?
Tabela drajvera sadri:
- adrese operacija inicijalizacije
- adrese operacija ulaza i izlaza
- adrese upravljakih operacija
Redni broj drajvera indeksira element ove tabele, koji sadri polja sa adresama pojedinih operacija
datog drajvera. Polja, namenjena za adrese operacija, koje dotini drajver ne podrava, sadre adresu
posebne lane operacije, ije obavljanje nema efekta.
4. ta podrazumeva podela drajvera na gornji i donji deo?
Gornji deo drajvera obrazuju operacije drajvera, a obraivai prekida obrazuju donji deo drajvera.
Opearcije drajvera se pozivaju iz slojeva iznad sloja za rukovanje kontrolerima, a obraivae prekida
poziva mehanizam prekida, znai hardver ispod operativnog sistema.
5. Kada se pozivaju operacije drajvera blokovskih ureaja?
Aktivnost drajvera blokovskih ureaja zapoinje nakon inicijalizacije njihovih kontrolera (pozivanjem
drajverske operacije inicijalizacije). Za prenos blokova ka kontrolerima i od njih se pozivaju
drajverske operacije ulaza i izlaza blokova. Drajverska operacija izlaza bloka se poziva kada se
zahteva da izmenjeni sadrzaj bafera sloja za rukovanje datotekama bude sauvan na disku.
6. ta sadri lista zahteva?
U listi zahteva se nalaze zahtevi za prenos blokova. Svaki zahtev u ovakvoj listi zahteva mora da
sadri:
- smer zahtevanog prenosa bloka
- redni broj ovog bloka
- adresu bafera koji uestvuje u prenosu, kao i
- adresu deskriptora procesa, ija aktivnost se zaustavlja do obavljanja zahtevanog prenosa
bloka.
7. ta spada u nadlenosti drajvera blokovskih ureaja ali i kontrolera?
U nadlenosti drajvera blokovskih ureaja, ali i kontrolera spada odreivanje naina preslikavanja
blokova u sektore. Takoe, u iste nadlenosti spada i optimizacija kretanja glave diska.
35

8. Kada se uzastopni blokovi preslikavaju u prostorno uzastopne sektore?
Ako kontroler automatski prebacuje sve sektore staze, iznad koje se kree glava diska, u svoju lokalnu
radnu memoriju, tada nema smetnje da se uzastopni blokovi preslikaju u prostorno uzastopne sektore.
9. Na koji drajver se odnosi elevator algoritam?
Elevator algoritam se odnosi na drajver blokovskih ureaja. Elevator algoritmom se optimizuje
kretanje glave diska i obezbeuje pravedno usluivanje svih zahteva.
10. Koju ulogu imaju sistemski procesi posrednici?
U sluaju znakovnih ureaja, kao to su tampai ili mreni kontroleri, uvode se posebni sistemski
procesi posrednici koji posreduju u korienju pomenutih ureaja. Svaki od ovih procesa pristupa
svom znakovnom ureaju kao specijalnoj datoteci, koju zakljuava, da bi obezbedio meusobnu
iskljuivost u toku njenog korienja.
11. Kada se specijalna datoteka tipino zakljuava?
Kada procesi pristupaju znakovnim ureajima, pristupaju im kao specijalnim datotekama, i tada ih
zakljuavaju, da bi obezbedili meusobnu iskljuivost u toku njenog korienja.
12. ta sadri drajver terminal?
Drajver terminal sadri ulazni bafer (slui za smetanje znakova, prispelih sa tastature) i eho bafer
(slui za smetanje znakova, upuenih ka ekranu).
13. U kom sluaju nisu potrebni eho bafer i obraiva prekida ekrana?
Za grafike (memorijski preslikane) terminale nije potreban eho bafer, niti obraiva prekida ekrana,
jer ovakvi terminali poseduju video memoriju iji sadraj se periodino prikazuje prilikom
osveavanja ekrana.
14. ta omoguuje upravljaka operacija drajvera terminala?
Argumenti njenog poziva utiu ne samo na funkcionisanje, npr. teminala, nego i na funkcionisanje
drajvera terminala. Upravljaka operacija omoguuje da se drajveru terminala saopti da interpretira
znakove koji dolaze sa tastature, ili da ih ne interpretira. U prvom sluaju, u nadlenosti drajvera
terminala se nalazi editiranje znakova prispelih sa tastature. U sklopu toga drajver terminal mora, npr.
da omogui brisanje poslednje prispelog znaka. Takoe drajver terminala se brine o interpretaciji
upravljakih znakova "prelazak na novu liniju", "prelazak na poetak linije", kao i drugih upravljakih
znakova.
15. Koje operacije sadri gornji deo drajvera sata?
Gornji deo ovog drajvera ine sistemske operacije za preuzimanje ili izmenu sistemskog vremena i za
uspavljivanje procesa, odnosno za odlaganje njegove aktivnosti, dok ne istekne zadati vremenski
interval.
16. ta ne moe da meri drajver sata?
Drajver sata ne moe da meri duine vremenskih intervala, koji su krai od perioda prekida sata, a
kojih ima u toku aktivnosti procesa. To izaziva da merenje trajanja aktivnosti procesa ne mora biti
precizno.



36

17. ta omoguuje obraiva prekida iz donjeg dela drajvera sata?
U nadlenosti obraivaa prekida sata nalazi se vie poslova, kao to su :
- odravanje sistemskog vremena,
- praenje isticanja kvantuma aktivnog procesa,
- praenje ukupnog korienja procesorskog vremena aktivnog procesa,
- provera da li je nastupilo vreme buenja uspavanog procesa
- skupljanje statistika o aktivnosti procesa.
Obraiva prekida sata broji prekide sata, a njihov zbir predstavlja sistemsko vreme (lokalno vreme u
raunaru).










































37

Sloj operativnog sistema za rukovanje procesorom
1. ta karakterie tipine ciljeve rasporeivanja?
Rasporeivanje brine o izboru spremnog procesa na koga e se prekljuiti procesor sa aktivnog.
Tipini ciljevi su, na primer, poboljanje iskorienja procesorskog vremena, ravnomerna raspodela
procesorskog vremena, sto krai odziv na korisniku akciju ili neki drugi oblik postizanja potrebnog
kvaliteta usluge. Ovi ciljevi nisu uvek saglasni, pa se ne mogu istovremeno ostvariti.
2. ta je cilj rasporeivanja za neinteraktivno korienje raunara?
Za neinteraktivno korienje raunara, cilj rasporeivanja je poboljanje iskorienja procesorskog
vremena. Ovakav cilj se ostvaruje minimiziranjem prekljuivanja na neophodan broj (samo nakon
pozivanja blokirajuih sistemskih operacija ili nakon kraja aktivnosti procesa)
3. ta je cilj rasporeivanja za interaktivno korienje raunara?
Za interaktivno korienje raunara ciljevi rasporeivanja su ravnomerna raspodela procesorskog
vremena izmeu istovremeno postojeih procesa, odnosno izmeu njihovih vlasnika (korisnika, koji
istovremeno koriste raunar) i to krai odziv na korisniku akciju.
4. Zato je uvedeno kruno rasporeivanje?
Kruno rasporeivanje je uvedeno radi ravnomernog rasporeivanja procesorskog vremena izmeu
istovremeno postojeih procesa i to kraeg odziva na korisniku akciju. Tada ono svakom od
istovremeno postojeih procesa dodeljuje isti vremenski interval, nazvan kvantum. Kruno
rasporeivanje se uspeno primenjuje i u situaciji kada hitnost svih procesa nije ista, pa se zbog toga
procesima dodeljuju razni prioriteti.
5. ta doprinosi ravnomernoj raspodeli procesorskog vremena?
Ravnomernoj raspodeli procesorskog vremena doprinosi uvoenje kvantuma. Po isticanju kvantuma,
aktivni proces preputa procesor spremnom procesu, koji najdue eka na svoj kvantum.
Dinamika izmena prioriteta procesa doprinosi ravnomernosti raspodele procesorskog vremena:
- izmeu procesa, ako se uspostavi obrnuta proporcionalnost izmeu prioriteta procesa i obima u
kome je on iskoristio poslednji kvantum.
- izmeu korisnika, ako se uspostavi obrnuta proporcionalnost izmeu prioriteta procesa, koji
pripadaju nekom korisniku, i ukupnog dela u procesorskom vremenu tog korisnika u toku
njegove interakcije sa raunarom.
Ravnomerna raspodela procesorskog vremena moe se postii i bez izmena prioriteta, lutrijskim
rasporeivanjem.
6. ta je cilj rasporeivanja za multimedijalne aplikacije?
Za multimedijalne aplikacije, koje zahtevaju visoku propusnost podataka i njihovu isporuku sa
pravilnim periodom, cilj rasporeivanja je garantovanje procesima potrebnog broja kvantuma u
pravilnim vremenskim razmacima.
7. Do ega dovodi skraenje kvantuma?
Skraenje kvantuma dovodi do breg odziva, ali i do smanjenja iskorienja procesora zbog troenja
vremena na prekljuivanje.
8. ta se postie uticanjem na nivo prioriteta i na duinu kvantuma?
Uticanjem na nivo prioriteta i na duinu kvantuma obezbeujemo dobar odziv procesora na korisnike
procese, kao i kvalitetno iskorienje procesorskog vremena za pozadinkse procese. to je proces due
aktivan dui mu je kvantum i nii prioritet.
38

Mrtva petlja
1. ta je mrtva petlja?
Mrtva petlja je problematina pojava trajnog zaustavljanja aktivnosti meusobno zavisnih procesa.
2. Po emu se iva petlja razlikuje od mrtve petlje?
Za mrtvu petlju je karakteristina blokirajua sistemska operacija zakljuavanja, dok je za ivu petlju
karakteristina neblokirajua sistemska operacija zakljuavanja. U sluaju neblokirajue sistemske
operacije zakljuavanja, procesi upadaju u beskonanu petlju, pokuavajui da zakljuaju datoteku,
koju je zakljuao drugi proces. iva petlja se po svom ishodu, sutinski, ne razlikuje od mrtve petlje.
3. Koji uslovi su potrebni za pojavu mrtve petlje?
Pojava mrtve petlje je vezana za zauzimanje resursa. Za pojavu mrtve petlje potrebno je da budu
ispunjena etiri uslova:
- zauzimani resursi se koriste u reimu meusobne iskljuivosti
- resursi se zauzimaju jedan za drugim, tako da proces, nakon zauzimanja izvesnog broja
resursa, mora da eka da zauzme preostale resurse,
- resurse oslobaaju samo procesi koji su ih zauzeli,
- postoji cirkularna meuzavisnost procesa
4. Kako se u praksi tretira problem mrtve petlje?
Postoje etiri pristupa tretiranja problema mrtve petlje:
- spreavanje pojave mrtve petlje (onemoguavanjem vaenja nekog od etiri neophodna uslova
za njenu pojavu)
- izbegavanje pojave mrtve petlje
- otkrivanje pojave mrtve petlje i oporavak od nje
- ignorisanje pojave mrtve petlje
5. Na emu se temelji spreavanje mrtve petlje?
Kod spreavanja pojave mrtve petlje, vaenje prvog uslova obino nije mogue spreiti, jer se resursi
najee koriste u reimu meusobne iskljuivosti. Vaenje drugog uslova se moe spreiti, ako se
unapred zna koliko je potrebno resursa i ako se oni svi zauzmu pre korienja. Vaenje treeg uslova
se obino ne moe spreiti, jer najee ne postoji nain da se zauzeti resurs privremeno oduzme
procesu. Vaenje etvrtog uslova se moe spreiti, ako se resursi uvek zauzimaju u unapred
odreenom redosledu, koji iskljuuje mogunost cirkularne meuzavisnosti procesa.
6. ta karakterie izbegavanje mrtve petlje?
Izbegavanje pojave mrtve petlje zahteva poznavanje podataka (1) o maksimalno moguim zahtevima
za resursima, (2) o ukupno postavljenim zahtevima za resursima i (3) o stanju resursa. Udovoljava se
samo onim zahtevima za koje se proverom ustanovi da, nakon njihovog ispunjavanja, postoji redosled
zauzimanja i oslobaanja resursa u kome se mogu zadovoljiti maksimalno mogui zahtevi svih
procesa. Ovakva provera je komplikovana, a samim tim i neefikasna.
7. ta karakterie otkrivanje i oporavak od mrtve petlje?
Otkrivanje mrtve petlje se zasniva na slinom pristupu kao i izbegavanje pojave mrtve petlje.
Proverava se da li postoji proces, ijim zahtevima se ne moe udovoljiti ni za jedan redosled
zauzimanja i oslobaanja resursa. Pored komplikovanosti ovakve provere, problem je i ta uiniti kada
se i otkrije pojava mrtve petlje. Ako se resursi ne mogu privremeno oduzeti od procesa, preostaje
39

jedino unitavanje procesa, radi oslobaanja resursa koje oni dre. To nije uvek prihvatljiv zahtev.
Zbog toga ovaj pristup nema veliki praktini znaaj.
8. ta karakterie ignorisanje mrtve petlje?
Ignorisanje mrtve petlje je pristup koji je najee primenjen u praksi, jer se ovaj problem ne javlja
tako esto da bi se isplatilo da ga reava operativni sistem. Prema tome, kada se mrtva petlja javi, na
korisniku je da se suoi sa ovim problemom, i da ga rei na nain, koji je primeren datim okolnostima.






































40

Komunikacija sa operativnim sistemom
1. Od ega se sastoje komande znakovnog komandnog jezika?
Komanda znakovnog jezika zapoinje operatorom (npr. u obliku putanje izvrne datoteke, koja opisuje
rukovanje), a zavrava operandom ili operandima (npr. u obliku putanja datoteka, kojima se rukuje).
2. Kako se zadaju komande grafikih komandnih jezika?
Kod grafikih komandnih jezika, zadavanje komandi vri se pomou grafike predstave komande
(icon) ili spiska operatora komandi (menu). Nakon izbora operatora sledi, po potrebi, dijalog u kome
korisnik navodi (ili opet bira) operand ili operande komande. Grafiki komandni jezici jo vie
pojednostavljuju zadavanje komandi, ako korisniku omoguuju da ne bira operator, nego samo
operande komandi.
3. ta su ciljevi znakovnih komandnih jezika?
Ciljevi znakovnih komandnih jezika obuhvataju:
- omoguavanje izvravanja pojedinih (korisnikih) programa
- omoguavanje kombinovanja izvravanja vie (korisnikih) programa
- omoguavanje pravljenja komandnih datoteka
4. ta omoguuju znakovni komandni jezici?
Znakovni komandni jezici omoguuju izvravanje pojedinih programa, kombinovanje izvravanja vie
korisnikih programa i pravljenje komandnih datoteka.
5. ta omoguuju arobni znakovi?
U okviru operanada komandi se mogu javiti arobni (specijalni) znakovi, kao to je npr. znak *.
Njegova upotreba je vezana, pre svega, za imena datoteka, i namenjena je za skraeno oznaavanje
grupa datoteka. Npr. *.obj oznaava sve objektne datoteke u radnom imeniku. Zahvaljujui maginim
znakovima mogue je, na primer, jednom komandom unititi sve objektne datoteke iz radnog imenika
(uniti *.obj) ili odtampati sve tekst datoteke iz radnog imenika koje poinju znakom d, a zavravaju
znakom 1 (odtampaj d*1.txt).
6. ta omoguuje preusmeravanje?
Zahvaljujui obradi znakova komande, mogue je interpreteru znakovnog komandnog jezika saoptiti
i da preusmeri standardni ulaz i standardni izlaz sa tastature i ekrana na proizvoljno odabrane datoteke.
Ovo je vano za pozadinske procese, koji nisu u interakciji sa korisnikom. Zahvaljujui
preusmeravanju, pozadinski proces ne ometa interaktivni rad korisnika, jer umesto tastature i ekrana,
koristi odabrane datoteke. Preusmeravanje standardnog ulaza najavljuje znak <, a preusmeravanje
standardnog izlaza znak >. Preusmeravanje standardnog ulaza i izlaza predstavlja osnovu za
kombinovanje izvravanja vie korisnikih programa.
7. emu slue pipe?
Umesto preusmeravanja standardnog ulaza i standardnog izlaza, mogue je nadovezati standardni izlaz
jednog procesa na standardni ulaz drugog procesa i tako obrazovati tok procesa (pipe). Nadovezivanje
u tok se oznaava pomou znaka |.
8. emu slui baferovana specijalna datoteka?
Razmena podataka izmeu dva procesa, koji su povezani u tok, ostvaruje se posredstvom posebne
specijalne datoteke. Njoj odgovara bafer u radnoj memoriji. Ova baferovana specijalna datoteka slui
41

prvom od ovih procesa, kao standardni izlaz, a drugom od njih kao standardni ulaz. Prvi proces samo
pie u ovu datoteku, a drugi samo ita iz nje.
9. ta karakterie pozadinske procese?
Pozadinski procesi se razlikuju od obinih (interaktivnih) procesa po tome to interpreter znakovnog
komandnog jezika, nakon stvaranja pozadinskog procesa, ne eka kraj njegove aktivnosti, nego
nastavlja interakciju sa korisnikom. Zato su pozadinski procesi u principu neinteraktivni.
10. ta karakterie komandne datoteke?
Komandne datoteke opisuju okolnosti pod kojima se izvravaju korisniki programi, a sadraj
komandne datoteke preuzima na interpretiranje interpreter znakovnog komandnog jezika. Komandne
datoteke imaju poseban tip, da bi ih interpreter znakovnog komandnog jezika mogao prepoznati. Ime
svake komandne datoteke predstavlja ispravnu komandu znakovnog komandnog jezika. Imamo
korisnike i administratorske komande.
11. ta omoguuju korisnike komande?
Korisnike komande omoguuju:
- rukovanje datotekama,
- rukovanje imenicima,
- rukovanje procesima,
- razmenu poruka izmeu korisnika.
12. ta omoguuju administratorske komande?
Administratorske komande omoguuju:
- pokretanje i zaustavljanje rada raunara,
- spaavanje i vraanje datoteka,
- rukovanje vremenom,
- kompresovanje datoteka,
- auriranje podataka o korisnicima i njihovim pravima,
- generisanje izvetaja o korienju raunara,
- rukovanje konfiguracijom raunara,
- proveru ispravnosti rada raunara,
- pripremu diskova za korienje









42

Klasifikacija operativnih sistema
1. ta karakterie operativne sisteme realnog vremena?
Operativne sistemi realnog vremena su namenjeni za primene raunara u kojima je neophodno
obezbediti reakciju na vanjski dogaaj u unapred zadatom vremenu. Zbog toga su ovi operativni
sistemi podreeni ostvarenju to vee brzine korisnikih programa. Operativni sistemi realnog
vremena su zajedno sa raunarom, ugraeni u sistem, ije ponaanje se ili samo prati, ili ijim
ponaanjem se upravlja.
Zadatak operativnih sistema realnog vremena je da samo stvore okruenje za korisnike programe, jer
komunikaciju sa krajnjim korisnikom obavljaju korisniki programi. Zato se obino koriste samo na
programskom nivou.
2. ta karakterie multiprocesorske operativne sisteme?
Multiprocesorski operativni sistemi upravljaju raunarskim sistemima sa vie procesora opte namene,
koji pristupaju zajednikoj radnoj memoriji. Podrazumeva se da ove procesore i operativnu memoriju
povezuje sabirnica. Kod modula za rukovanje procesorom prisutne su istovremene aktivnosti vie
procesa na raznim procesorima, pa se sinhronizacija procesa ne ostvaruje onemoguenjem prekida,
nego zauzimanjem sabirnice. Mogunost istovremene aktivnosti vie procesa na raznim procesorima
uslonjava rasporeivanje.
3. Koje module sadri mikrokernel?
Mikrokernel sadri:
- modul za rukovanje procesima,
- modul za razmenu poruka,
- modul za rukovanje radnom memorijom,
- modul za rukovanje kontrolerima,
- modul za rukovanje procesorom.
Mikrokernel ne sadri modul za rukovanje datotekama.
4. ta karakterie poziv udaljene operacije RPC?
Ako pozivana operacija ne odgovara potprogramu koji se lokalno izvrava u okviru aktivnosti procesa
pozivaoca, nego odgovara potprogramu koji se izvrava u okviru aktivnosti drugog, udaljenog
procesa, aktivnog na udaljenom raunaru, re je o pozivu udaljene operacije (Remote Procedure Call -
RPC). Proces koji poziva udaljenu operaciju se nalazi u ulozi klijenta (primaoca usluge), a proces koji
obavlja udaljenu operaciju se nalazi u ulozi servera (davaoca usluge). Poziv udaljene operacije ima
oblik poziva potprograma, u kome se navode oznaka (ime) operacije i njeni argumenti. Ovakav
potprogram se naziva klijentski potprogram, jer je klijent njegov jedini pozivalac.
5. ta radi klijentski potprogram?
Koraci klijentskih programa:
1. Pronalaenje procesa servera koji prua zahtevanu uslugu
2. Pakovanje argumenata u poruku zahteva
3. Slanje serveru poruke zahteva
4. Prijem poruke od servera sa rezultatom zahtevane usluge
5. Raspakivanje prispele poruke odgovora
6. Isporuka rezultata pruanja zahtevane usluge pozivaocu potprograma
43

6. Za ta su zadueni serverski potprogrami?
Serverske potprograme poziva jedino server, postoje dva serverska potprograma i imaju zadatak da
pruaju zahtevane usluge, to se obavlja u vie koraka.
Prvi serverski potprogram obuhvata :
- prijem poruke zahteva i
- raspakivanje argumenata iz ove poruke
Drugi serverski potprogram obuhvata :
- pakovanje rezultata usluge (koju je pruio server) u poruku odgovora i
- slanje klijentu ove poruke odgovora
Izmeu poziva ova dva potprograma nalazi se operacija koja odgovara izvravanju zadate usluge.
7. Koji problemi su vezni za poziv udaljene operacije?
U toku poziva udaljene operacije mogu da se pojave problemi, ija pojava nije mogua kod poziva
lokalne operacije, pa je mogue:
1. nepronalaenje servera koji prua zahtevanu uslugu
2. da se izgube ili poruka zahteva ili poruka odgovora
3. da doe do otkaza ili servera ili klijenta u toku rada
8. ta podrazumeva dinamiko linkovanje klijenta i servera?
Dinamiko linkovanje klijenta i servera podrazumeva trenje i povezivanje servera koji vri zahtevanu
uslugu sa klijentom, koji zahteva uslugu. Ovaj proces se odvija pomou servera imena (name server),
koji sadri podatke o svim ostalim serverima.
9. Koje operacije podrazumeva protokol razmene poruka izmeu klijenta i servera?
Protokol razmene poruka izmeu klijenta i servera podrazumeva:
- sistemsku operaciju zahtevanja usluge
- sistemsku operaciju prijema zahteva
- sistemsku operacija slanja odgovora
10. Za ta su zaduene sistemske operacije koje ostvaruju protokol razmene poruka?
Sistemska operacija zahtevanja usluge je namenjena klijentu i poziva se iz njegovog potprograma. Ona
omoguuje slanje poruke zahteva i prijem poruke odgovora. Sistemske operacije prijema zahteva i
slanja odgovora su namenjene serveru i omoguuju prijem poruke zahteva i slanje poruke odgovora.
Sistemska operacija prijema zahteva se poziva iz prvog serverskog potprograma, a sistemska operacija
slanja odgovora se poziva iz drugog serverskog potprograma. Ove tri sistemske operacije su
blokirajue. Sistemska operacija zahtevanja usluge zaustavlja aktivnost klijenta do stizanja odgovora
ili do isticanja zadanog vremenskog perioda. Sistemska operacija prijema zahteva zaustavlja aktivnost
servera do stizanja zahteva, a sistemska operacija slanja odgovora zaustavlja aktivnost servera do
isporuke odgovora ili do isticanja zadanog vremenskog intervala. Ove tri sistemske operacije su
zaduene za prenos poruka. Pored slanja i prijema poruka, one (1) potvruju prijem poruka, (2)
retransmituju poruke, iji prijem nije potvren, (3) alju upravljake poruke, kojim se proverava i
potvruje aktivnost servera. U nadlenosti ovih operacija je i rastavljanje poruka u pakete, sastavljanje
poruka od paketa, potvrda prijema paketa i retransmisija paketa iji prijem nije potvren, kao i
prilagoenje brzine slanja paketa brzini kojom oni mogu biti primani. Koriste usluge drajvera sata.
One pozivaju i (neblokirajue) operacije gornjeg dela drajvera mrenog kontrolera. Takoe, brinu se i
o baferima, najmjenjenim za (privremeno) smetanje poruka.
44

11. ta sadre poruke koje razmenjuju klijent i server?
Svaka od poruka, koje se razmenjuju izmeu procesa, se sastoji od upravljakog dela poruke i sadraja
poruke.
Upravljaki deo poruke obuhvata:
- adresu odredinog procesa (kome se poruka upuuje)
- adresu izvorinog procesa (od koga poruka krece)
- opis poruke (vrstu, redni broj...)
12. ta je potrebno za sigurnu razmenu poruka izmeu klijenta i servera?
Komunikacione linije su pristupane svim korisnicima, pa je svaki od njih u poziciji da preuzima tue
poruke i da alje poruke u tue ime. Spreavanje preuzimanja tuih poruka zasniva se na kriptovanju
poruka, a spreavanje slanja poruka u tue ime se zasniva na nedvosmislenoj meusobnoj
identifikaciji procesa.
Bitnu ulogu u sigurnosti razmene poruka igra i poseban server, koji se naziva poverenik. On poseduje
unapred dogovoren poseban klju kriptovanja za komunikaciju sa svakim procesom. Zahvaljujui
tome, klijent moe da poalje poruku povereniku, koja sadri ime klijenta i ime servera sa kojim
klijent eli da ostvari sigurnu komunikaciju. Poverenik alje samo klijentu i serveru interni klju
kriptovanja za sigurnu komunikaciju i ujedno se obavi njihova meusobna identifikacija, tako da se
drugi procesi ne mogu umeati u njihovu komunikaciju. Kod asimetrine kriptografije, uloga
poverenika je da uva javne kljueve i tako osigura meusobnu identifikaciju procesa.
13. ta karakterie digitalni potpis?
Asimetrina kriptografija omoguuje i digitalno potpisivanje poruka, radi neopozivog pripisivanja
poruke njenom poiljaocu. Digitalni potpis se alje uz poruku. Digitalni potpis jednoznano
reprezentuje poruku, tj. predstavlja otisak prsta poruke. Otisak prsta formiraju jednosmerne funkcije
na osnovu sadraja poruke. Digitalni potpis nastaje kada se otisak prsta poruke dekriptuje, primenom
algoritma kriptovanja i javnog kljua.
14. Od ega zavisi propusnost servera?
Manja propusnost servera uslovljena je strogom sekvencijalnou njegove aktivnosti, koja takoe utie
i na sporije pruanje usluga.
15. ta sadre dozvole na kojima se zasniva zatita datoteka u distribuiranom sistemu?
Da bi klijent dobio neku uslugu, on mora da poseduje odgovarajuu dozvolu, koju prosleuje serveru
u okviru zahteva za uslugom. Dozvola sadri :
- redni broj servera,
- redni broj deskriptora datoteke (odnosno, deskriptora imenika)
- oznaku vrste usluge i
- oznaku ispravnosti dozvole.
16. ta karakterie distribuiranu sinhronizaciju?
Saradnja procesa, aktivnih na raznim raunarima, zahteva njihovu sinhronizaciju, to se ostvaruje
razmenom poruka. Najjednostavniji nain za ostvarenje sinhronizacije se zasniva na uvoenju procesa
koordinatora. Njemu se obraaju svi procesi, zainteresovani za sinhronizaciju, a koordinator donosi
odluke o njihovoj sinhronizaciji. Proces koordinator spada u centralizovane algoritme sinhronizacije.
Postoje i distribuirani algoritmi sinhronizacije koji se zasnivaju na meusobnom dogovaranju procesa,
zainteresovanih za sinhronizaciju. Ovaj algoritam ima veu razmenu poruka i komplikovaniji je od
45

centralizovanih algoritama, ali nema vei praktini znaaj. Za distribuirane operativne sisteme nije
samo bitno da omogue efikasnu sinhronizaciju procesa, nego i da podre poseban oblik sinhronizacije
procesa, koji obezbeuje da se obave ili sve operacije iz nekog niza pojedinanih akcija ili nijedna od
njih. Ovakav niz operacija se naziva transakcija, a transakcije koje imaju svojstvo da se obave u celosti
ili nikako, nazivaju se atomske transakcije. Distribuirani raunarski sistemi su neefikasniji kod pojave
mrtve petlje, nego centralizovani (jednoprocesorski) raunar.
17. ta karakterie distribuirani raunarski sistem?
Distribuirani raunarski sistem je zamiljen da integrie mnotvo raunara u moan multiraunarski
sistem. Mogue je od vie jeftinih i malih raunara napraviti moan multiraunarski sistem povoljne
cene. Ovakav sistem ima i veu pouzdanost i mogunost proirenja. Ovakav sistem omoguuje i
deljenje skupih resursa ovakvog multiraunarskog sistema izmeu vie korisnika, a nudi i
prilagodljivost zahtevima korisnika, eljenu raspoloivost i predvidivost odziva, ak i veu sigurnost.
18. ta karakterie distribuiranu softversku platformu?
Uniforman nain pruanja usluga podrazumeva skrivanje razliitosti raunara od kojih je obrazovan
distribuirani raunarski sistem. To se moe postii, ako se iznad raznorodnih operativnih sistema,
pojedinih raunara distribuiranog raunskog sistema napravi posebna softverska platforma
(middleware) za razvoj distribuiranih softverskih sistema. Ona ima ulogu distribuiranog operativnog
sistema. Distribuirana softverska platforma je obino specijalizovana tako da nudi konzistentan skup
operacija, koje omoguuju razvoj eljene vrste distribuiranih softverskih sistema. Imamo distribuirane
softverske platforme za podrku distribuiranih dokumenata (WWW) ili podrku distribuiranom
objektno orjentisanom programiranju (CORBA,.NET). U osnovi ovakvih sistema se krije klijent-
server model. Server se nalazi na strani rukovaoca distribuiranim dokumentima (web site) ili
rukovaoca objektima, a klijent se nalazi na strani korisnika distribuiranih dokumenata (web browser)
ili pozivaoca operacija udaljenih objekata.