Download as pdf or txt
Download as pdf or txt
You are on page 1of 31

Skripta iz OS  

Dio 1: Uvod i resursi 
 
Uvod: 
1. Šta je operativni sistem? 
Program koji služi kao interfejs između korisnika računara i računarskog hardvera. 
OS obezbjeđuje pristupačno radno okruženje za krajnjeg korisnika računara 
OS upravlja resursima računara (hardverskim i softverskim) 
OS je skup sistemskih programa koji posreduju između korisnika računara i računarskog 
hardvera 
 
2. Šta ulazi u operativni sistem po tradicionalnom i savremenom shvatanju? 
Tradicionalno shvatanje: 
+kernel (jezgro) – program koji obavlja osnovne funkcije OS i uvijek se nalazi u memoriji 
+ skup uslužnih sistemskih programa 
+ shell (školjka) – komandni ili grafički korisnički interfejs (GUI) prema funkcijama OS 
 Moderno shvatanje: sve ovo i još: 
+ GUI 
+skup uslužnih aplikativnih programa 
+ programi za Internet usluge 
 
3. Opišite batch sisteme. 
Sistemi sa grupnom obradom (batch sistemi) 
+ prvi racunari ih imaju 
+ nema interakcije sa korisnikom 
+ OS je sasvim jednostavan, jedini mu je zadatak je preći sa jednog posla na drugi 
+  stalno pristuan u memoriji 
+ Operater pravi grupu (batch) srodnih poslova i pokreće ih, zatim se vraca rezultat ili 
poruka o gresci 
‐ Nedostatak ovog OS je u tome sto je iskoristivost CPU veoma mala. 
 
4. Opišite multiprogramiranje batch sisteme. 
Multiprogramirani batch sistemi 
Raspoređivanje poslova (job scheduling): 
 iz skupa raspoloživih poslova (pool),  izabrati poslove koji će se učitati u memoriju i 
izvršavati 
Multiprogramiranje (multiprogramming):  izvršavati više poslova uporedo;
 dok jedan čeka na završetak I/O operacije, CPU  izvršava drugi posao 
Prednosti: povećava iskorištenost CPU, CPU uvijek nešto radi, OS drži nekoliko 
zadataka u memoriji
 
5. Opišite time sharing sisteme. 
Time‐sharing sistemi – interaktivna obrada 
CPU izvršava više zadatako tako što se prebacuje između njih. Ovo prebacivanje se 
dešava tako često da korisnik može uticati na svaki od programa u izvršenju. 
Skripta iz OS  

Interaktivni računarski sistem pruža on‐line komunikaciju između korisnika i sistema. 
Sistem sa dijeljenim vremenom pruža mogućnost da više korisnika dijeli jedan računar. 
time‐sharing princip. Tehnika podjele vremenskog intervala i ograničavanje izvršenja 
posla na samo jedan dio tog intervala 
 
6. Klasifikacija operativnih sistema prema broju korisnika. 
Jednokorisnički (engl. single‐user) 
virtuelna mašina za samo jednog korisnika (jeftinija konfiguracija, ili prilagođeni za 
određenu funkciju) 
Jednokorisnički ali višeprocesni 
Višekorisnički (engl. multiuser) 
jača hardverska konfiguracija – simultani prisup više korisnika istovremeno (preko 
posebnih terminala) 
 
7. Klasifikacija operativnih sistema prema broju procesa. 
 Jednoprocesni (engl. single‐tasking, singleprocess) 
Višeprocesni (engl. multitasking. multiprocess) 
Kombinovani: 
Jednokorisnički jednoprocesni (engl. single‐user, singletasking) MS‐DOS 
Jednokorisnički višeprocesni (engl. single‐user,multitasking) OS/2, MS Windows 3.1 
Višekorisnički višeprocesni (engl. multiuser, multitasking) UNIX, a uslovno MS Windows 
2000/XP  
 
8. Klasifikacija operativnih sistema prema načinu obrade 
Sistemi sa grupnom obradom (engl. Batch) 
Grupna obrada‐ predaja poslova na izvršenjeposredstvom ulaznih jedinica, obrada u 
nizu, nema komunikacije između korisnika i posla 
 Interaktivni sistemi (engl. Interactive systems) 
 Korisnici komuniciraju sa svojim poslovima (u timesharing okruženju) 
 Kombinovani sistemi 
 
9. Klasifikacija operativnih sistema prema funkcionalnim osobinama. 
Operativni sistemi za velike računarske sisteme (engl. mainframesystems) 
Operativni sistemi za sisteme sa dijeljenim vremenom (engl.time‐sharing systems) 
Operativni sistemi za desktop sisteme 
Operativni sistemi za višeprocesorske sisteme (engl.multiprocessor systems) 
Mrežni operativni sistemi (engl. network OS) 
Distribuirani sistemi (engl. distributed systems) 
Udruženi sistemi (engl. clustered systems) 
Operativni sistemi za upravljanje u realnom vremenu (engl. realtimesystems) 
Ručni sistemi (engl. handheld systems) 
 
 
 
Skripta iz OS  

10. Šta je to sistemski poziv? 
Sistemski poziv (system call) predstavlja interfejs kojim OS programima nudi pristup 
do neke svoje usluge 
Sistemski pozivi se realizuju pomoću sistema prekida 
Razlikujemo dva režima rada: 
korisnički režim (user mode) i sistemski režim kernel mode, system mode, supervisor 
mode) rada. 
 
11. Monolitni kernel. 
Monolitni sistemi 
Skup procedura koje se po potrebi mogu međusobno pzivati bez ikakvih ograničenja 
Nakon pozivanja jezgra OS‐a (engl. kernel call) prelaz u sitemski rezim rada 
Tri osnovna skupa programa: 
Glavni program koji obrađuje sistemske pozive 
Skup sistemskih procedura koje se pozivaju prilikomsistemskih poziva 
Skup pomoćnih procedura koje koriste sistemskeproceure. 
 
12. Mikrokernel. 
Arhitektura mikrojezgra (engl. microcernel) 
 ideja: izbaciti sve nepotrebne dijelove iz kernela i retvoriti ih u sistemske procese i 
programe koji rade u korisničkom modu 
kernel učiniti što manjim, sa minimumom potrebnih funkcionalnosti koje se izvršavaju u 
kernel modu 
prednost: fleksibilnost (laka proširivost, promenljivost i prenosivost) 
nedostatak: lošije performanse 
 
13. Slojeviti operativni sistem. 
Slojevita struktura: 
 osnovna prednost: jednostavnost konstrukcije i testiranja 
 osnovni problemi: 
 kako jasno razdvojiti odgovornosti po slojevima 
 veće režije zbog toka informacija po slojevima 
 
14. Virtuelne mašine. 
Slojevita struktura: 
 osnovna prednost: jednostavnost konstrukcije i testiranja 
 osnovni problemi: 
 kako jasno razdvojiti odgovornosti po slojevima 
 veće režije zbog toka informacija po slojevima 
 
 
 
 
Skripta iz OS  

 
 
Potpuni zastoji 
 
1. Šta je to potpuni zastoj? 
Skup procesa se nalazi u stanju potpunog zastoja ako svaki proces u skupu čeka na 
neki događaj koji može proizvesti jedino neki proces iz tog skupa. 
 
2. Oduzivi i neoduzivi resursi. 
Oduzivi resurs (engl. preemptable) može biti oduzet procesu, koji ga posjeduje, bez loših 
posljedica. Jedan primjer za to je memorija. Neoduzivi resursi (engl. nonpreemptable) ne 
mogu biti oduzeti vlasniku, a da ne dođe do greške. Ako je resurs zauzet, proces koji ga 
zahtjeva mora čekati. 
 
3. Uslovi nastajanja potpunog zastoja. 
1. Uzajamno isljučivanje. Svaki proces ili je dodjeljen tačno jednom procesu ili je 
dostupan. Drugi proces koji zahtijeva taj isti resurs, mora čekati dok se resurs ne 
oslobodi. 
2. Stanje prisvajanja resursa i čekanja na drugi (engl. hold and wait condition) 
3. Nema oduzivih resursa (engl. no preemption condition).  
4. Kružno čekanje 
 
4. Kako se modelira potpuni zastoj grafom dodjele resursa? 
Procesi koji su predstavljeni kao krugovi,resursi kvadratom. Strelica od resurs‐čvora ka 
jednom proces‐čvoru znači da su resursi zatraženi od procesa i da ih on zauzima. 
‐ ukoliko graf ne sadrži kružni tok, zastoja sigurno nema; 
‐ ako graf sadrži najmanje jedan kružni tok zastoj je moguć. Kad svi resursi koji pripadaju 
kružnom toku sadrže tačno jednu instancu, zastoj se dogodio. Ukoliko resursi u kružnom 
toku sadrže više instanci, može se desiti da zastoja nema. 
 
5. Nojev algoritam‐ignorisanje problema. 
Zavući glavu u pijesak i praviti se kao da problem ne postoji. Ako 
se potpuni zastoj u prosjeku pojavi jednom u pet godina a drugi hardverski ili softverski 
problemi se javljaju puno češće, čak sedmično, ulaganja u otklanjanje ili sprečavanje 
potpunog zastoja se ne isplate. 
 
6. Algoritam za detekciju potpunog zastoja. 
1. Traži jedan neoznačeni proces Pi , za koji je i‐ti red R manji ili jednak A.(A‐resurs 
available) 
2. Ako takav proces postoji, saberi i‐ti red C sa A, označi proces i idi na korak 1.(C‐current 
allocationa matrix) 
3. U suprotnom završi algoritam. 
 
 
Skripta iz OS  

7. Načini oporavka od potpunog zastoja. 
Oporavak pomoću oduzimanja 
Oporavak pomoću povratka na staro stanje 
Oporavak ubijanjem procesa 
 
8. Pojam sigurnog stanja. 
Stanje je sigurno kada ne postoji potpuni zastoj i postoji redosljed raspoređivanja koji ne 
vodi u potpuni zastoj čak i kad svi procesi zatraže maksimalan broj resursa. 
 
9. Bankarov algoritam za izbjegavanje potpunog zastoja za jedan resurs. 
On slijedi primjer kako bankar može zadovoljiti zahtjeve za kreditom jedne grupe ljudi. 
Algoritam provjerava kod svakog zahtjeva za kredit, da li kredit može voditi ka 
nesigurnom stanju. Ako kredit vodi sigurnomstanju, biće odobren, ako ne biće odbijen. 
Bankarski algoritma ispituje svaki zahtjev čim on pristigne i zaključuje da li će rezultat 
biti sigurno stanje. 
 
10. Bankarov algoritam za izbjegavanje potpunog zastoja za više resursa. 
 
 
________________________________________________________________________ 
Dio 2:  Procesi 
 
Procesi: 
 
1. Šta je to proces, razlika programa i procesa? 
Proces je program u izvršenju i mora izvršavati sekvencijalno, to znači da se u jednom 
trenutku na jednoprocesorskom sistemu izvršava samo jedna instrukcija. 
Proces je više od programskog koda, on uključuje trenutne aktivnosti prezentirane 
vrijednošću programskog brojača (program counter) i sadržajem procesorskih registara. 
Program je pasivan entitet. Proces je apstrakcija jednog aktivnog programa. 
 
2. Fundamentalni memorijski dijelovi procesa. 
‐ Programska sekcija koja sadrži programski kod, 
‐ Stek sekcija (engl. steck section) koja sadrži privremene podatke 
‐ Sekcija podataka (engl. data section) koja sadrži globalne promjenjive. 
 
3. Šta čini process control block? 
PCB sadrži važne informacije o određenom procesu: 
‐ Trenutno stanje procesa: 
‐ Jedinstvenu identifikaciju procesa  
‐ Pokazivač na proces roditelj; 
‐ Pokazivač na child proces (ako postoji); 
‐ Prioritet procesa  
‐ Pokazivač koji pokazuje na memoriju procesa; 
Skripta iz OS  

‐ Područje registara; 
‐ Informacije o memoriji procesa; 
‐ Lista otvorenih datoteka; 
‐ Status zauzetih ulazno‐izlaznih resursa; 
‐ Procesor na kome radi (ako ima više procesora). 
 
4. Koji događaji pokreću proces? 
1. inicijalizacija sistema, 
2. sistemski poziv za pokretanjem procesa kroz neki drugi proces, 
3. korisnički zahtjev za stvaranjem procesa, 
4. inicijalizacija batch poslova. 
 
5. Koji događaji završavaju proces? 
1. normalni izlaz (dobrovoljno), 
2. izlaz sa greškom (dobrovoljno), 
3. fatalna greška (nije dobrovoljno), 
4. ubijen (killed) od strane drugog procesa (nije dobrovoljno). 
 
6. Sistemski poziv fork u Unixu. 
Zahtijeva kreiranje novog procesa 
 
7. Sistemski poziv wait u Unixu. 
On suspenduje proces koji ga je pozvao sve dok jedno od njegovih djeteta ne završi. 
Kada proces dijete završi roditelj preuzme exit kod te obriše proces dijete. Ako proces 
dijete završi sa radom a roditelj ga ne čeka sa wait() poces dijete neće nestati jer bi se 
onda izgubili podaci o tome sa kakvim exit kodom je završio. Tada proces dijete postaje 
zombie proces 
 
8. Sistemski poziv exit u Unixu. 
Pomoču njega proces koji ga pozove prestaje sa izvođenjem trenutnog programa i 
počinje sa drugim koji je naveden kao argument. 
 
9. U kojim stanjima može biti proces? 
‐ New‐ novi:  
‐ Running – aktivan (izvršava se) 
‐ Waiting (blocked) – čeka (blokiran) 
‐ Ready – spreman:  
‐ Terminated – završen 
 
10. Šta je to nit? 
Programka nit je osnovna jedinica korištenja CPU. Programske niti ima svoj programski 
brojač, skupa registara i stek prostor. On dijeli sa svojom partnerskom niti kodnu sekciju, 
sekciju podataka, resurse operativnog sistema. 
Skripta iz OS  

RPR definicija: Niti (engl. threads), predstavljaju bazične cjeline za izvršavanje koda pod 
savremenim operativnim sistemima. Nit je programska cjelina koja treba da obavi jedan 
zadatak. Niti (jedna ili više) pripadaju jednom složenijem procesu. Niti kao laki procesi i 
djelovi jednog istog procesa imaju svoje unikatne resurse i zajedničke resurse sa ostalim 
nitima istog procesa. 
 
11. Razlike između procesa i threda, kada koje korisititi? 
Sve niti imaju isti adresni prostor što znači da dijele i iste globalne varijable. S obzirom 
da jedna nit može pristupiti svakoj memorijskoj adresi unutar adresnog prostora, on 
može čitati ili pisati ili potpuno obrisati stack druge niti. 
Upotreba niti: 
istovremeno više aktivnosti. 
Programski model postaje jednostavniji 
mogućnost da paralelni entiteti dijele adresni prostor i sve svoje podatke 
lakše kreirati a i uništiti u odnosu na procese. 
12. Niti u korisničkom prostoru. 
Prednosti: dozvoljavaju svakom procesu da ima svoj algoritam raspoređivanja.  
Glavna prednost korištenja niti je bila dozvoliti svima da koriste blokirajuće pozive, ali 
da se spriječi da jedna blokirana nit utiče na druge. 
 
Problemi:prvi od ovih je kako je blokirajući sistemski poziv implementiran. 
Drugi problem sa nitima na korisničkom nivou je da ako jedna programska nit počne rad 
ni jedna druga nit u tom procesu neće raditi osim ako prva nit ne prepusti CPU 
dobrovoljno i programeri žele niti upravo u aplikacijama gdje one često blokiraju. 
 
13. Niti u jezgru. 
Informacije su iste kao i kod niti na korisničkom nivou ali se sada nalaze u jezgru a ne u 
korisničkom prostoru. 
Osnovni nedostatak je da sistemski pozivi prouzrokuju veće troškove tako da ukoliko se 
operacije na nitima (kreacija, terminiranje) često javljaju, nastaće veći overhead. 
 
14. Na šta paziti pri konvertovanju jednonitnih u višenitne procese? 
Lokalne varijable i parametri ne prouzrokuju probleme ali varijable koje su globalne za 
nit ali ne i za čitav program prouzrokuju. Jedno rjesenje je da se zabrane globalne 
varijable,a drugo je dodjeljivanje svakoj niti njegove vlastite privatne globalne varijable 
 
 
Raspoređivanje procesa 
 
 
1. Šta su procesi vezani za procesor i procesi vezani za U/I? 
Procesi “vezani za procesor”, imaju duga vremena izvršavanja na procesoru i rijetka 
čekanja na U/I, dok procesi “vezani za U/I” imaju kratka vremena izvršavanja na 
procesoru, i dakle česta čekanja na U/I. 
Skripta iz OS  

 
2.  Koji ciljevi algoritama za raspoređivanje su bitni za sve sisteme? 
Poštenost – daje svakom procesu pošteno djeljenje procesora 
Provođenje politike – donesena politika se provodi 
Održavanje balansa – održavanje svih djelova sistema zauzetim 
3. Koji ciljevi algoritama za raspoređivanje su bitni za pozadinske sisteme? Maksimizira 
propusnost (engl. Throughput ) job‐ova po satu 
Vrijeme boravka u sitemu – minimizira vrijeme između početka i završetka procesa 
Iskorišćenost procesora – iskorišćenost procesora se održava 
 
4. Koji ciljevi algoritama za raspoređivanje su bitni za interaktivne sisteme?  
Vrijeme odgovora ‐ brz odgovor na zahtjeve 
Korisnikova očekivanja – proporcionalna u skladu sa zahtjevima 
 
5. Koji ciljevi algoritama za raspoređivanje su bitni za sisteme realnog vremena?  
Ispunjavanje deadline‐a ne gubeći podatke 
Predvidivo izbjegava degradaciju sistema kod multimedijalnih sistema 
 
6. Kako radi sistem za raspoređivanje na tri nivoa? 
 pristupni raspoređivač‐raspoređivač koji dozvoljava da jobovi mogu ući u sistem, 
odlučuje koji od jobova da uvede u sistem. Ostali se drže u ulaznom redu čekanja dok se 
ne izaberu raspoređivačem memorije‐odlučuje koje procese će držati u memoriji a koje 
na disku raspoređivačem procesora‐preuzimanje jednog od spremnih procesa u 
memoriju da bi se izvršio sljedeći 
 
7. Algoritam FCFS. 
nonpreemptive algoritam‐procesi se pridružuju procesoru u redosljedu njihovih zahtjeva 
Dodavanje novog procesa predstavlja se dodavanjem na kraj liste 
 
8. Algoritam SJF. 
nonpreemptive algoritam‐koji pretpostavlja da su vremena izvršavanja poznata 
unaprijed 
 
9. Algoritam SRTN. 
Preemptive verzija SJF algoritma izabira proces čije je preostalo vrijeme za izvršavanje 
najkraće, ako novi proces treba manje vremena da završi izvođenje od tekućeg procesa 
na procesoru, tekući proces se skida sa procesora i novi proces započinje izvođenje 
 
10. Algoritam Round Robin. 
Svakom procesu se pridružuje jedan vremenski interval, koji se naziva kvantum, u kome 
je dozvoljeno procesu da se izvršava. Ako se proces još izvršava na kraju kvantuma, skida 
se  sa procesora i dovodi se novi proces. Kada iskoristi svoj kvantum, on se postavlja na 
kraj liste. 
Skripta iz OS  

 
11. Prioritetno raspoređivanje s statičkom dodjelom prioriteta. 
Svakom procesu se pridružuje prioritet dok proces koji ima najveći prioritet može da se 
izvršava 
svakom procesu se može pridružiti kvantum u kome se može izvršavati. Kada se 
kvantum u potpunosti iskoristi, sljedeči najprioritetniji proces se može izvršavati. 
 
12. Prioritetno raspoređivanje s dinamičkom dodjelom prioriteta. 
prioritetna klasa: U/I driveri, i serveri 
Inicijalni prioritet svakog procesa je definisan za vrijeme kompiliranja programa. U/I koji 
dolazi od sporih uređaja može imati niži prioritet od U/I koji dolazi od brzih uređaja ili 
čak i servera. Korisnički procesi, u principu, imaju niži prioritet nego komponente 
operativnog sistema, ali svi prioriteti se mogu promjeniti u toku izvođenja. 
 
13. Prioritetno raspoređivanje s round robin raspodjelom unutar klase. 
Procesi u klasi najvećeg prioriteta su se izvršavali po jedan kvantum. Procesi u sljedećoj 
najvišoj klasi su se izvršavali po dva kvantuma. Procesi u sljedećoj klasi su se izvršavali po 
4 kvantuma itd. Kad god proces iskoristi kvantum u cijelosti on se premješta u 
klasu koja je ispod. 
 
14. Lutrijsko raspoređivanje. 
Procesima daju tiketi za razne sistemske resurse, takve kao što su, recimo 
procesorsko vrijeme. Kad god odluka o raspoređivanju treba da se napravi, lutrijski tiket 
se izabira slučajno i proces koji drži taj tiket dobija resurs, više važni procesi mogu dobiti 
dodatne tikete 
 
15. Prioritetna inverzija. 
Prioritetna inverzija je termin za scenario u kojem spremni procesi visokog prioriteta ne 
uspijevaju da se izvrše a trebali bi. 
 
 
 
Sinhronizacija procesa 
 
1. Šta je to kritična sekcija? 
Dio programa koji radi sa resursima na način da mu je potrebno međusobno 
isključivanje 
ili neki drugi tipovi zaštite se naziva kritična sekcija. 
Četiri stanja da bi se održalo dobro riješenje međusobnog isključivanja procesa: 
1. Dva proces ne smiju biti u njihovoj kritičnoj sekciji 
2. Ne bi smjele se praviti pretpostavke o brzini i broju procesora 
3. Ne smije se dozvoliti procesu koji se izvršava izvan kritične sekcije da blokira druge 
procese 
4. Proces ne bi trabao da čeka beskonačno da bi ušao u kritičnu sekciju 
Skripta iz OS  

 
2. Međusobnoi isključivanje zabranom prekida. 
Najednostavnije rješenje je da svaki proces zabrani sve prekide odmah po ulasku u 
kritičnu sekciju i omogući ih odmah po izlasku iz kritične sekcije. Ako zabranimo prekide 
procesor se ne može dodjeliti drugom procesu 
 
3. Međusobno isključivanje djeljenom varijablom. 
Djeljenu varijablu se inicijalizira na 0. 
0 znači da nema procesa u kritičnoj sekciji kod 1 znači da je proces u kritičnoj sekciji. 
Stanje natjecanja se dešava kada drugi proces modifikuje djeljenu varijablu nakon 
što je prvi proces uradio provjeru varijable. 
 
4. Striktna promjena. 
while (TRUE){        while (TRUE) { 
while(turn != 0); /* petlja * /   while(turn != 1); /* petlja * / 
kritična_sekcija ();        kritična_sekcija (); 
turn = 1;          turn = 0; 
kod_izvan_kritične_sekcije();    kod_izvan_kritične_sekcije(); 
}            } 
 
Stalno provjeravanje varijable dok se neka vrijednost ne pojavi se naziva “zaposlenim 
čekanjem”. Ova situacija nije poželjna jer troši vrijeme na procesoru. Zaposleno čekanje 
se koristi samo kada se s razlogom očekuje da će vrijeme čekanja biti kratko. 
Ovakva ideja nije dobra u slučajevima kada je jedan proces brži od drugog. 
 
5. TSL instrukcija. 
Hardversko rjesenje za kriticnu sekciju 
TSL RX,LOCK 
znači provjeri i postavi (engl. Test and Set Lock) koja radi na sljedeći način: čita sadržaj 
memorijske riječi LOCK u registar RX i onda smješta vrijenost različitu od 0 u memorijsku 
lokaciju LOCK 
Procesor izvršava TSL instrukciju i zaključava memorijski bus da bi zabranio drugim 
procesorima da pristupe memoriji dok se instrukcija ne završi. 
 
6. Šta su to semafori? 
nova vrijabla, nazvana semafor. Semafor je mogao imati vrijednost 0 i ukazivao je da 
nema deblokiranja procesa dok je pozitivna vrijednost ukazivala da jedan broj procesa 
čeka na deblokiranje. 
 
7. Kako radi wait(semaphore) ili p(s)? 
Down , wait, p(s) operacija na semaforu provjerava da vidi da li je vrijednost semafor 
veća od 0. Ako jeste, smanji je za 1 i nastavi sa izvršavanjem. Ako je vrijednost jednaka 0, 
proces se blokira 
Skripta iz OS  

 
8. Kako radi signal(semaphore) ili v(s)? 
Operacija up, signal, v(s)  povećava vrijednost semafora za 1. Ako je postojao jedan ili 
više procesa koji su blokirani na semaforu, jedan od procesa se izabira i na taj način mu 
je dozvoljeno da završi svoju down operaciju i nastavi sa svojim izvođenjem. 
 
9. Šta su to muteksi? 
Mutex je varijabla koja može biti u jednom od dva stanja: otključanom(0)  ili 
zaključanom.  
Kada jedan proces ili thread treba da pristupi kritičnoj sekciji onda koristi proceduru 
mutex_lock. Ukoliko je tada mutex otključan, poziv procedure je uspješan i pozvani 
proces ili thread može ući u kritičnu sekciju. ako je mutex zaključan pristup kritičnoj 
sekciji nije dozvoljen. 
 
10. Šta su to monitori? 
Monitori su konstrukcije programskih jezika tako da kompajler zna da su one posebne.  
Samo jedan proces može biti aktivan u monitoru u bilo kojem trenutku. Zadatak 
kompajlera je da implementira međusobno isključivanje na ulazu u monitor, uobičajen 
način je da se koristi mutex ili binarni semafor. 
Rješenje je povezano sa uvođenjem uslovnih varijabli sa dvije operacije koje se 
mogu izvoditi nad njima, wait i signal 
Kada monitor procedura otkrije da se proces ne može dalje nastaviti on izvršava jednu 
operaciju wait na nekoj uslovnoj varijabli. Ova akcija uzrokuje da se pozivni proces 
blokira. To dozvoljava  rugom procesu, da uđe u monitor. 
11. Šta su to barijere? 
Barijere predstavljaju mehanizam za sinhronizaciju grupe procesa. Imaju pravilo da se 
nijedan process ne smije izvršavati u sljedećoj fazi ako svi procesi nisu spremni da uđu u 
tu fazu. Ovakvo ponašanje se može postići postavljanjem barijere na kraju svake faze. 
Kada jedan proces u grupi procesa dostigne barijeru, on se blokira dok svi procesi ne 
dostignu istu barijeru. 
 
12. Problem proizvođač/potrošač. 
Problem ograničenog bafera. 
Problemi se javljaju kada proizvođač želi da stavi novi element u bafer a bafer je već 
pun. Za proizvođača je rješenje da se blokira i da se deblokira kada potrošač ukloni iz 
bafera jedan ili više elemenata. Ako potrošač želi da ukloni jedan element iz bafera i vidi 
da je bafer prazan treba da se blokira sve dok proizvođač ne stavi element u bafer i 
deblokira ga. 
Ovo rješenje koristi tri semafora: jedan koji se zove full i služi za brojanje popunjenih 
mjesta u baferu, jedan koji se zove empty koji služi za brojanje praznih mjesta u baferu i 
jedan koji se zove mutex i služi da proizvođač i potrošač ne pristupe baferu istovremeno 
 
 
13. Problem 5 filozofa. 
Skripta iz OS  

Pet filozofa sjede za okruglim stolom. Svaki filozof ima tanjir sa špagetama. Za jedenje 
špageta potrebno je koristiti dvije viljuške. Između dva tanjira se nalazi po jedna viljuška. 
Proces koji obavljaju filozofi se sastoji od periodičnog jedenja i razmišljanja. Kada filozof 
postane gladan on pokušava da dobije lijevu i desnu viljšku. Ako je uspješno dobio dvije 
viljuške, on počne da jede izvjesno vrijeme, a onda spušta viljuške i nastavlja da 
razmišlja. 
Problem je može li se napisati program za svakog filozofa da radi ono što se 
pretpostavlja da radi a da nikada ne dođe u situaciju da ne može da obavlja svoje 
funkcije, jest ce samo ako njegovi susjedi ne jedu. 
 
14. Problem čitača i pisaca. 
Prihvatljivo je da imamo više procesa koji čitaju baze podataka u isto vrijeme, ali ako 
neki od procesa želi da ažurira (čitaj piše) bazu podataka nijedan drugi proces ne smije 
imati pristup bazi podataka, čak ni “čitači”. 
Dok jedan čitač koristi bazu podataka, drug čitač može doći i takva situacija je 
prihvatljiva. Pretpostavimo da sada dolazi pisač. On ne može pristupiti bazi podataka 
pošto mora imati eksluzivno pravo pristupa, tako da se pisač mora suspendovati. Kasnije 
mogu dolaziti i dodatni čitači povećavajući broj čitača. To znači, dok god je jedan čitač 
aktivan čitači mogu pristupati bazi podataka. Kao posljedica takve strategije, dok god 
postoje aktivni čitači novi čitači mogu pristupati bazi podataka, a to znači da je pisač biti 
blokiran bez obzira kada je stigao. 
 
 
 
 
________________________________________________________________________ 
Dio 3: Memorija i  Arhitektura Microsoft OS i Intel 32 bita 
 
 
Microsoft i Intel 
 
1. Uloga IO.SYS u MSDOS. 
A hidden file located in the root of the active primary partition. 
Handles talking to the BIOS and the hardware. Controls the basic 
input/output services MS‐DOS provides. 
 
2. Uloga MSDOS.SYS u MSDOS. 
A hidden file located in the root of the active primary partition. 
Contains the primary MS‐DOS code referred to as the Kernel. Looks 
for the Config.Sys file and, if it is available, loads it into memory. 
 
3. Uloga COMMAND.COM u MSDOS. 
A visible file located in the root of the active primary partition. 
Interprets commands typed into the computer and passes the 
Skripta iz OS  

information to Msdos.sys. 
 
 
 
4. Uloga KERNEL.EXE i KERNEL32.DLL Windowsima. 
Kernel.exe 
Allocates and tracks system resources. Coordinates I/O requests with the hardware
(responsible for memory management and loading/executing programs on startup).
Kernel.dll
The Kernel32.dll file is a 32-bit dynamic link library file in Windows 95,98,Me. The
Kernel32.dll file handles memory management, input/output operations, and interrupts.
When you start Windows, Kernel32.dll is loaded into a protected memory space so that
other programs do not take over that memory space. 
 
5. Uloga USER.EXE i USER32.DLL Windowsima. 
User.exe 
Inputs I/O requests (rsponsible for the keyboard, mouse, sound, communications
hardware, and timer).
User32.dll 
 
6. Uloga GDI.EXE i GDI32.DLL Windowsima. 
Gdi.exe 
The Graphical Driver Interface. Coordinates with User.exe and Krnl386.exe for input and
output relating to GUI and graphics (responsible for graphics and printing). 
 
7. Šta je to registry?
Centralizovana konfiguraciona baza 
– Softverske postavke 
– Hardverske postavke 
• Datoteke registry‐a 
– User.dat and System.dat 
– Backed up as User.da0 and System.da0 
• Regedit.exe za ručno mijenjanje sadržaja registry‐a 
 
8. Kako Windows 95 pamti duga imena datoteka? 
Windows 95 Podržava duga imena fajlova(LFNs) 
– 255 karaktera 
– više tačaka (.) 
• dopušteni razmaci 
• Skraćena imene radi DOS kompatibilnosti 
sa Neta: To maintain compatibility with older operating systems, Microsoft formulated a 
method of generating an 8.3 filename from the long filename (for example, 
"Microsoft.txt" to "MICROS~1.TXT") and associating it with the file. 
Skripta iz OS  

 
 
 
 
 
9. Koje su glavne novosti Windows 98 u odnosu na WIndows 95? 
 
Microsoft Windows 98 je 32 bitni operativni sistem koji uključuje ugrađenu 
vezu s Internetom, Plug and Play podršku, visoke perfomance, robustnost i 
kompatibilnost sa Windowsom 95. Windows 98 uključuje sofisticiranije upravljanje 
napajanjem, podršku za više monitora i integrisanu podršku za najnoviji hardver. Takođe 
je uključena podrška za novi Win32 Driver Model (WDM), koji dopušta WDM uređaju da 
radi i pod Windowsom 98, kao i budućim verzijama Windowsa NT koristeći isti drajver. 
Poput Windows‐a 95, Windows 98 je razvijen iz Windows 3.1 platforme i uključuje 
sljedeće mogućnosti: 
•Kompletan 32 bitni kernel sa upravljanjem memorijom i preemptivnim višezadaćnim i 
višenitnim radom. 
•Puni integrisani 32 bitni datotečni sistem u zaštićenom režimu rada koji eliminiše 
potrebu za posebnom kopijom MSDOSa prilikom podizanja sistema 
•32 bitni instalabilni datotečni sistem koji podržava ..., mrežnu redirekciju i visoke 
perfomanse. Ovi datotečni drajveri podržavaju dugačka imena datoteka i otvorenu, 
modularnu arhitekturu za buduća proširenja. 
•WDM podrška dopušta uređaju koji podržava WDM da radi pod Windowsom 98 i 
budućim verzijama Windowsa NT koristeći isti drajver. 
•Poboljšana sistemska robustnost i čišćenje nakon pada aplikacije ili drajvera. To 
omogućuje stabilniji i pouzdaniji operativni system Dinamička hardverska konfiguracija 
koja smanjuje potrebu da korisnici podešavaju i restartuju ručno svoje sisteme. 
/* iz ovog teksta sami izdvojite te “velike” novosti*/ 
 
10. Klijent server model u WIndows NT. 
Okruženja operativnih sistema su implementirana kao klijent/server. 
Kao dio procesa kompajliranja, aplikacije se u toku linkovanja vežu za API operativnog 
sistema koji eksportuje okruženje operativnog sistema. U trenutku linkovanja aplikacija 
se povezuje sa klijentskim DLL‐ovima koji eksportuju API. Na primjer WIN32 program je 
klijent okruženja operativnog sistema Win32. Stoga se on povezuje sa klijentskim 
DLLovima, Kernel32.dll, gdi32.dll, i user32.dll. POSIX program se veže za psxdll.dll 
 
11. Uloga kernela u Windows NT. + 12. Čemu služi Windows Executive? 
 
NT koristi modifikovani mikrokernel koji je izmeðu čistog mikrokernela i monolitnog 
dizajna. U NTovom modifikovanom mikrokernelskom dizajnu, okruženja operativnih 
sistema se izvršavaju u korisničkom režimu kao diskretni procesi, uključujući DOS, WIN 
16, Win32, OS/2, and POSIX. Osnovni podsistemi operativnog sistema, uključujući 
Process Manager and the Virtual Memory Manager, izvršavaju se u kernel modu i 
Skripta iz OS  

kompajlirani su u jednoj datoteci. Ovi podsistemi u kernel modu nisu odvojeni procesi i 
meðusobno komuniciraju pozivom funkcija radiu maksimalnih perfomansi. 
• Svaki od ovoh operativnih sistema ima svoje API‐je, ali je nivo implementiranosti 
različit. DOS aplikacije su ograničene na one koje ne pristupaju direktno hardveru, POSIX 
i OS/2 imaju minimalan skup funkcija, dok se WIN32 stalno unapreðuje i on je zvanični 
jezik NT linije. 
• Okruženja operativnih sistema se baziraju na servisima koje kernel mod eksportuje da 
izvršava usluge koje oni ne mogu izvršavati u user modu. Te usluge pozvane u kernel 
modu su poznate kao NT‐jev prirodni API. Ovaj API ima oko 250 funkcija koji se pozivaju 
koristeći softverske izuzetke. Softverski izuzetak je hardverski podpomognuti način da se 
prelazi izmeðu kerneli i user moda. 
• Zahtjeve za prirodnim API‐jem izvršavaju funkcije u kernel modu koje se zovu sistemski 
servisi. Da bi se podržao rad sistemskiu servisi pozivaju komponente NT Executive‐a:I/O 
Manager, Object Manager, Security Reference Monitor, Process Manager, Local 
Procedure Call Facility, i Virtual Memory Manager. Sa I/O managerom blisko saraðuju 
drajveri ureðaja koji omogućuju pristup ureðajima poput diskova i tastature. 
NT kernel radi bliže sa hardverom nego Executive i sadrži kod ovisan od procesora. NT 
rasporeðivač thredova , koji se zove dispečer, nalazi se u Kernelu. Dispečer implementira 
32 nivoa prioriteta. Prioritet 0 je rezervisan za sistemski thread koji briše memorijske 
stranice. Programi se izvršavaju u nivoima prioriteta 1 do 15, dok nivoima 16 do 31 
mogu pristupiti samo administratori. 
• NT dispečer je preemptivni rasporeðivač. Procesorsko vrijeme je podijeljeno u dijelove 
koji se zovu kvantumi. Kada thread doðe do kraja svog kvantuma i dispečer predaje 
zadatak threadu istog prioriteta koji čeka. Sinhronizaciju omogućavaaju mutexi, 
semaphori, eventi, and spinlockovi. Objekte kernela mapira Executive kroz Object 
Manager i Process Manager, i oni su takvi vidljivi aplikacijama. 
• Kernel upravlja interapt vektorima. NT definiše i implementira IRQ 
nivoe u Kernelu. 
/*nije bila tacna definicija koja se trazi u ovim pitanjima pa sami skontajte iz texta sta je 
sta*/ 
 
13. Čemu unutar Windows Executive služi Object Manager? 
Object Manager obavlja zadatke upravljanja objektima koje uključuju identifikaciju i 
brojanje referenci. Kada aplikacija otvori resurs, OM locira objekt ili kreira novi. Objekti 
se označavaju identifikatorima koji se zovu handle. Oni su jedinstveni na nivou 
aplikacije, ali ne i između aplikacija. Referencni brojač prati koliko je procesa 
pristupilo resursu. 
• Identifikacija objekta se nalazi u NT‐jevom prostoru za imena. Svi djeljivi resursi imaju 
imena, kao što su imena fajlova, registry ključeva ili semafora. 
• Skoro svi servisi pozivaju Object Manager. 
 
14. Čemu unutar Windows Executive služi Cache Controller? 
Cache manager sarađuje sa VMM i drajverima za datotečni sistem. Cache manager 
održava NT globalni (dijeljen od svih fajl sistema) keš za datoteke. NT keš je datotečno 
Skripta iz OS  

orijentisan (za razliku od 95 koji je blokovno). Fizičku memoriju kešu dodjeljuje 
Working‐set tuner. Kada on izbacuje memoriju iz prostora predviđenog za keš, fajl 
system snima datoteku na disk. 
 
15. Čemu unutar Windows Executive služi Configuration Manager? 
Configuration Manager upravlja Registryjem i Win32 Registry funkcije se zasnivaju na 
Configuration manageru. Njegove usluge koristi i IO manager radi dodjeljivanja resursa 
drajverima ureðaja. 
 
16. Čemu unutar Windows Executive služi I/O Manager? 
I/O manager integriše dodatne drajvere za uređaje sa NT‐om. Drajver uređaja prevodi 
komande koje NT i aplikacije šalju uređaju i prosljeđuju zahtjeve hardveru. Ako 
Microsoft nije isporučio drajver, proizvoðač hardvera jeste. 
 
17. Čemu unutar Windows Executive služi Local Procedure Call (LPC)? 
NT‐ov Poziv lokalne procedure (LPC) oprimizira komunikaciju između aplikcija uključujući 
i okruženja operativnih sistema. LPC funkcija je bazirana na dva tipa port objekata: 
konekcijski portovi i komunikacioni portovi. Server kreira konekcijski port na koji se 
klijent kači. Nakon što klijent uspostavi tu komunikaciju, server kreira komunikacioni 
port kroz koji server i klijent prenose podatke. 
• Postoje 3 tipa LPC, kopiranje podataka, dijeljena memorija i dijeljena memorija sa 
parovima događaja (Quick LPC). NT korosto kopiranje podataka za male poruke (do 256 
bajtova). Jedna strana ( Klijent ili server) kopira poruku na port. 
 
18. Čemu unutar Windows Executive služi Memory Manager? 
Jas am nasao u prezentaciji samo VMM valjda je to to: Virtual Memory Manager ima 
dva zadatka: Da kreira i upravlja adresne mape za procese i kontroliše alokaciju fizičke 
memorije NT 4.0 implementira 32 bitni prostor, ali aplikacije mogu pristupiti prva 2G 
(user mode polovina, koja se mijenja kako se pokreću novi procesi). Druga polovina je 
(2‐4G) je kernel polovina i ona se ne mijenja. 
• Virtual Memory Manager implementira virtuelnu memoriju preko stranica, velikih 4 K 
na Intel arhitekturi ili 8K na Alpha arhitekturi. Ako procesi zahtijevaju više memorije 
nego što je fizički ima, višak se nalazi u zamjenskoj datoteci. 
• Napredne mogućnosti VMM su memorijsko mapiranje datoteka, dijeljenje memorije i 
zaštita pri pisanju strane. 
 
19. Čemu unutar Windows Executive služi Process Manager? 
Process Manager radi sa kernelom da definiše objekte procesa i tredova. Process 
Manager uokviruje kernelov objekt proces i dodaje mu identifikator procesa PID, 
pristupni token, adresnu mapu i tabelu hendlova. Slično radi i sa threadovima dodajući 
im TID identifikator i statistiku koja uključuje kada se proces i thread startovali i 
određene brojače virtuelne memorije. 
• Process Manager izvozi interfejs koji omogućava da ostali podsistemi 
Executivea i korisničke aplikacije manipulišu procesima i tredovima. Na 
Skripta iz OS  

primjer, aplikacije mogu pristupati funkcijama Process Managera da 
kreiraju procese, brišu ih i modifikuju njihove karakteristike (kao što su 
njihovi prioriteti). 
 
20. Čemu unutar Windows Executive služi PnP Manager? 
Plug and play, uveden sa Windows 95,sada je dio Windows 2000. Kompatibilni 
uređaje se mogu uvesti i Windows će konfigurisati uređaj. To će možda zahtijevati 
rekonfigurisanje drugih ureðaja. 
 
21. Čemu unutar Windows Executive služi Power Manager? 
Controls the machine's power state

22. Čemu unutar Windows Executive služi Security Reference Monitor (SRM)? 
Security Reference Monitor je vezan s Object Managerom. Object Manager poziva 
Security Reference Monitor koji provjerava prava pristupa prije nego dopusti aplikaciji 
da otvori objekt. Object manager takoðe zove Security Reference Monitor prije nego da 
aplikaciji da obavlja druge operacije nad objektima, kao što su čitanje i pisanje. 
• SRM implementira sigurnosni model baziran na sigurnosnim identifikatorima 
(SID) i Diskrecionim listama za kontrolu pristupa (DACL). Svaki proces u NT‐u 
ima pridruženi token pristupa koji sadrži SID korisnika koji posjeduje proces i 
SIDove grupa kojima on pripada. 
 
23. Čemu služi HAL.DLL? Hardware Abstraction Layer  
• HAL je NT‐ov interfejs prema samom procesoru. NT je portabilan izmeðu različitih 
procesora. Stvari specifične za pojedini procesor pišu se u ovom modulu. HAL eksportuje 
standardni procesor i drajveri se pišu za njega. 
• Čak i na pločama sa istim procesorom može biti razlika, recimo ako su jedno i 
višeprocesorske. Postoje tri verzije HAL‐a, jednoprocesorska, višeprocesorska i debug 
verzija. 
24. Novosti Windows‐2000 u odnosu na Windows NT. + 25. Novosti Windows‐XP u 
odnosu na Windows 2000. 
Od Windows 2000 kernela Microsoft je dodao široku podršku za ureðaje i plug and play. 
Promijenjen je kernel da se ubrza dizanje sistema. 
• Plavi ekran krahiranja su često izazivali nekompatibilni drajveri za ureðaje. Windows 
XP provjerava da li je drajver certificiran u Windows Hardware Quality Lab (WHQL). 
• Necertificirani drajveri mogu i dalje raditi na korisnikov zahtjev, ali postoji i crnaa lista 
drajvera koji definitivno krahiraju. Windows XP uključuje System Restore koji vraća 
sistem u stanje prije instalacije problematičnog drajvera. 
• Poboljšana podrška DLL‐ovima. Dopušteno je da se u memoriji nalazi više različitih 
verzija DLLova kako bi aplikacije koje su ovisne o specifičnoj verziji DLLa radile. 
Slabo upravljanje memorijom je bilo uzrok nestabilnosti. 
Više se ne dogaða da drajver ureðaja alocira memoriju 
koja ne postoji. Može se mapirati duplo više stranica 
memorije nego sa Win2000. 
Skripta iz OS  

• Stabilnost povećana kad je nedovoljno memorije. Operativni sistem tada smanjuje 
vlastite zahtjeve. 
• Ubrzano vrijeme podizanja operativnog sistema uz pomoć Simple Boot Flag (SBF) 
specifikacije. 
• Registry je optimizovan da što manje bude fragmentiran, i prebačen iz kernelske u 
straničenu memoriju. Njegov sadržaj se smješta u memoriju pri dizanju sistema radi 
boljih perfomansi. 
 
26. Novosti Windows‐Vista u odnosu na Windows XP. Zar ih ima!??? ☺ 
Najavljeno mnogo novih mogućnosti za jesen 2006, Windows Vista, novi grafički 
interfejs i vizualni izgled po imenu Aero, naprednije pretraživanje, komunikacija u peer‐
to‐peer mrežama, novi programerski interfejs WinFX baziran na .NET frameworku i 
VirtualPC za izvršavanje programa za ranije verzije Windowsa. 
• Puno veća sigurnost nego što ima Windows XP (ranjiv na viruse) 
/*Napomena: Puno ovih obecani stvari nije ni realizovano ili je realizovano veoma 
nakaradno. so google it! (Win FX nije 100% ralizovan)*/ 
 
27. Šta je to Windows CE? 
U Windows CE sistemima cijeli operativni sistem je u ROMu kao i aplikacije koje 
dolaze sa sistemom. Ako programski modul nije kompresovan, ROM programi se 
izvršavaju na licu mjesta. Ako je modul u ROMu kompresovan, dekompresuje se i 
prebaci u RAM. Upisivi podaci se smještaju u RAM. (ovaj je namjenjen malim uredjajima 
npr. mobitelima, PDA) 
 
28. Uloga LDTR i GDTR registara na i386. 
Load Descriptor Table Register (CPU, Intel, assembler, IC) 
Procesor "zna" gdje će naći deskriptorsku tabelu: specijalni registar GDTR čuva početnu 
adresu deskriptorske tabele. Svaki put kada se promijeni segmentni registar (što znači 
da se pristupa novom segmentu) obave se sljedeće aktivnosti: GDTR+segmentni registar 
daju adresu u memoriji odakle se uzima deskriptor 
 
29. Kako izgleda deskriptor na i386? 
U zaštiæenom modu, segment pokazuje na deskriptorske tabele koje nam daju poèetnu 
adresu segmenta Svaka deskriptorska tabela ima 8192 deskriptora, pri čemu svaki 
deskriptor u 8 bajtova opisuje memorijski segment. Imaju dvije deskriptorske tabele 
Globalni (sistemski) deskriptor 
Lokalni (aplikacijski) deskriptor 
Stoga imamo 16384 memorijska segmenta koji se mogu adresirati u zaštićenom režimu 
iz svake aplikacije. Desktiptorske tabele su u memoriji i zauzimaju do 64 kilobajta. 
 
30. Kako se linearna adresa transformiše u fizičku na i386? ovo je zadatak sa priprema! 
 
 
 
Skripta iz OS  

 
 
Memorija 
 
1. Kernel i user space. 
Memorija se dijeli na najmanje dvije particije od kojih je jedna particija namjenjena 
jezgru operativnog sistema (engl. kernel space) a druga particija, najčešće viši dijelovi, 
dodjeljena je korisničkim procesima (engl. user space). 
 
2. Razlika između swappinga i paginga. 
SWAPPING (prebacivanje procesa) – ako nemamo dovoljno mjesta u operativnoj 
memoriji za smještanje svih spremnih procesa, neki se izbacuju na disk 
PAGING (straničenje) – dijelove procesa držimo na disku, a učitavaju se po potrebi. 
 
3. Tri tipične konfiguracije memorije kod monoprogramiranja. 
1. OS se učitava u donji dio RAM‐a (Random Access 
Memory – memorija koja se može i čitati i pisati) , a 
ostatak memorije je na raspolaganju korisničkim 
programima 
2. OS se nalazi u ROM‐u (Read Only Memory – 
memorija koja se može samo čitati) na vrhu 
memorije a korisnički program ispod njega 
3. OS se nalazi u donjem delu RAM‐a, drajveri u ROM‐u na vrhu memorije a između 
korisnički program. Osnovni skup funkcija za rad sa uređajima može biti smješten u 
poseban dio ROM memorije koji se zove BIOS (Basic Input Output System). OS se oslanja 
na BIOS, a korisnički programi mogu pozivati i funkcije OS‐a i funkcije BIOS‐a. 
 
4. Razlozi za uvođenje multiprogramiranja. 
‐ rad sa više korisnika, 
‐ bolje iskorištenje procesorskog vremena (dok proces A čeka na podatke sa diska, 
procesor bi mogao izvršavati proces B, 
‐ jednokorisnički sistemi: dok editujemo tekst, želimo slušati muziku sa CD‐a, a želimo da 
nam printer isprinta nešto 
 
5. Pristupi za određivanje veličine memorijskih particija kod multiprogramiranje s 
fiksnim particijama. 
Imamo dva pristupa za određivanje veličine particija: 
1. neka su sve particije iste veličine – nedostak: particija je veličine 1MB, a u njoj 
se izvršava proces veličine 100KB, cijela particija je zauzeta, a 90% raspoložive memorije 
u toj particiji je neiskorišteno 
2. neka su particije različith veličina – imamo manje i veće particije, u svaku 
particiju stavljamo proces koji najbolje iskorištava raspoloživu memoriju 
 
 
Skripta iz OS  

 
 
6. Pristupi za određivanje listi čekanja kod multiprogramiranja s fiksnim particijama. 
Liste čekanja: imamo dvije mogućnosti: 
1. svaka particija ima svoju listu čekanja – novi proces se stavlja u listu najpogodnije 
particije (gledamo da imamo što manje neiskorištene memorije). 
‐ Nedostatak ovog pristupa: može se desiti da na listama čekanja manjih particija čeka 
100 procesa a lista neke veće particije je prazna. 
2. imamo jednu listu čekanja za sve particije – kada neka particija postaje slobodna, 
upravljač memorije pregleda listu čekanja i bira slijedeći proces. 
 
7. Relokacija s relokacionim registrom. 
Relokacioni registar definiše adresu fizičkog početka programa. Svaka logička adresa 
koju generiše program sabira se sa vrijednošću relokacionog registra i tako dobijamo 
fizičke adrese. Korisnički program počinje od nulte adrese. 
 
8. Upravljanje memorijom s swappingom. 
Svaki se proces kompletno poziva u memoriju, smije tamo biti neko određeno vrijeme i 
nakon toga se vraća na disk. 
Tehnika razmjene zahtjeva (swap) zahtjeva postojanje tri komponente: 
‐ prostor na disku (engl. swap space), 
‐ mehanizam swap‐out koji prebacuje procese iz memorije na disk, 
‐ mehanizam swap‐in koji vraća uspavani proces sa diska u memoriju. 
 
9. Multiptrogramiranje s promjenjivim particijama. 
Da bismo izbjegli problem unutrašnje fragmentacije (engl. internal fragmentation) 
uvodimo promenljive particije: veličina pojedinih particija se određuje na osnovu 
procesa koji se učita u memoriju. Nemamo unaprijed određen broj particija sa unapred 
određenim veličinama. Kada se proces učita, zauzima onoliko memorije koliko mu je 
potrebno (ako imamo dovoljno memorije). 
 
10. Algoritam first fit. +  11. Algoritam next fit. + 12. Algoritam best fit. + 13. Algoritam 
worst fit. 
1. Prvi uklapanje (FIRST FIT) je najjednostavniji algoritam za rezervaciju memorije. 
Menadžer memorijom pretražuje povezanu listu od početka do kraja i novi proces 
stavlja u prvu prazninu koja je dovoljna velika. Ako je rupa iste veličine kao i sam proces, 
jednostavno mijenjamo tip sloga iz H (praznina) u P (proces), ako je rupa veća, 
mijenjamo tip iz H na P, postavimo veličinu, zatim iza tog sloga ubacimo još jedan koji će 
predstavljati prazninu koja preostaje. Ovo je najbolji algoritam. 
2. Slijedeće uklapanje (NEXT FIT): radi na isti način kao first fit, samo ne kreće svaki put 
od početka liste, već od mjesta gde je poslednji put stao. Pokazuje slične performanse 
kao first fit. Ovaj algoritam za razliku od prethodnog zapamti poziciju gdje je zadnji put 
našao odgovarjauću prazninu te svoju sljedeće pretraživanje počinje od te pozicije. Ovaj 
algoritam se pokazao kao nešto brži nego prvo uklapanje. 
Skripta iz OS  

3. Najbolje uklapanje (BEST FIT) je slijedeći poznati algoritam svaki put pretražuje celu 
listu i traži najmanju odgovarajuću prazninu u koju može stati dati proces. Sporiji je od 
prva dva algoritma jer mora svaki put preći cijelu listu. Pored toga dolazi do veće 
spoljašnje segmentacije (gubimo više memorije nego kod prethodna dva algoritma): 
pošto uvek tražimo najmanju moguću praznina – a mala je vjerovatnoća da će ta 
praznina biti po bajtu iste veličine kao proces, pa dobijamo mnoštvo malih praznina koja 
se ne mogu ni na šta iskoristiti (bez grupisanja na jedno mesto – a to je jako spora 
operacija i izbjegava se). 
4. Najveća particija ‐ najgore uklapanje (WORST FIT): radi na isti način kao best fit, samo 
što uvek traži najveću moguću prazninu. Pretpostavka je slijedeća: ako proces stavimo u 
najveću moguću prazninu, imamo veću šansu da ostatak bude dovoljno veliko da u njega 
stane neki drugi proces. Simulacije su pokazale da je worst fit najlošiji algoritam. 
 
14. Šta je to tabela stranica? 
Računanje fizičke adrese na osnovu virtuelne adrese se radi na osnovu tabele stranica 
(page table) koja predstavlja preslikavanje virtuelnih 
stranica u fizičke stranice. Ova tabela se dodeljuje svakom procesu i mijenja se u toku 
izvršavanja procesa: ako proces želi pristupiti nekoj adresi koja se nalazi na virtuelnoj 
stranici koja nije učitana u internu memoriju, moramo izbaciti neki okvir za stranice iz 
operativne memorije (ako je cijela operativna memorija već zauzeta) na eksternu 
memoriju a iz eksterne memorije moramo dovući traženu stranicu na mjesto izbačenog 
okvira za stranice. 
 
15. Čemu služi TLB? Translation Lookaside Buffer?
TLB se koristi sa tabelama stranica kao keš za 
najčešće korištene memorijske reference. Ukoliko se referenca pronađe u TLB, adresa 
okvira se dobija gotovo istovremeno i prelazi se na pravu memorijsku referencu. Ukoliko 
se dogodi promaršaj tad se par vrijednosti za tekuću referencu mora dovesti u TLB. 
 
16. Učitavanje po potrebi i učitavanje s predviđanjem. 
Izbor stranica za učitavanje (fetch‐strategy) Imamo dvije osnovne strategije: 
1. Učitavanje po potrebi (engl. demand paging): učitavamo samo jednu stranicu – onu 
koju traži MMU. Dobra strana je što u internoj memoriji držimo samo one stranice koje 
su stvarno potrebne. Loša strana je sporost. 
2. Učitavanje sa predviđanjem (engl. anticipatory paging): OS pokuša predvidjeti, 
pogoditi koje stranice će biti potrebne za rad procesa i učitava te stranice ako baš nema 
šta da radi a ni disk nije zauzet. Ako pogodi koje stranice treba učitati, smanjuje se broj 
grešaka (page fault) i izvršavanje procesa dobija na brzinu. Ako ne, od učitavanja 
nemamo nikakvu korist. Kako cijena interne memorije pada a kapacitet raste, ova 
strategija postaje sve popularnija. 
 
17. Algoritam određivanja zamjene stranica: Optimalni algoritam. + 18. Algoritam 
određivanja zamjene stranica:  NRU . + 19. Algoritam određivanja zamjene stranica: 
FIFO. + 20.Algoritam određivanja zamjene stranica: Druga šansa . + 21. Algoritam 
Skripta iz OS  

određivanja zamjene stranica: Satni (Clock page) algoritam. + 22. Algoritam 
određivanja zamjene stranica: LRU (Least Recently Used). /*Sa ispita */ 
 
23. Beladejeva anomalija. 
Intuitivno možemo zaključiti da sistem sa više fizičkih okvira stranice proizvodi manje 
grešaka stranice. Na žalost to nije uvijek tačno. Belady je (1969) otkrio da FIFO sa četri 
okvira stranice proizvodi više grešaka nego sa tri okvira stranica. Ova čudna situacija se 
naziva Beladays anomalija. 
 
24. Lokalna strategija straničenja. + 25. Globalna strategija straničenja. 
1. Loakalni pristup: svaki proces dobija određen broj okvira i taj broj se ne može 
mijenjati. Ako dođe do page faulta, onda stranicu za bacanje biramo u skupu dodeljenih 
okvira. Nedostatak: broj virtuelnih stranica procesa je veći od dodeljenog broja okvira u 
internoj memoriji, dobar dio memorije je slobodna, ali ne možemo učitati nove stranice 
bez izbacivanja već učitanih zbog fiksnog broja pridruženih okvira. Drugi nedostatak: 
proces prelazi u neko stanje u kome od pridruženih 100 okvira koristi samo 25 – gubimo 
mnogo memorije, jer niko drugi ne može pristupiti tim nekorištenim okvirima. 
2. Globalni pristup: broj pridruženih okvira nije ograničen. Memoriju dijelimo na okvire, 
svaki proces uzima koliko može. Ako proces A generiše page fault, tada za razliku od 
lokalnog pristupa, stranicu koja će biti izbačena nećemo tražiti samo u skupu okvira 
prirdruženih za taj proces, već u skupu svih okvira. Znači može se desiti, da OS odluči da 
izbaci neki okvir procesa B 
 
26. Segmentacija programa. 
Segmentacija je metoda upravljanja memorijom koja podržava logički korisnički pogled 
na memoriju. Logički adresni prostor sastoji se od kolekcije segmenata a svaki segment 
ima jedinstveno ime i dužinu. Kako segmenti predstavljaju vlastite prostore, oni mogu 
neozavisno mjenjati veličine. Kada neki stek u odrđenom segmentu treba više prostora 
može ga dobiti. Naravno može se desiti da segment ostane bez prostora ali to se veoma 
rijetko dešava. 
 
 
________________________________________________________________________ 
DIO 4: U/I sistemi, spoljnja memorija
1.Prema namjeni  uređaji se dijele na:  
• Uređaji za dugotrajno smještanje podataka ili Storage devices (trake, diskovi) 
• Uređaji za prenos podataka ili Transmission devices(mrežne kartice, modemi) 
• Uređaji za interfejs prema korisniku ili Human‐interface devices (monitori, 
tastature, miševi). 
Prema smijeru prenosa uređaji se dijele na: 
• Ulazni (miš, skenre) 
• Izlazni ( štampač, monitor)  
Skripta iz OS  

• Ulazno‐izlazni (mrežna kartica) 

Prema količini prenesenih podataka uređaji se dijele na:  
• Uređaji koji rade sa blokovima (block devices) 
• Uređaji koji rade sa znakovima (character devices)  
• Mrežni uređaji 

2.Programirani U/I je najjednostavnija metoda za upravljanje komunikacijom između 
CPU I U/I modula. Korištenjem ove strategije CPU je odgovorna za svu komunikaciju sa 
U/I modulom pomoću postojećih instrukcija koje kontrolišu povezani uređaj ili prenos 
podataka. 
 
3.U/I  vođeni  prekidima    dozvoljavaju  CPU  da  nastavi  sa  operacijama  dok  modul  nije 
spreman da prenese podatke. Kada CPU želi da komunicira sa uređajem daje instrukciju 
odgovarajućem  U/I  kontroleru  i  nastavlja  sa  drugim  operacijama.  Kada  je  uređaj 
spreman on će prekinuti CPU. CPU može nastaviti prenos podataka kao i u prethodnom 
slučaju.  Ovo otklanja potrebu da CPU kontinualno provjerava ulazne uređaje da vidi ima 
li spremnih podataka.  
 
4.Sa memorijski mapiranim U/I čini se da je CPU kao okupirana lokacija u memoriji. Da 
bi poslao podatke U/I kontroleru CPU piše ili čita podatke iz ove lokaciju u memoriji. Ovo 
će smanjiti dostupan adresni prostor memorije. 
 
Sa izoliranim U/I čini se da U/I kontroler okupira svoj vlastiti adresni prostor i koriste se 
specijalne instrukcije za komunikaciju sa njim. Ovo daje više adresnog prostora za oboje 
memoriju U/I ali će povećati ukupni broj instrukcija. Takođe može smanjiti fleksibilnost 
sa kojim CPU adresira U/I kontrolere. 
 
 
5.DMA  (eng.  Direct  Memory  Access)  je  vrsta  sabirnice  koja  omogućava  vanjskim 
jedinicama  kao:  tvrdi  disk,  zvučne  kartice,  grafičkim  karticama  izravan  pristup  glavnoj 
memoriji  računala  za  čitanje  i  pisanje  podataka  i  to  bez  izravnog  posredovanja 
procesora. 
 
6.Device driver je kod  koji programira proizvođač uređaja, a potreban je za upravljanje 
uređajem. Zajedničko svojstvo drajvera je da je svaki od njih namjenjen za upravljanje 
određenom klasom uređaja. Pri tome, obično, jedan drajver može da opsluži više 
primjeraka uređaja iste klase. 
Razlike  koje  postoje  među  uređajima  iste  klase  sakrivene  su  u  specijalnim  modulima 
jezgra operativnog sistema koji se nazivaju upravljački programi ili drajveri (engl.  device 
drivers).  Drajveri  postoje  za  svaki  uređaj,  ali  se  korisniku  predstavljaju  kao  jedan 
univerzalni interfejs. 
 
 
Skripta iz OS  

Tipične operacije drajvera blokovskih uređaja su (npr.diskovi):  
1. operacija inicijalizacije (koja se poziva samo u toku pokretanja operativnog sistema) i  
2. operacije ulaza i izlaza blokova (koje koristi sloj za upravljanje datotekama).  
  
Tipične operacije drajvera znakovnih uređaja su (tastatura ili printer):  
1. operacija inicijalizacije (koja se poziva samo u toku pokretanja operativnog sistema),  
2. operacije ulaza i izlaza znakova (koje koristi sloj za upravljanje datotekama), kao i  
3. upravljačka operacija (koja omogućuje dinamičko podešavanje funkcionalnih  
karakteristika znakovnih uređaja, na primjer, njihove brzine prenosa znakova). 
 
7. Spuler je bafer koji privremeno čuva izlazne podatke namjenjene nekom nedjeljivom 
uređaju (npr. printeru). Korištenjem spulera proces može brzo postaviti zahtjev u bafer a 
nakon toga nastaviti sa drugim aktivnostima(korištenje  nedjeljivi uređaja kao prividno 
djeljivih). 
 
8.Formula ukupnog prosječnog vremena pristupa: 

 
 
Ts ‐ prosječno vrijeme traženja 
b  ‐broj bajta koji trebaju biti preneseni 
N ‐ broj bajta na stazi 
r ‐ rotaciona brzina, rpm 
 
9.Master Boot Record (glavni startni zapis) je prvi logički sektor tj. prvi  sektor  prve  
staze  sa  prve  površine  diska  u kojem su pohranjene informacije o svim particijama 
diska. Bios mu pristupa pri svakom pokretanju računara i on sadrži program koji očita 
particionu tabelu, provjeri koja je particija aktivna i očita prvi (startni) sektor aktivne 
particije (engl.Boot Sector). 
 
10.FCFS (first come, first served) je najjednostavniji algoritam   kod koga se zahtjevi 
opslužuju onako kako pristižu. Ovaj algoritam iako ravnopravno tretira sve zahtjeve daje 
nalošije performanse. 
 
11.SSTF (shortest seek time first)je algoritam koji kod opsluživanja zahtjeva od pristiglih 
zahtjeva  bira  onaj  koji    će  izazvati  najmanje  pomjeranje  glave.  Sličan  je  sa  SJF 
algoritmom  i  ima  optimalno  vrijeme  pozicioniranja.  Može  da  dođe  do  problema 
izgladnjvanja, kada udaljeni zahtjevi dugo čekaju da budu usluženi. 
 
12.SCAN  je algoritam ili kako se još često naziva lift algoritam koji naizmjenično pomjera 
glave do kraja diska i nazad pri tome opslužuje zahtjeve na koje nailazi na tekućem 
cilindru. Ovaj algoritam rješava problem izgladnjivanja. 
Skripta iz OS  

 
13.C‐SCAN  (kružni  SCAN)  je  varijanta  algoritma  SCAN  i  on  razrješava  problem 
favorizovanja  unutrašnjih  cilindara.  Kod  njega  zahtjevi  se  opslužuju  samo  u  jednom 
smjeru, kad glava dođe do posljednjeg cilindra, pomjera se na početak a pri povratku na 
početak ne opslužuje zahtjeve. 
 
14. LOOK je varijanta algoritma SCAN. Glave se ovde ne pomjeraju od početka do kraja 
diska nego do posljednjeg zahtjeva koji se nalazi u tom smjeru i pri tome opslužuje 
zahtjeve u oba smjera. 
 
15. C‐LOOK je varijanta algoritma SCAN. Glave se ovde ne pomjeraju od početka do kraja 
diska  nego  do  psoljednjeg  zahtjeva  koji  se  nalazi  u  tom  smjeru  i  pri  tome  opslužuje 
zahtjeve samo u rastućem smjeru do posljednjeg zahtjeva u tom smjeru.  
 
16. RAID nivo 0  
 RAID  nivo  0  nije  pravi    član  RAID  familije  s  obzirom  da  ne  uključuje  redundansu. 
Međutim,  postoji  nekoliko  područja  primjene  gdje  su  performanse  i  kapacitet  te  niža 
cijena  prioritet  u  odnosu  na  pouzdanost.  Korisnici  i  sistemski  podaci  su  distribuirani 
preko  cijelih  diskova  u  nizu.  Ako  U/I  zahtjevi  čekaju  na  dva  različita  bloka  podataka 
postoji  velika  šansa  da  su  ti  blokovi  na  različitim  diskovima.  Zato  ti  zahtjevi  mogu  biti 
obrađeni  paralelno.  Osim  jednostavnog  distribuiranja  podataka  preko  niza  diskova, 
podaci  su  podijeljeni  na  trake  (striped)  Svi  korisnici  i  podaci  se  posmatraju  kao  da  su 
smješteni  na  jedan  veliki  logički  disk.  Disk  je  podijeljen  na  trake,  koje  mogu  biti  fizički 
blokovi, sektori ili neke druge jedinice. Ove trake su po round robin metodi mapirane na 
sve članove niza. Prednost ove šeme je da ako se jedan U/I zahtjev sastoji od zahtjeva ka 
više traka one mogu biti obrađene u paraleli.   
 
17. RAID nivo 1  
Kod RAID 1 nivoa redundansa se postiže prostim dupliciranjem svih podataka. Podaci se 
dijele na trake kao kod RAID 0 nivoa, samo u ovom slučaju svaka logička traka se mapira 
na dva odvojena fizička diska. Svaki disk ima svoj disk ogledalo  (engl. mirror disk) koji 
sadrži  
iste podatke.  
 Postoji veći broj pozitivnih aspekata RAID 1 organizacije:  
(1) Zahtjev za čitanje može se uslužiti sa bilo kog od dva diska koji sadrže iste podatke, a 
nastoji se da se smanji vrijeme traženja i rotaciono kašnjenje.  
(2) Zahtjev za pisanje treba da se uradi na oba diska koji sadrže te podatke ali to se može 
učiniti paralelno.   
 Osnovna mana RAID 1 nivoa je cijena jer zahtjeva dvostruki prostor logičkog diska koji 
podržava.   
 
18.RAID nivo 5  
 RAID 5 je organizovan da distribuira trake parnosti preko svih diskova. Tipično se koristi 
round‐robin  šema  alokacije.  Od  osnovnih  struktura  RAID  5  predstavlja  najbolju 
Skripta iz OS  

kombinaciju: posjeduje paralelizam, konkurentnost, dobar je za velike upise, a svi diskovi 
su ravnomjerno opterećeni.   
 
19. RAID nivo 6  
RAID 6 predstavlja jedinu RAID šemu koja može razriješiti problem u slučaju otkaza više 
od  jednog  diska.  Kod  RAID  6  šeme  koristi  se  računanje  dvije  različite  parnosti  koje  se 
smještaju  u  blokove  na  različite  diskove.  RAID  6  šema  koja  ima  podatke  za  N  diskova 
zahtjeva ukupno N+2 diska.  
 
 
 
Datoteke 
1. Načini gledanja na datoteke. 
 
2. Šta su to datotečni atributi? 
 
Datotečni atributi su dodatne informacije o svakoj datoteci koje služe da bi se kvalitetnije 
upravljalo datotekom. Neko ih naziva i neta podacima. Imamo sljedeće atribute: 
• Ime:  simboličko ime datoteke. Mnogi OS‐i podržavaju dvodjelno ime datoteke 
(Ime_datoteke.tip_datoteke, npr. Skola.txt) 
• Tip:  
1. Obicne datoteke – binarne(.exe) ili ASCII (sve .cpp i sve .txt) 
2. Direktoriji – sistemske datoteke koje održavaju strukturu datotečnog sisitema 
3. Specijalne datoteke znakovnog tipa – za modeliranje U/I uređaja kao što su 
terminali,štampači i uređaji za pristup mreži 
4. Specijalne datoteke tipa bloka ‐ za modeliranje diskova 
• Lokacija: pokazivač na uređaj i pokazivač na lokaciju datoteke na tom uređaju 
• Veličina: tekuća veličina i maksimalna moguća veličina 
• Zaštita: informacije za upravljanje pristupom, ko može čitati, ko može pisati 
• Vrijeme, datum, korisničke informacije: vrijeme kreiranja, vrijeme posljednje 
modifikacije, vrijeme posljednjeg korištenja. 
 
3. Unix poziv creat. 
 
«Create» Kreiranje :  ovim sistemskom pozivom se vrši kreiranje datoteke bez podataka. Svrha 
sistemskog poziva je da se nova datoteka kreira i da joj se postave određeni atributi.   
 
4. Unix poziv read. 
 
«Read» Čitaj:  Podaci se čitaju iz datoteke. Obično, čitaju se bajti od tekuće pozicije u datoteci. 
Pozivaoc mora navesti koliko je podataka potrebno pročitati kao i spremnik u koje će ih upisati. 
 
 
 
 
Skripta iz OS  

   
5. Unix poziv write. 
 
«Write» Piši:  Podaci se pišu u datoteku, obično na tekuću poziciju. Ako je tekuća pozicija kraj 
datoteke,  onda  se  povećava  veličina  datoteke.  Ako  je  pozicija  u  sredini  datoteke,  postojeći 
podaci se prepisuju i gube zauvijek.   
 
6. Mapiranje datoteke u memoriji. 
 
Mapiranje datoteka u memoriju koristi se zbog nepogodno pristupa datotekama.  Postoje dva 
sistemska  program  kojim  se  datoteka  mapira  i  mapiranje  uklanja,  mmap  i  unmap.  Mapiranje 
datoteka najbolje radi u sistemu koji podržava segmentaciju. U takvom sistemu, svaka datoteka 
se  može  mapirati  u  svoje  sopstvene  segmente  tako  da  bajt  k  u  datoteki  predstvalja  i  bajt  k  u 
segmentu. 
 
(Pročitajte radi shvatanja principa mapiranja datoteka u memoriju) 
 
Na  primjer,  pretpostavimo  da  je  datoteka  ”f”  velika  64  KB  i  mapirana  je  u  virtuelni  adresni 
prostor počevši od 512 K. Kada bilo koja mašinska instrukcija  čita sadržaj memorijske adrese na 
512 K, tada ona dohvata bajt 0 datoteke. Slično, pisanje na adresu 512K + 21000 modifikuje bajt 
21000 datoteke. Kada proces završi izvođenje, modifikovana datoteka  će ostati na disku kao da 
su promjene izvršene sistemskim pozivima seek i write.   
 
Interne sistemske tabele su promjenjene tako da datoteka postane rezervna memorija  
za region 512K do 576K. Dakle, čitanje sa 512 K uzrokuje grešku stranice dovlačeći u  
stranicu 0 datoteke sadržaj. Slično, pisanje 512 K + 1100 uzrokuje grešku stranice,  
dovlačeći u stranicu koja sadrži tu adresu poslije čega se može obaviti pisanje. Ako se  
stranica ikada izbaci zbog algoritama zamjena stranica, on se zapisuje ponovno na  
odgovarajuće mjesto u datoteku. Kada proces završi izvođenje, svi mapirane,  
modifikovane stranice se pišu nazad u njihove odgovarajuće datoteke.   
 
 
Problemi kod mapiranja 
1. Sistem ne zna tačnu dužinu izlazne datoteke 
2. Ako  je  datoteka  mapirana  od  strane  jednog  procesa  a  otvorena  za    čitanje  od  drugog 
procesa. 
Ako prvi  proces modifikuje stranicu, ova promjena se neće vidjeti na datoteci sve dok 
stranica ne bude zapisana.  
3. datoteka može biti veća od segmenta, ili čak veća i od virtuelnog adresnog prostora. 
 
7. Jednonivovski, korisnički i hijerarhijski direktorij. 
Skripta iz OS  

 
Datotečni sistem tipa drvo. (a) Jedan direktorij djeljen među korisnicima. (b) 
Jedan direktorij po korisniku. (c) «Drvo» po korisniku. Slova označavaju direktorij ili 
vlasnika datoteke. Problemi sa jednim direktorijem u sistemu sa više korisnika je da 
različiti korisnici mogu slučajno dovesti do brisanja datoteka. Da bi izbjegli ovakva 
ponašanja, sljedeči korak bio je da se svakom korisniku da direktorij u okviru koga može 
kreirati svoje datoteke. Na ovaj način imena izabrana od strane jednog korisnika ne utiču 
na imena koja je izabrao drugi korisnik.  
Hijerarhija u dva nivoa eliminiše konflikt između korisnika. Pojavljuje se drugi 
problem, kada jedan korisnik ima veliki broj datoteke koje nije moguće lako organizovati 
unutar jednog (čitaj svog) direktorija. Pojavljuje se potreba grupisanja datoteka u manje 
grupe, recimo, profesor želi da studentske domaće zadaće grupiše u jedan direktorij a 
predavanja da čuva u drugom direktoriju. Za ovakav pristup je potrebno imati 
hijerarhijsku strukturu direktorija, koju nekada nazivamo i strukturom drveta. Kod ovog 
pristupa, svaki korisnik može imati direktorija koliko mu treba tako da datoteke može 
grupisati na prirodniji način. Ovaj pristup je prikazan na slici 5.6.c. Na slici su prikazana 
tri direktorija A, B i C koji se nalaze u korjenskom direktoriju (engl. root) od kojih svaki 
pripada različitom korisniku; dva od njih imaju kreirane 
poddirektorije za projekte na kojima rade. 
 
8. Šta sadrži Superblok? 
 
Superblok – predstavlja sistemske informacije koje sadrže opis datotečnog sistema, raspored 
diska. 
Neki od podataka koji se čuvaj u seperbloku su: 

• Veličina bloka, 
• Broj blokova unutar particije, 
• Broj slobodnih blokova, 
• Broj slobodnih inoda 
• Broj prve inode na fajlsistemu (root direktorijum). 

 
Skripta iz OS  

 
9. Kontinualna alokacija datoteka. 
Najednostavnija alokaciona šema je smještanje svake datoteke u niz susjednih diskovnih 
blokova. Dakle, na disku sa 1 KB blokovima, 50 KB datoteka će alocirati 50 susjednih 
diskovnih blokova. Alokacija kontinualnog diskovnog prostora ima dvije značajne 
prednosti. Prva, jednostavna je za implementaciju jer vođenje evidencije o smještenim 
blokovima se redukuje na zapisivanje samo dva broja: diskovna adresa prvog bloka 
datoteke i broj blokova u datoteki. Pomoću broja prvog bloka u datoteci, jednostavnim 
operacijama se može doći na adresu željenog bloka. Druga prednost predstavlja 
performanse kod čitanja koje su izuzetno dobre jer cijela datoteka može biti pročitana u 
samo jednoj operaciji čitanja. Nažalost, kontinualna alokacija ima i svoje nedostatke: u 
toku rada disk postane fragmentisan, i sastoji se od datoteka i šupljina na disku. 
 
10. Alokacija datoteka ulančanim listama. 
Druga metoda za smještanje datoteka se izvodi vođenjem evidencije za njene diskovne 
blokove koristeći ulančanu listu. Prva riječ svakog bloka se koristi kao pokazivač na 
sljedeći blok. U odnosu na kontinualnu alokaciju, u ovoj alokacionoj tehnici se može 
koristiti svaki blok na disku i na taj način nema gubitka diskovnog prostora zbog 
fragmentacije diska izuzev interne fragmentacije koja se javlja u zadnjem bloku svake 
datoteke. Pristup datotekama se obavlja sekvencijalno, a u slučaju da pristupamo 
datoteci random, pristup je izuzetno spor jer je potrebno pročitati sve blokove ispred da 
bi se došlo na željeni blok. Kod ove alokacione tehnike, veličina bloka nije više jednaka 
stepenu broja 2 jer na početku ima pokazivač koji pokazuje na sljedeći blok. Rad sa 
ovakvim blokovima je manje efikasan jer je potrebno uložiti dodatni, interni, rad kako bi 
se, recimo, dva bloka koristila a de se eliminišu pokazivači (možda je potrebno izvršiti i 
kopiranje što utiče na performanse programa koji koristi takve blokove podataka). 
 
11. FAT datotečni sistem. 
Obje mane alokacione tehnike sa ulančanim listama mogu 
se razrješiti uklanjanjem pokazivača iz svakog diskovnog 
bloka i premještanjem u memoriju. Za tu svrhu koristimo 
tabelu koja se naziva File Allocation Table (FAT).    
 
12. Indeksni čvorovi. 
Indeksni čvor predstavlja strukturu podataka pridruženu 
jednoj datoteci na disku. Ova struktura podataka se sastoji od atributa datoteke i 
pokazivača na blokove datoteke ili blokove sa diskovnim adresama, tkz. indeksne 
blokove. Velika prednost ove sheme u odnosu na ulančanu listu blokova datoteke u 
memoriji je da indeksni čvor treba da bude u memoriji samo kada se odgovarajuća 
datoteka otvori. 
 
13. Direktoriji u Windows 98. 
14. Direktoriji u Unixu. 
15. Ulančana lista slobodnih blokova. 
Skripta iz OS  

16. Bitmapa slobodnih blokova. 
 
17. Backup. 
 
Backup  koristima  kada  želimo  osigurati  svoje  podatke  od  uništenja.  Firme  koje  raspolažu  sa 
velikom količinom podataka vrše spašavanje podataka jednom dnevno na trake. Moderne trake 
mogu  čuvati  
desetine ili čak i stotine GB, a nisu ni skupe.  
 
Spašavanje podataka na trake se izvodi da bi se radilo sa jednim od dva moguća  
problema: 
• Oporavak  od  katasrofalnog  događaja  (oporavak  računarskog  sistema  zbog  uništenje 
diska, požara, poplave ili drugi katasrofalan događaj.)   
•  Oporavak zbog nepažnje (slučajno brisanje podataka. Npr. Kada obrišemo neki fajl on se 
prvo premjesti u Recycle Bin i ako želimo možemo ga vratiti na mjesto gdje je potreban ) 
 
 
18. Keširanje disk blokova. 
 
Keširanje  je  najčešća  tehnika  koja  se  koristi  da  redukuje  diskovni  pristup  je  keširanje  blokova. 
(fra. Cache‐sakriti). U ovom kontekstu, keš predstavlja skup blokova koji logički pripadaju disku 
ali se drže u memoriji iz razloga povećanja performasi.   
 
Različiti  algoritmi  se  koriste  za  upravljanje  kešom,  ali  najčešći  je  onaj  kojim  se  provjeravaju  svi 
zahtjevi za čitanje da bi se vidjelo da li su potrebni blokovi u kešu. Ako jesu, zahtjev za čitanje 
može se uraditi bez diskovnog pristupa. Ako blok nije u kešu, prvo ga je potrebno pročitati u keš 
a  onda  kopirati  tamo  gdje  je  potrebno,  recimo,    u  korisnički  bafer.  Sljedeći  zahtjevi  koji  se 
obavljaju nad istim blokom mogu se izvršiti iz keša.   
 
Korisnički interfejs 
 
1.Window manager 
 
Windows Manager je obični proces u pozadini. Promjenjiv u letu. Registrovan X server 
prima informacije kada se aplikacija starta,  otvaraju prozori itd. 
– Premješta prozore 
– Iscrtava okvire 
– Održava interakciju za širenje, minimiziranje, maksimiziranje. 
– Šalje aplikaciji resize/move instrukcije 
Mogu imati različite stvari 
– Start menu,  Ikone,  Dock, toolbar 
 
2.Dvije osnovne grupe shellova u Unixima su: 
•  Bourne shell tip: 
1.  Bourne shell (sh) – Najraniji  
2.   Almquist shell (ash) ‐ malo zahtjevan   
Skripta iz OS  

3.   Bourne‐Again shell (bash) – Najpopularniji  
4.   Debian Almquist shell (dash) ‐ash Debian. 
5.   Korn shell (ksh) ‐ autor David Korn 
6.   Z shell (zsh) ‐ najkompletniji 
7.   Busybox – Shell i mali programi u jednom . 
•  C shell tip: 
1.  C shell (csh)   
2.  TENEX C shell (tcsh) 
 
3. Razlike između CMD, COMMAND i PowerShell u Windowsu. 
 
COMMAND  
Korišten u MSDOS i svim verzijama Windowsa. U DOS memoriji u dva dijela rezidentnom 
koji učitava ostatak i tranzijentnom koji interpretira komande i briše se iz memorije. Radi 
tako što se prvo izvrši DOS poziv za očitavanje tastature. Nakon dovoljnog broja 
interapta tastature tasteri su upisani u bafer. Otkucana komanda se poredi s listom 
komandi, ako se nađe komanda u listi, skače se u podprogram koji poziva odgovarajuće 
disk pozive. Ako se ne nađe pokuša se učitati program s isti imenom 
 
 
CMD 
‐Od Windows NT  
 SETLOCAL/ENDLOCAL, interne CALL i GOTO labele, izrazi u SET i IF, poboljšana FOR, 
historija komandi, dovršavanje komandi uz pomoć TAB,  PUSHD,  POPD. 
 
POWERSHELL 
Koristi .NET klase. Cmdleti koji se pokreću obavljaju funkcije. Svaki cmdlet ima alias koji 
liči na DOS ili Unix komande. Npr. aliasi za Remove‐Item  su:   ri, del, rmdir, rd, rm 
 
//CMD.EXE is the "regular" Windows 2000 command processor and COMMAND.COM is 
the DOS compatibility mode shell. CMD.EXE is the native Windows NT/2000/XP 
shell. That is, CMD.EXE is the more portable command processor. (Type SET 
and press inside a CMD.EXE console and you'll see that CMD.EXE exposes more 
environment variables.) Also, CMD.EXE does not call AUTOEXEC or CONFIG and it's fully 
32‐bit.// 
 
4. UNIX Desktop 
 
 UNIX Desktop  je graficki dio interfejsa sacinjen od displey, windows  i session 
managera. Neki od Unix desktopa : CDE, GNOME, KDE 

You might also like