Professional Documents
Culture Documents
Scripta Iz OS A
Scripta Iz OS A
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