Professional Documents
Culture Documents
Operativni Sistemi Ispit Singidunum
Operativni Sistemi Ispit Singidunum
Upravljanje memorijom
Uvodne napomene
Memorija je niz memorijskih reči od kojih svaka ima jedinstvenu adresu. Prilikom izvršavanja procesa Procesor na
osnovu vrednosti programskog brojača čita instrukcije iz memorije. Instrukcije u toku izvršenja mogu zahtevati: Čitanje
podataka sa drugih lokacija. Upis podataka na druge memorijske lokacije.
Pitanja: Da li proces bez memorije može nešto da uradi? Da li može da se izvrši? Da li ima logike izvršavati proces sa
diska? Odgovori na ova pitanja kažu da je fizička memorija pored procesora fundamentalni deo računarskog sistema!
Sloja za upravljanje memorijom (engl. memory manager-a):
Vodi računa o korišćenju memorije.
• Dodeljuje memoriju procesima kad je zatraže.
• Oslobađa memoriju od procesa kad završe svoje aktivnosti.
• Vrši razmenu između memorije i diska (kada glavna memorija nije dovoljno velika da sadrži sve procese).
Memory manager takođe:
• Razdvaja fizički i logički adresni prostor.
• Prevodi relativne (relokatibilne) adrese u fiksne (vezivanje adresa).
• Obavlja relokaciju (kompakciju, odnosno defragmentaciju operativne memorije). ...
Vezivanje adresa
Program se nalazi na disku kao izvršna binarna datoteka. Program se sa diska učitava u memoriju unutar adresnog
prostora novokreiranog procesa. Veći broj procesa deli operativnu memoriju računara. Programer ne može unapred
odrediti fiksne memorijske lokacije za smeštaj programa. Zato koristi simboličke adrese.
Kako se simboličke adrese pretvaraju u apsolutne?
U izvornom kodu programa imamo simboličku promenljivu count .
Kompajler prevodi ovu simboličku adresu u relativnu (relokatibilnu). Promenljiva count se npr. vezuje na lokaciju na
adresi 14 u odnosu na početak modula.
OS prevodi relativne adrese u fiksne prilikom učitavanja programa u memoriju.Punilac pretvara relokatibilnu adresu u
apsolutnu adresu (74014).
Vezivanje adresa (engl. binding) je mapiranje iz jednog adresnog prostora u drugi.
Logički i fizički adresni prostor
Logička adresa je adresa koju generiše procesorka instrukcija. U fazi izvršavanja programa naziva se virtuelna adresa.
Fizička adresa je adresa same memorijske jedinice. Logički (virtualni) adresni prostor je skup svih logičkih adresa
koje generiše program. Fizički adresni prostor je skup svih fizičkih adresa koje njima odgovaraju. Jedinica za
upravljanje memorijom – MMU (engl. Memory Management Unit) je hardverski uređaj koji mapira virtuelni adresni
prostor u fizički. Najprostija MMU šema: relokacioni registar.
• Relokacioni registar definiše adresu fizičkog početka programa.
• Fizička adresa = logička adresa koju generiše program + vrednost relokacionog registra.
• Logički adresni prostor koji se nalazi u opsegu [0, max] se mapira u opseg [R+0, R+max]. R je vrednost
relokacionog registra (fizička adresa početka programa). Vrednost max je gornja granica.
Zaštita memorije obuhvata:
• Zaštitu OS od korisničkih procesa.
• Međusobnu zaštitu korisničkih procesa po pitanju pristupa memorijskim sekcijama.
Dva registra: Relokacioni registar (sadrži najnižu adresu procesa). Limit
registar (sadrži najveći opseg logičkih adresa procesa). MMU mapira svaku
logičku adresu procesa dinamički: Proverava da li je logička adresa manja od
vrednosti limit registra. Ako jeste, dodaje vrednost relokacionog registra.
Relokacioni i limit registar su dva registra procesora. Pune se onda kada proces
dobija procesor na izvršenje. Dispečer čita vrednosti ova dva registra iz
konteksta procesa i postavlja ih prilikom aktiviranja procesa.
Razmena (swap) Proces se mora prilikom izvršavanja nalaziti u operativnoj
memoriji. Proces se može privremeno prebaciti iz memorije na disk, kako bi
se oslobodila memorija. Oslobođena memorija puni se drugim procesom. Posle
izvesnog vremena, proces se može vratiti sa diska u memoriju kako bi nastavio
izvršavanje. Koristi se u prioritetnim šemama za raspoređivanje procesa.
Procesi visokog prioriteta se čuvaju u memoriji. Procesi niskog prioriteta se
upisuju na disk i čekaju da se oslobodi memorija. Najveći deo vremena u
razmeni otpada na transfer podataka između memorije i diska. Trajanje jedne
razmene zavisi od: Količine podataka za transfer. Karakteristika diskova i
pratećeg hardvera. To vreme je znatno veće u odnosu na performanse
savremenih procesora! Ne preporučuje se često korišćenje tehnike
razmenjivanja!
1
Suština dinamičkog punjenja (engl. dynamic loading):
• U memoriju se smeštaju samo neophodni delovi programa.
• Odgovarajuće rutine se učitavaju u memoriju samo kada ih program pozove.
Da bi to bilo moguće, sve rutine programa se čuvaju na disku u relokatibilnom formatu. Kada se rutina pozove iz
programa:
• Proverava se da li je ona već u memoriji
• Ako nije, poziva se punilac da je učita u memoriju.
Prednosti:
• Rutine koje nisu trenutno potrebne ne zauzimaju mesto u memoriji.
• Zgodno je za velike programe.
• Ne zahteva specijalnu podršku od operativnog sistema. Programer mora sam da projektuje svoje programe da
koriste principe dinamičkog punjenja. OS može pomoći programeru tako što obezbeđuje biblioteku za
dinamičko punjenje.
Tehnika preklapanja (engl. overlay) Primer: program čine dve relativno nezavisne komponente koje se izvršavaju
jedna za drugom. Programer može da podeliti izvorni kod programa na dva dela.
Veličine programskih komponenti:
• Prvi deo (80KB)
• Drugi deo (70KB)
• Zajednički podaci (20KB)
• Zajedničke rutine (30KB).
Za izvršavanje programa potrebno je najmanje 200KB slobodne memorije. To znači da program ne može da se
izvršava na hipotetičkom sistemu sa 150KB memorije. Pošto su komponente nezavisne: Prilikom izvršavanja prvog
dela programa, kod drugog dela ne mora biti učitan u memoriju! Drugi deo programa se može izvršavati ukoliko prvi
deo nije prisutan u memoriji.
Možemo da definišemo dve overlay komponente:
• Overlay A: zajednički podaci i rutine + kod za prvi deo programa Ukupno 130KB.
• Overlay B: zajednički podaci i rutine + kod za drugi deo programa Ukupno: 120KB.
Programu se mora dodati overlay drajver koji upravlja overlay tehnikom. Pretpostavimo da on zauzima 10KB
memorije.
Kako se program izvršava?
• Prva faza: overlay drajver + overlay A. Zauzima 140KB i može da se izvrši na sistemu sa 150KB.
• Kada overlay A završi svoje, drajver će učitati u memoriju overlay B preko njega.
• Druga faza: overlay drajver i overlay B. Zauzima 130KB i može da se izvrši na sistemu sa 150KB memorije.
Alokacija memorije
Kontinualna alokacija memorije. Logički i fizički adresni prostor procesa sastoje se od kontinualnog niza
memorijskih adresa. Prosto rečeno, svaki proces dobija jedan kontinualni deo memorije. Metode:
• Multiprogramiranje sa fiksnim particijama
• Multiprogramiranje sa particijama promenljive veličine.
Diskontinualna alokacija memorije. Fizički adresni prostor procesa nije realizovan kao kontinualan niz memorijskih
adresa. Metode:
• Straničenje
• Segmentacija
• Straničenje sa segmentacijom.
Multiprogramiranje sa fiksnim particijama
Podela cele fizičke memorije na više delova fiksne veličine. U jednom delu se može naći samo jedan proces. Stepen
multiprogramiranja je jednak broju memorijskih particija. Novi proces se smešta u najmanju moguću particiju.
Problem: interna fragmenatcija. Delovi memorije koji su veći od veličine procesa potpuno neiskorišćeni. Svi procesi
se stavljaju u red čekanja (engl. input queue) koji može biti:
Jedinstven za ceo sistem. Problem: veliki neiskorišćen prostor (mali procesi u velikim particijama).
Poseban za svaku particiju. Problem: veći broj malih procesa može čekati u redu za male particije. Velike particije
ostaju neiskorišćene. U tom slučaju ima dovoljno memorije, ali se ne koristi.
Multiprogramiranje sa particijama promenljive veličine
Memorija se deli dinamički. Šupljina (hole) je slobodan kontinualni deo memorije. Šupljine raznih veličina su
razbacane po memoriji! Kada proces naiđe u sistem traži se šupljina dovoljno velika da zadovolji proces. Sav prostor
koji proces ne zauzme od cele šupljine, predstavlja novu šupljinu u koju se može smestiti drugi proces.
Operativni sistem vodi evidenciju o: Particijama koje su dodeljene procesima I Slobodnim šupljinama.
Metode vođenja evidencije:
• Bit mape
• Povezane liste
• Sistem udruženih parova.
2
Bit mape Memorija se deli na delove iste veličine. Svakom delu dodeljujemo po jedan bit: 1 označava da je taj deo
zauzet, a 0 da je slobodan. Niza nula i jedinica predstavlja bit mapu (engl. bitmap) memorije. Pitanje: koje veličine
treba da budu ovi delovi memorije? Ako su delovi manji, bit mapa je veća! Veličina delova 32 bita za bit mapu
koristimo 1/33 ukupne memorije. Veličina delova 16 bita za bit mapu koristimo 1/17 od ukupne memorije Problem:
pretraživanje slobodne memorije (niz nula) je sporo. Ako su delovi veći, memorija je loše iskorišćena. Primer: delovi
veličine 4KB. Ako proces zauzme 1KB od nekog dela, 3KB ostaje neiskorišćeno. 3KB ne može biti alocirano od strane
drugog procesa jer je formalno zauzeto.
Povezane liste (engl. linked lists) gradimo od slogova sledeće strukture:
• Tip memorije (P znači da se radi o procesu, a H da se radi o slobodnoj memoriji)
• Početna adresa dela memorije koju opisuje dati slog
• Dužina opisane memorije
• Pokazivač na sledeći slog.
Upravljanje memorijom se odvija na sledeći način: Prilikom zauzimanja memorije u povezanoj listi se traži rupa (slog
tipa H) dovoljne veličine. Ako se nađe rupa odgovarajuće veličine, umesto H se upisuje P. Ako je rupa veća ubacuje se i
novi čvor tipa H. Kada proces završi sa radom, oslobođa se zauzeta memorija.
Sistem udruženih parova (buddy system) Koristi se po jedna lista za blokove slobodne memorije veličine 2 n bajtova
(1, 2, 4, ... ) Primer: Imamo 1MB memorije. Treba nam 21 lista (2 0 =1, 2 2 =2 ... 2 20 =1MB). Na početku rada, cela
memorija je prazna. U listi za rupe veličine 1MB imamo jedan slog. Ostale liste su prazne.
Proces A veličine 70KB nailazi u sistem. Može se smestiti u particiju veličine najmanje 128KB (mora biti stepen od 2).
Lista koja sadrži particije te veličine je prazna. Particija veličine 1MB deli se na dva dela od 512KB (ovi delovi se
zovu drugovi – engl. Buddy). Zatim se prvi deo deli na dva dela od 256KB, pa još jednom, na dva dela od 128KB. U
prvu particiju od 128KB smešta se proces! Nakon smeštanja procesa lista od 128Kb sadrži dva čvora:
• Jedan je zauzet – P
• Drugi je slobodan – H
Liste od 256KB i 512KB sadrže po jedan slobodan čvor:
P (128KB) {proces A:70KB, neiskorišćeno:58KB}
H (128KB)
H (256KB)
H (512KB)
Nedostatak ovog sistema je unutrašnja fragmentacija. Proces veličine 70KB zauzima čitavu particiju od 128KB.
58KB memorije ostaje neiskorišćeno (unutrašnja fragmentacija).
Proces B veličine 35KB nailazi u sistem. Može se smestiti u particiju veličine 64KB. Lista za takve particije je prazna.
Slobodna particija od 128KB deli na dva dela veličine 64KB. Proces B se smešta u jednu particiju, dok druga ostaje
prazna. Sada imamo:
• Po jedan čvor u listama za particije veličine 128KB, 256KB i 512KB
• Dva čvora u listi za particije veličine 64KB.
P (128KB) {proces A:70KB, neiskorišćeno:58KB}
P (64KB) {proces B:35KB, neiskorišćeno:29KB}
H (64KB)
H (256KB)
H (512KB)
Proces C veličine 80KB nailazi u sistem. Može se smestiti u particiju veličine 128KB. Lista za takve particije je prazna.
Slobodna particija od 256KB deli na dva dela veličine 128KB. Proces C se smešta u jednu particiju, dok druga ostaje
prazna. Sada imamo:
P (128KB) {proces A:70KB, neiskorišćeno:58KB}
P (64KB) {proces B:35KB, neiskorišćeno:29KB}
H (64KB)
P (128KB) {proces C:80KB, neiskorišćeno:48KB}
H (128KB)
H (512KB)
Stanje memorije nakon dodele memorije procesima A, B i C. Tri procesa ukupne veličine 70+35+80=185KB Zauzimaju
128+64+128=320KB memorije 135KB ostaje neiskorišćeno kao posledica unutrašnje fragmentacije. Susedne rupe iste
veličine predstavljaju drugove. Susedni procesi to nisu. Kada neki proces završi rad, particija u kojoj se proces nalazio
postaje rupa. Rupa se spaja sa susedom (svojim drugom ukoliko on postoji). Time se formira duplo veća rupa. Važno:
veličina novoformirane rupe mora da bude stepen broja dva! Ukoliko to nije slučaj, spajanje se ne vrši.
Algoritmi za izbor slobodne particije Po pravilu, postoji više šupljina koje se mogu iskoristiti za smeštaj procesa, a u
tom kontekstu postoji i više algoritama za alokaciju šupljina.
• Prvo podudaranje (engl. first-fit). Pretraživanje se odvija ili od početka liste. Pretraga staje kada se nađe prva
odgovarajuća šupljina bez obzira što ima i boljih rešenja. Vreme pretraživanja je minimalno, jer se ne
pretražuje cela lista.
• Najbolje podudaranje (engl. best-fit).Procesu se dodeljuje najmanja šupljina koja je dovoljno velika za
smeštaj procesa. Od postojeće šupljine nakon smeštaja procesa ostaje najmanja moguća šupljina. Pretražuje se
cela lista (intenzivna pretraga) osim ako nije uređena po veličini.
• Najgore podudaranje (engl. worst-fit). Procesu se dodeljuje najveća slobodna šupljina. Od postojeće
šupljine nakon smeštaja procesa ostaje najveća moguća šupljina. Pretražuje se cela lista (intenzivna
pretraga) osim ako nije uređena po veličini.
3
Fragmentacija
• Unutrašnja (interna) fragmentacija.
• Procesu je dodeljena memorijska particija veća od memorije koju zahteva proces. Preostala memorija je
neupotrebljiva.
• Spoljašnja (eksterna) fragmentacija. Ukupan memorijski prostor može da zadovolji zahtev procesa ali nije
kontinualan. Eksterna fragmentacija se može smanjiti kompakcijom memorije. Sadržaj memorije se
ispremešta. Dobijaju se veće šuplljine, odnosno kontinualan prazan prostor. Problem: Sistem mora da prekida
procese i da ih privremeno prebacuje na disk. To je vremenski zahtevno. Kompakcija svakako unosi
degradaciju performansi sistema.
Straničenje
Straničenje je metoda sa hardverskom podrškom na nivou procesora. Fizička memorija se deli na blokove fiksne
veličine: okvire (engl. page frames). Logički adresni prostor se deli na blokove istih veličina: stranice (engl. pages).
Veličine stranica su po pravilu stepen broja 2. Svakoj logičkoj stranici odgovara jedna fizička. Korespodencija između
njih se čuva u tabeli stranica (engl. page table). Kontinualni logički prostor procesa može da se razbaca po fizičkoj
memoriji. Svaka logička adresa koju generiše procesor se deli na dva dela:
• Broj stranice (p, engl. page number). Koristi se kao indeks u tabeli stranica koja sadrži baznu adresu okvira.
Bazna adresa predstavlja viši deo adrese.
• Pomeraj unutar stranice (d, engl. page offset). Definiše položaj u odnosu na samu stranicu.
Primer: imamo memoriju veličine 32B. Definišimo 8 okvira veličine 4B.
Korisnički proces zauzima 4 logičke stranice. Stranica 0 – logičke adrese 0-3
Stranica 1 – logičke adrese 4-7 Stranica 2 – logičke adrese 8-11 Stranica 3 –
logičke adrese 12-15 Kako se interpretiraju logičke adrese (tabela stranica
data na sledećem slajdu)? Na primer, kako ćemo interpretirati logičku adresu
5?Logička adresa 5 se mapira na sledeći način: Adresa 5 je logička stranica 1
sa pomerajem 1 Na osnovu tabele stranica to je okvir 4 sa pomerajem 1.
Dakle, adresa je 16+1=17.
Proces koji ulazi u stanje izvršavanja mora da dobije potrebnu memoriju. Za
dati proces preračunava koliko mu stranica memorije treba. Svaka stanica
mora da se mapira u okvir. Ako proces zatheva n stranica, tada se alocira n
okvira. Okviri se pune procesom. Mapiranje stranica-okvir upisuje u tabelu
stranica. Alokacija se vrši na osnovu liste slobodnih okvira. Kao posledica,
raspored zauzetih i slobodnih stranica je slučajan.
Segmentacija
Logički adresni prostor se sastoji kolekcije segmenata. Svaki segment ima jedinstveno ime i dužinu. Logička adresa se
se sastoji od dva dela:
• Imena segmenta (umesto imena obično se zadaje broj koji predstavlja ID segmenta)
• Pomeraja unutar segmenta.
Kod segmenatacije je prisutna eksterna fragmentacija. Slobodna memorija se ne može iskoristiti za smeštaj segmenta
ukoliko ne postoji dovoljno velika šupljina. Problem se može umanjiti kompakcijom memorije.
U metodi segmentacije korisničke adrese su dvodimezione. Mapiranje u fizičke adrese se obavlja preko tabele
segmenata. Svaki ulaz u tabeli segmenata sadrži dva parametra:
• Baznu adresu segmenta (početna fizičku adresu segmenta u memoriji)
• Limit segmeta (dužina segmenta).
Kako se logička adresa mapira u fizičku? Broj segmenta (s) se koristi kao ulaz u tabelu segmenta. Iz tabele se čitaju
bazna adresa segmenta (b) i limit (l). Ako je:
• Pomeraj veći od limita (d > l): Imamo grešku u adresiranju.
• Pomeraj manji od limita (d < l): Fizička adresa = bazna adresa + pomeraj.
Virtuelna memorija se najčešće realizuje tehnikom učitavanja stranica prema potrebi. DP (engl. demand paging)
sistem podseća na straničenje sa razmenjivanjem. DP funkcioniše na sledeći način:
• Memorija i prostor na disku koji se koristi za razmenjivanje su izdeljeni na stranice.
• U fizičku memoriju se ne prebacuje ceo proces.
• Prebacuju se samo stranice koje se trenutno traže. Najčešće se prebacuje samo ona koja je neophodna. Može
prebaciti i više stranica u memoriju na osnovu pretpostavke o stranicama koje će biti potrebne procesu.
Šta je prednost ovog sistema u odnosu na swap isključivo celih procesa? Izbegava se nepotrebno čitanje sa diska.
Smanjuje se potrebna količina fizičke memorije.
Koji je hardver neophodan za realizaciju DP tehnike? Unija hardvera potrebnog za straničenje i razmenjivanje. Sledeće
dve komponente su apsolutno neophodne:
• Tabela stranica. Eksplicitno se zahteva prisustvo bita validnosti u tabeli stranica. Pomoću bita validnosti
može se opisati trenutni položaj stranice. Vrednost bita v (valid) ukazuje da se logička stranica nalazi u
memoriji. Vrednost bita i (invalid) ukazuje da se: Stranica ne nalazi u memoriji već u swap prostoru na disku.
Takođe može označavati takođe da je to stranica koja ne pripada adresnom prostoru diska.
• Sekundarna memorija. Služi za smeštaj svih stranica koje nisu prisutne u memoriji. Uređaj koji se, po
pravilu, koristi je disk (hard disk ili SSD).
Prebacivanje stranica sa diska u fizičku memoriju Posmatrajte sledeće dve situacije:
Proces se izvršava ili pristipa stranici koja je u memoriji. Kako teče izvršavanje programa? Izvršavanje programa teče
normalno.
Proces pokušava da pristupa stranici koja nije u memoriji (nego na disku). Kako sada teče izvršavanje programa?
Proces pristupa logičkoj stranici čija je vrednost bita validnosti i. To izaziva prekidni signal PF (engl. page-fault trap).
Operativni sistem tada poziva rutinu za opsluživanje PF. Rutina za opsluživanje PF prebacuje stranicu sa diska u
memoriju.Kako se obavlja prebacivanje stranice sa diska u fizičku memoriju?
Kako se obavlja prebacivanje stranice sa diska u fizičku memoriju?
1. Referenca (load M) je prouzrokovala prekid PF. Prilikom čitanja
stranice u tabeli detektovan je invalid bit.
2. OS poziva sistemsku rutinu za obradu PF. Ukoliko referenca nije
validna, proces se prekida jer sadrži pogrešnu instrukciju. Ukoliko je
referenca validna, PF započinje učitavanje stranicu u memoriju.
3. PF rutina pronalazi stranicu na disku u swap prostoru.
4. PF rutina traži slobodan okvir u fizičkoj memoriji i prebacuje
stranicu sa diska u okvir.
5. PF rutina ažurira tabelu stranica. Na ulazu koji je napravio PF
prekid, upisuje se adresa okvira i poništava invalid bit (postavlja se v
bit).
6. Prekinura instrukcija koja je uzrokovala PF prekid se izvršava iz
početka, s tim što sada ima sve što joj treba u memoriji.
Postupak se ponavlja za svaku stranicu procesa koja nije u memoriji,
pri čemu svaki PF prekid učitava samo jednu stranicu sa diska.
Učitavanje stranica prema potrebi
Performanse DP tehnike zavise od:
• Verovatnoće da se dogodi PF greška (p [0,1])
• Trajanja memorijskog ciklusa (t MA )
• Trajanja obrade PF prekida (t PF ).
Efektivno vreme pristupa memoriji (ukoliko se koristi DP tehnika) je: t EA = (1 – p) t MA + p t PF.
Od čega zavisi trajanje obrade PF prekida (t PF )?
Uprošćeno, komponente obrade PF prekida su:
• Servisiranje PF prekida
• Čitanje stranice
• Ponovno izvršenje procesa koji je izazvao PF.
6
Prebacivanje stranica sa diska u fizičku memoriju 2
Detaljnije, PF rutinu čini sledeća sekvenca aktivnosti:
1. Prelazak u operativni sistem izazvan prekidnim signalom PF.
2. Čuvanje konteksta prekinutog procesa u registrima procesora.
3. Određivanje da li je referenca legalna i ako jeste određivanje lokacije stranice na disku.
4. Čitanje stranice sa diska koje izaziva čekanje (PF rutina prelazi u stanje WAIT).
5. Dodela procesora drugom procesoru, jer tekući proces (PF rutina) čeka na resurs.
6. Spašavanje konteksta tekućeg procesa nakon prekidnog signala koji znači da je čitanje stranice sa diska završeno.
7. Korekcija tabele stranica.
8. Čekanje da se procesor ponovo dodeli procesu koji je izazvao PF.
9. Obnova konteksta procesa.
Kopiranje na ciklus upisa (CoW, engl. Copy-on-Write). Sistemski poziv fork duplira adresni prostor procesa roditelja.
Posle toga, potrebno je formirati i kopirati sve stranice koje pripadaju roditelju. Kako se može izbeći DP tehnika u
ovom slučaju? Stranice proces roditelja se inicijalno ne kopiraju. Nova memorija se inicijalno ne dodeljuje proces
detetu. Procesi roditelj i dete inicijalno dele sve stranice, koje se označavaju kao CoW. Ako bilo koji proces pokuša da
modifikuje stranicu, najpre se kreira kopija stranice koja se dodeljuje tom procesu. Nakon toga proces može da
modifikuje svoju kopiju.
Koncept virtuelne memorije dozvoljava korisnicima da datotekama pristupaju preko memorijskih referenci.
To se postiže pomoću memorijski mapiranih datoteka. Deo virtuelnog memorijskog prostora dodeli se datotekama.
Slika stranice na disku predstavlja deo datoteke a ne stranicu u swap prostoru. Inicijalni pristup datoteci se odvija preko
DP tehnike koja će izazvati PF prekid i kao rezultat te greške pročitaće se deo datoteke u memoriju. Sledeći delovi
datoteke dobijaju se na isti način. Više procesa može deliti datoteke u memoriji na ovaj način. Datoteka se pročita u
memoriju pomoću DP tehnike. Svaki proces podesi svoj adresni prostor tako da ukazuje na datoteku. Upis koji uradi
bilo koji proces, automatski je vidljiv svim ostalim procesima.
Zamena stranica
7
Algoritmi za izbor žrtve: FIFO
Formira se FIFO red na čiji se kraj stavljaju
stranice prilikom učitavanja u memoriju. Prilikom
zamene, memoriju napušta stranica koja se nalazi
na početku reda. Objašnjenje primera: Prve tri
reference napraviće tri uzastopne PF greške i
popuniti sva tri okvira. Četvrta reference usloviće PF grešku koja mora da izazove zamenu stranice. Kao žrtva, bira se
okvir 0 u kome se nalazi najstarija stranica (stranica 7). Peta referenca ne izaziva PF jer se stranica 0 nalazi u drugom
okviru u memoriji. Šesta referenca izaziva novi PF i novu zamenu. Kao žrtva bira se okvir 1 koji sadrži stranicu 0. …
Broj PF prekida za datu sekvencu: 15
Šta je Belady-jevu anomalija? Da li broj PF grešaka strogo opada sa povećanjem broja okvira u memoriji?
Ne mora da znači! Primer: Niz refernci: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. Broj okvira: 1, 2, ... 7. Analiza pokazuje da FIFO
algoritam izaziva veći broj PF grešaka u slučaju memorije sa 4 okvira u odnosu na memoriju sa tri okvira!
Algoritmi za izbor žrtve: optimalni algoritam
FIFO svoj kriterijum formira na istoriji referenci koja je uvek poznata. OPT algoritam svoj kriterijum formira na
budućnosti! OPT mora unapred da poznaje sve procese, što nije moguće! Ovo naročito važi ako se radi o interaktivnim
sistemima U čemu je štos? OPT žrtvuje stranicu koja se neće koristiti najduže vremena. Time se maksimalno odlaže
pojavljivanje sledeće PF greške. Primer: Stranica A će biti potrebna posle 100 instrukcija. Stranica B će biti potrebna
posle 1000 instrukcija. Bolje je žrtvovati stranicu B jer se izazivanje sledeće PF greške duže odlaže. OPT proizvodi
minimum PF grešaka ali NE može da se implementira!
Primer:
Pitanje: kako rasporediti m okvira na n procesa? Minimalni broj okvira po procesu zavisi od konkretne procesorske
arhitekture. Najmanji je dva (instrukcija od više bajtova može da bude na granici između dve stranice). Maksimalni broj
okvira koji proces može da dobije je ograničen veličinom fizičke memorije.
Metoda jednake raspodele. svakom procesu se dodeljuje jednaka količuna okvira m/n.
Metoda proporcionalne raspodele.
m – ukupan broj okvira fizičke memorije
i1 si
ai n m
S s
s i – veličina procesa p i
n – broj procesa
S – ukupna virtuelna memorija: n
i
i1
si
Svakom procesu pripašće sledeći broj okvira: ai
Efekat zasićenja
Proces zahteva operativnu memoriju kao resurs (čista nuklearna fizika!) Šta se dešava ako broj raspoloživih okvira za
proces padne ispod minimalne vrednosti?
• Resurs (memorija) nije slobodan.
• Proces ne može da se izvršava.
• Proces se mora dovest u stanje WAIT.
Šta se dešava ako je broj okvira raspoloživih za proces veoma mali?
• Resurs (memorija) je slobodan.
• Proces može da se izvršava.
• Pojava PF grešaka je česta! Proces veoma često zamenjuje svoje stranice (veliki broj U/I operacija sa diskom).
Pojava čestog razmenjivanja stranica koja nastaje kao posledica visokog stepena multiprogramiranja naziva se efekat
zasićenja (engl. thrashing). U takvim situacijama javljaju se ozbiljni problemi u vidu degradacije performansi.
Uvešćemo model lokalnosti u svaki proces, koji će nam pomoći da objasnimo efekat zasićenja.
Lokalnost je skup stranica koje proces koristi zajedno u jednom intervalu vremena. Proces može menjati svoje
lokalnosti a one se mogu preklapati. Primer: Svaki poziv potprograma napraviće novu lokalnost. Kad se izađe iz tog
potprograma lokalnost se menja. Zasićenje nastupa kada je suma lokalnosti za sve aktivne procese veća od fizičke
memorije! Uvodimo novi model koga ćemo nazvati radni model (engl. working-set model).
9
Prozor radnog skupa (engl. working-set window) je vreme u kome se izvrši određeni broj instrukcija. Sve stranice
referencirane u tom periodu predstavljaju radni skup (engl. working-set) za .
Primer: data su dva radna skupa za po 5 memorijskih referenci.
WS(t1) obuhvata stranice 1,5 i 7.
WS(t2) obuhvata stranice 3 i 4.
U celoj ovoj priči najznačanija je veličina radnog skupa. Veličina radnog skupa WSS i procesa P i definiše se kao
ukupan broj stranica koje proces traži u vremenskom prozoru . n
Ukupna veličina radnog prostora u sistemu D je: D WSSi
i 1
Ako je D > m, nastupiće efekat zasićenja. OS prati veličinu D. Kada D dođe do veličine sistemske memorije: Novi
procesi se neće uvoditi. Pojedini procesi moraju da se suspenduju na disk, kako bi se smanjila veličina radnog
skupa.
Efekat zasićenja se može sprečiti limitiranjem broja PF prekida koje jedan
proces izaziva u okvirima dozvoljenog opsega. Broj PF prekida je veliki u
slučaju zasićenja!
Koji se algoritam primenjuje?
Najpre se postavljanjem donje i gornje granice definiše opseg dozvoljenog
broja PF prekida za jedan proces. Zatim se prati broj, odnosno
frekvencija izazivanja prekida.
• Ako je broj PF grešaka procesa manji od donje granice: Procesu
je dodeljeno više okvira. Poneki se može oduzeti i dodeliti drugim
procesima.
• Ako je broj PF grešaka veći od gornje granice: Procesu nije dodeljen dovoljan broj okvira. Proces može da
dobije još ovira.
• Ako se broj PF grešaka svakog procesa održava u dozvoljenom opsegu (između granica): Efekat zasićenja se
neće dogoditi.
3. Ulazno-izlazni podsistem
Uvod
Posmatramo teorijski model OS.
Šta smo do sada definisali? Pojam i funkcije jezgra OS. Funkcije sloja upravljanja memorijom.
Šta smo time obezbedili? Okolinu u kojoj se mogu formirati procesi koji međusobno mogu komunicirati. Procesima
može biti dodeljena određena količina memorija na korišćenje.
Šta nismo obezbedili? Korisnik procesima ne može zadati ulazne podatke. Korisnik od procesa ne može preuzeti
rezultate obrade. Proces nije u mogućnosti da rezultate obrade sačuva na disku. Proces ne može da ostvari komunikaciju
sa drugim računarom.
Šta to u prevodu znači? U OS treba ugraditi podsistem koji će obezbediti komunikaciju sa U/I uređajima.
Većina uređaja koji se priključuju na računar može se svrstati u neku opštu kategoriju. Opšte kategorije su formirane
prema nameni uređaja:
• Uređaji za dugotrajno skladištenje podataka (HDD, SSD)
• Uređaji za prenos podataka (mrežne kartice)
• Uređaji koji obezbeđuju interfejs prema korisniku (monitori, tastature i miševi).
Osim namene uređaje karakteriše i:
• skup operacija koje se nad podacima mogu izvesti,
• brzina prenosa podataka na relaciji računar-uređaj,
• količina podataka kojima se istovremeno pristupa (jedinična količina transfera),
• način pristupa podacima,
• deljivost uređaja, itd.
10
Raznovrsnost uređaja otežava konstrukciju U/I podsistema koji karakterišu:
• izvestan nivo uniformnosti,
• izolacija karakteristika specifičnih za konkretne uređaje.
Konfliktni trendovi: standardizacija softverskih i hardverskih interfejsa, povećanje broja U/I uređaja različitih
karakteristika. Rezultat: podrška za konkretne uređaje ili grupe srodnih sadržana je u drajverima (drivers).
5Nezavisnost uređaja
Postoje dva aspekta nezavisnosti uređaja.
• Različiti modeli uređaja istog tipa moraju se sa aspekta programa jednako posmatrati. Primer: program
pristupa DVD uređaju bez obzira na model.
• Nezavisnost programa od konkretne vrste uređaja. Primer: program na što istovetniji način može čita
podatke sa SSD ili DVD uređaja.
Posledica: Programi ne rade sa realnim (konkretnim) uređajima. Sve U/I operacije obavljaju pomoću virtuelnih uređaja.
Primer: /dev/sda1 Prilikom čitanja vas ne interesuje da li je to: HDD, SSD, DVD, USB fleš memorija, itd., koji je
model uređaja.
Klasifikacija uređaja
Kriterijum: namena uređaja.
• Uređaji za dugotrajno skladištenje podataka (engl. storage devices)
• Uređaji za prenos podataka (engl. transmission devices)
• Uređaji koji obezbeđuju interfejs ka korisniku (engl. human-interface devices).
Kriterijum: smer transfera.
• Ulazni uređaji (miš, skener)
• Izlazni uređaji (štampač)
• U/I uređaji (mrežna kartica).
Kriterijum: jedinična količina transfera.
• Blok uređaji (HDD, jedinična količina je blok)
• Karakter uređaji (tastatura, jedinična količina je karakter)
• Mrežni uređaji.
Kriterijum: metod pristupa.
• Uređaji sa direktnim pristupom (HDD, SDD)
• Uređaji sa sekvencijalnim pristupom (magnetna traka).
Kriterijum: deljivost uređaja.
• Deljivi uređaji (HDD)
• Nedeljivi, odnosno posvećeni (tastatura).
Kriterijum: mogućnost upisa.
• Uređaji za čitanje i upis (HDD)
• Uređaji za čitanje (DVD).
Kriterijum: brzina uređaja.
• Ovaj kriterijum je relativan. Zašto?
• Uređaji iste klase različitih proizvođača mogu se značajno razlikovati što se brzine tiče.
Hardverski časovnik i tajmer obezbeđuju tri osnovne funkcije:
• prikazivanje tekućeg vemena,
• prikazivanje proteklog vremena,
• tajmerski okidač za operaciju X u trenutku T.
Predstavljaju specijalnu klasu ureađaja. Pristupa im se pomoću specifičnih sistemskih poziva. Tajmeri koji mere
proteklo vreme ili obezbeđuju okidanje su programibilni intervalski tajmeri. Oni se programiraju tako da nakon
određenog vremena generišu prekidni signal. Koriste se za realizaciju tehnike pretpražnjena pri raspoređivanju
procesora.
Kontroleri
Kontroler je kolekcija elektronike koja radi na tri načina:
• Kao port (serijski kontroler je port).
• Kao magistrala (SCSI kontroler se priključuje na PCI bus i formira novi SCSI bus). Pitanje za Vas: šta je
magistrala?
• Kao uređaj (grafička kartica je kontroler koji se na priključuje na PCI magistralu, a radi kao uređaj).
Svaki kontroler ima jedan ili više registara. Komunikacija između procesora i kontrolera: upis i očitavanje vrednosti
registara. Pristup registrima moguć na dva načina.
• Ako su memorijski i U/I prostor razdvojeni: procesor ima posebne instrukcije za upis i čitanje sa adrese na
kontroleru.
• Ako se U/I prostor tretira kao memorija: koriste se instrukcije za rad sa memorijom (memorijski mapirane
U/I operacije).
Nekim uređajima se može pristupiti na oba načina. To zavisi od operacije koju treba obaviti.
11
Primer – grafička kartica: U/I portovima kojima se mogu obaviti osnovne upravljačke operacije pristupa se posebnim
instrukcijama, memorija na grafičkim karticama koja služi za smeštaj slike tretira se kao memorija.
Prekidi
Hardverski mehanizam. Omogućava ureađaju da označi procesoru kada je komanda izvršena.
Funkcioniše na sledeći način: Kada uređaj završi operaciju kontroler šalje prekidni signal procesoru preko prekidne
linije (engl. IRQ - interrupt request line). Procesor će završti tekuću instrukciju. Čuva se kontekst procesa (vrednosti
programskog brojača, registara procesora …) Prekida se sekvencijalno izvršavanje programa kako bi se obradio prekid.
Poziva se rutina za obradu prekida (engl. interrupt handler)
koja određuje uzrok prekida, opslužuje prekid. Posle obrade
prekida, procesor nastavlja izvršavanje programa.
1. Proces najpre inicira ulazno-izlazni ciklus koji se
prosleđuje drajveru.
2. Drajver inicira kontroler.
3. Uređaj zatim izvršava operaciju.
4. Nakon završetka kontroler postavlja prekidni signal.
5. Prekida se izvršenje tekućeg procesa i predaje kontrola
rutini za obradu prekida.
6. Nakon završene prekidne rutine, obnavlja se kontekst
prekinutog procesa i predaje kontrola prekinutom
procesu.
Ovakav mehanizam omogućava procesoru da odgovori na svaki
asinhroni događjaj!
12
U modernim OS tehnika prekida uključuje:
• Mogućnost odlaganja (engl. deffer) obrade prekida dok je proces u kritičnoj sekciji.
• Brzu i efikasnu tehniku određivanja uređaja koji je postavio prekid.
• Višeslojni prekidni sistem koji će razlikovati prioritet prekidnih signala i rešavati prekide po prioritetu.
Većina procesora umesto jedne ima dve posebne linije za prekidne signale.
Nemaskirajuća (engl. non-masking) linija. Prekidni signal uvek može da prekine izvršenje tekućeg procesa. Koristi za
slanje prekidnih signala usled kritičnih hardverskih grešaka (greške u memoriji).
Maskirajuća (engl. masking) linija. Prekidni signal ne prekida izvršenje procesa sve dok se proces npr. nalazi u
kritičnoj sekciju. Koristi za slanje prekidnih signala koji potiču od normalnih operacija i standardnih grešaka koje se
javljaju na U/I uređajima.
Srodni uređaji (na primer, diskovi) grupišu se u opšte klase uređaja. Svakoj klasi uređaja pristupa se preko
standardnog skupa funkcija (tzv. Interfejs). Razlike između uređaja iste klase sakrivene su u specijalnim modulima
jezgra OS. Ti moduli nazivaju se drajveri (engl. device drivers). Drajveri po toje za svaki uređaj. Iznad svih drajvera
nalazi se sloj U/I podsistema jezgra praktično nezavistan od hardvera. Svi detalji vezani za konkretan harver prepušteni
su drajverima. Ova slojevita organizacija olakšava posao:
• Dizajnerima OSa.
• Proizvođačima uređaja i kontrolera. Proizvođači uređaja za svoje uređaje pišu drajvere za razne OS. Plus:
uređaji se mogu priključiti bez intervencije projektanata samog OSa. Minus: za svaki OS moraju da napišu
poseban drajver za konkretan uređaj.
13
Deo jezgra zadužen za rad sa U/I uređajima koordiniše široku
kolekciju servisa koji su na raspolaganju aplikacijama i ostalim
delovima kernela, kao što su:
• upravljanje imenima datoteka i uređaja (engl. name space),
• kontrola pristupa datotekama i uređajima,
• kontrola operacija,
• dodela uređaja procesima na korišćenje,
• raspoređivanje ulazno-izlaznih operacija,
• baferovanje, keširanje i spool tehnika,
• kontrola statusa uređaja,
• konfiguracija i inicijalizicija drajvera.
Baferovanje.
Bafer je deo memorije koji funkcioniše na principu proizvođač-potrošač. Bafer
čuva privremene podatake prilikom transfera između dva uređaja ili uređaja i
aplikacije. Razlog baferovanja: usklađivanje različitih brzina između potrošača
i proizvođača.
Primer: Dvostruko baferovanje (engl. double-buffering). Tehnika koja se koristi
pri keširanju hard diskova. Postoje dva bafera (TRANSMIT i RECEIVE) koji se
koriste za baferovanje podataka na relaciji memorija-disk i disk-memorija,
respektivno. Time se premošćava razlika u brzini između memorije i diska.
Keširanje.
Keš (engl. cache) je region brze sistemske memorije koji čuva kopiju podataka, obično sa diska. Keširanje (engl.
caching) je tehnika kopiranja delova diska u keš memoriju. Pristup podacima u kešu je znatno brži u odnosu na pristup
podacima na U/I uređajima. Time se osetno povećavaju performanse disk I/O sistema. U čemu je razlika između keša i
bafera? Bafer čuva trenutno aktuelne podatke. Keš čuva bilo koju kopiju sa diska. Isti memorisjki prostor se može
koristiti i za baferovanje i za keširanje. Keširanje je jako značajno i realizuje se u više nivoa. Pri tome se koriste različite
tehnike za popunu i zamenjivanje podataka u kešu.
Spool tehnika.
Spool je bafer koji privremeno čuva izlazne podatke namenjene nedeljivom
uređaju. Spool tehnika omogućava istovremeni pristup uređajima koji nisu deljivi
na sledeći način:
• procesi upisuju podatke namenjene uređaju na disk,
• OS upravlja tim spool baferom tako što opslužuje jedan po jedan zahtev.
Primer: Svaki proces koji želi nešto da štampa ostavlja svoj zathev u spool bafer na
disku. Print spooler (process u pozadini) obavlja štampu jednog po jednog zahteva.
Prednosti:
• Proces relativno brzo obavlja postavljanje svog zahteva u spool bafer.
Nakon toga je slobodan da dalje obavlja svoje aktivnosti. Primer:
štampanje dokumenta od 1000 stranica.
• Nedeljivi uređaji se koriste kao prividno deljivi.Time se omogućava većem
broju procesa da kvazi-istovremeno koriste uređaj.
14
Prevođenje zahteva u U/I operacije.
Primer: čitanje datoteke sa diska. Korisnik zadaje ime datoteke koju želi da pročita. OS prevodi logičko ime u fizičku
adresu prvog bloka datoteke na uređaju (disku). Ignorisaćemo sam proces prevođenja imena u fizičku adresu prvog
bloka datoteke.
Slučaj blokirajućeg čitanja jednog bloka sa diska:
1. Proces šalje blokirajući sistemski poziv read().
2. Sistemski poziv proverava da li su ulazni parametri korektni i ako jesu nastavlja dalje.
3. Proverava se stanje keša. Ako zahtev može tako da se zadovolji podaci se vraćaju procesu iz keša. Time se ciklus
čitanja završava bez upotrebe samog uređaja.
4. Ako podaci nisu u kešu, izvršiće se pravi U/I ciklus, što znači da proces mora da se blokira. Pre blokade se poziva
drajver.
5. Drajver alocira kernelski bafer za prijem podataka i ubacuje zahtev za izvršenjem operacije u red čekanja.
Po nekom kriterijumu zahtev dolazi na red. Drajver programira odgovarajući kontroler.
6. Kontroler obavlja U/I operaciju i odgovarajući transfer podataka.
7. Trasfer se odvija ili u PIO režimu ili preko DMA kontrolera.
8. Po okončanju transfera kontroler postavlja prekidni signal koji se obrađuje.
9. Drajver prima prekidni signal koji ukazuje da je transfer završen, obrađuje status I obaveštava jezgro da je posao
završen.
10.Jezgro prebacuje podatke u korisnički proctor i potom ukida blokadu sa procesa (tranzicija WAIT-READY u
dijagramu stanja procesa).
11.Proces nastavlja sa izvršenjem aktivnosti kada mu dispečer dodeli procesor na korišćenje.
Mehanizam tokova
Na UNIX System V OS uveden je mehanizam tokova. Tok (engl. stream) predstavlja full-duplex konekciju između
drajvera i korisničkog procesa. Time je omogućena komunikacija na toj relaciji. Tok se sastoji od:
• glave (engl. stream head) koja komunicira sa korisničkom procesom,
• drajverskog kraja koji kontroliše uređaj, i
• proizvoljnog broja modula između njih.
Svaki od ovih delova sadrži par redova čekanja:
• red čekanja za čitanje (engl. read queue),
• red čekanja za upis (engl. write queue).
Za trasfer podataka između redova koristi se sistem prosleđivanja poruka.
Moduli međusobno razmenjuju poruke. Pošto može doći do prepunjenja
nekih modula uvodi se kontrola toka između redova čekanja.
Korisnički proces upisuje podatke na uređaj preko write() ili putmsg()
sistemskih poziva. Glava strukture toka kopira podatke u poruku i prosleđuje
je sledećem modulu i tako sve do drajvera. Proces čitanja ide obrnuto a
koriste se sistemski pozivi read() ili getmsg(). Ciklusi U/I operacija sa
tokovima su ne-blokirajći. Izuzetak: korisnički proces komunicira sa
glavom strukture toka. Ovo veoma povoljno utiče na performanse:
• Proces prelazi u stanje WAIT samo dok komunicira sa glavom
strukture toka.
• Komunikacija između svih ostalih modula je asinhrona.
Tokovi predstavljaju modularni način za realizaciju drajvera i mrežnih protokola.
Primer: Isti mrežni moduli se mogu korsititi za različite mrežne kartice. Pri tome će se razlikovati samo drajverski
krajevi.
15
4. Sekundarne memorije
Struktura diskova
Geometrija diskova
Površina diska je podeljena u koncentrične prstenove – staze (engl. tracks). Svaka staza je dalje podeljena na sektore
(engl. sectors). Tipična količina podataka koja se može upisati u jedan sektor je 512 bajtova. To je najmanja količina
podataka koja se može upisati na disk ili pročitati sa diska! Sve površine magnetnih ploča su jednako podeljene na staze
i sektore. To znači da se glave za čitanje i pisanje na svim pločama diska u jednom vremenskom trenutku nalaze na
istim stazama. Ekvidistantne staze svih ploča čine jedan cilindar (engl. cylinder). Datoteke koje nisu smeštene u okviru
jednog cilindra su fragmentisane. Pomeranje glava sa jedne staze na drugu prilikom čitanja ovakvih datoteka unosi
kašnjenje. Performanse diska se mogu uvećati smeštanjem datoteke u okviru jednog cilindra kad god je to moguće.
Geometrija diska je u opštem slučaju određena:
• brojem magnetnih površina (odnosno glava za čitanje i pisanje),
• brojem cilindara,
• brojem sektora.
Trodimenzionalnim adresiranjem (engl. head-cylinder-sector addressing) može se pristupi svim delovima diska.
Primer: Podatak koji je upisan na drugu površinu, u stazu 3, na sektoru 5. (head, cylinder, sector)=(2,3,5).
16
Priprema diskova za rad
Bootstrap rutina
Kada se računar uključi BIOS izvršava POST rutinu (engl. Power On Self
Test). POST = serija testova hardvera. Podizanje sistema (engl. boot) je
procedura koja se izvršava u cilju dovođenja sistema u operativno stanje.
Primer (MBR): Kod upisan u prvom MBR najpre identifikuje aktivnu
particiju u particionoj tabeli. Zatim se izvršava kod upisan u boot sektoru
aktivne particije. Program u boot sektoru je zadužen da pokrene punjenje
RAM memorije OS-om.
Napomena: Delovi koda u toj fazi nalaze se na fiksnim područjima diska, a ne u sistemima datoteka. Zašto? U toj fazi
nema kernela, pa nemamo podršku za sistem datoteka. Rana faza podizanja operativnog sistema se završava
učitavanjem jezgra.
Paralelizam i konkurentnost operacija. Tehnika deljenja podataka između različitih diskova. Paralelno izvršenje više
nezavisnih disk operacija u istom trenutku (konkurentnost operacija).
Povećanje pozdanosti uvođenjem redundanse. Svaki disk ima svoju pouzdanost koja se meri srednjim vremenom
otkaza. Verovatnoća otkaza RAID strukture koju čini N diskova uvećava se N puta. Problem pouzdanosti se rešava
uvođenjem redundanse. Čuvaju se dodatne informacije koje obezbeđuju mogućnost potpunog povratka podatak u
slučaju otkaza jednog diska.Tehnike: Ogledala (engl. mirroring).Parnosti (engl. parity).
18
RAID 0
Najbolje performance čitanja i upisa. Nema redundanse: otkaz jednog diska
znači gubitak svih podataka!
RAID 1
Svaki disk ima svoje ogledalo! Najveći utrošak prostora, najveći stepen
redundanse. Najgore performance upisa.
RAID 4
Deljenja podataka na blok nivou. Redundansa: parnost za diskove na nivou
bloka (engl. block-interleaved parity). Za N blokova (sa N diskova) dovoljan
je jedan blok parnosti. Dobre osobine: kombinacija paralelizma i
konkurentnosti. Mana: u svakom ciklusu upisa učestvuje i disk parnosti
(postaje usko grlo u sistemu).
RAID 5
RAID 5 (engl. block-interleaved distributed parity, rotating parity array).
Svih N+1 diskova predstavljaju i diskove podataka i diskove parnosti.
Parnost se upisuje u levom simetričnom rasporedu. Najbolja kombinacija:
paralelizam, konkurentnost, diskovi su ravnomerno opterećeni.
RAID 0+1 / 1+0
Kvalitetne kombinacije tehnike 0 i 1.
• RAID 0 obezbeđuje visoke performance.
• RAID 1 obezbeđuje visoku pouzdanost.
• Kombinacija ostaje i dalje skupa jer udvostručava broj diskova!
Kombinacija 0+1:
• Skup diskova deli podatke.
• Potom se sve stripe jedinice u celini kopiraju u svoje ogledalo.
Kombinacija 1+0:
• Svaki disk ima svoje ogledalo.
• Podaci se dele između ogledala.
RAID 0+1 RAID 1+0
5. Sistemi datoteka
Pojam datoteke
Tipovi datoteka
Datoteke se grubo mogu podeliti na:
• izvršne datoteke (kompajlirane programe),
• datoteke sa podacima, koje mogu biti tekstualne ili binarne.
Na većini OS posle kreiranja datokeka osim imena dobija i tip. Pomoću tipa OS može da odredi vrstu datoteke i da je
poveže sa nekom aplikacijom. Tip datoteke se može realizovati ekstenzijom imena datoteke. Tipično za Windows.
Nije tipično za Linux. Ekstenzije: exe, lib, dll, cpp, py, txt, docx, mp3, zip, 7z, jpeg, png, avi, mp4, …
Pojam direktorijuma
Na jednom disku se može smestiti veliki broj datoteka. Radi preglednosti i kontrole pristupa grupišu se u
direktorijume. Direktorijum je struktura koja sadrži kontrolne blokove svih datoteka koje su u njemu logički
smeštene. Svi direktorijumi sa svojim datotekama obrazuju sistem datoteka. Direktorijumi se moraju implementirati
tako da obezbede efikasno pronalaženje:
postojećih datoteka,
prostora za nove datoteke.
Tehnike za obezbeđivanje efikasnosti: heš, B+ stabla.
Linkovi (reference)
21
Sistemi datoteka
Diskovi se mogu podeliti na više delova. Delovi diska se nazivaju particije (partitions) ili volumeni (volumes). Da bi
deo diska mogao da se iskoristi za skladištenje podataka, potrebno je na njemu kreirati sistem datoteka. Svaki deo diska
predstavlja granice u čijim se okvirima može kreirati sistem datoteka. Sistem datoteka je skup metoda i struktura
podataka koje operativni sistem koristi za čuvanje datoteka. Sistem datoteka čine:
• zaglavlje (podaci neophodni za funkcionisanje sistema datoteka),
• meta podaci (strukture za organizaciju podataka na medijumu),
• podaci (datoteke i direktorijumi).
Zaglavlje i meta-podaci čine premašenje sistema, ali bez njih sistem datoteka ne može da funkcioniše.
Prilikom realizacije sistema datoteka, definiše se:
• Logička struktura sistema datoteka. Način predstavljanja sistema datateka korisniku. Definicija datoteka,
direktorijuma, njihovih atributa i operacija dozvoljenim nad njima, odnosno sve što predstavlja logičku sliku
sistema datoteka.
• Fizička struktura sistema datoteka. Strukture podataka na disku koje služe za skladištenje podataka. Primer:
blokovi (na Linux-u) i klasteri (engl. clusters) na FAT sistemu datoteka.
• Preslikavanje logičke strukture sistema datoteka u fizičku. Uspostavljanje veze između sadržaja konkretne
datoteke i struktura na disku. Primer: sadržaj datoteke mydoc.txt koja se nalazi na direktorijumu c:\1 nalazi u
blokovima 15,16 i 25.
22
Dodela prostora za datoteke
Vezivanje blokova
Blokovi dodeljeni datoteci mogu biti proizvoljno razbacani po
celom disku. Nekoliko bajtova svakog bloka odvoji se za
smeštanje pokazivača na sledeći blok Poslednji blok sadrži
NULL vrednost. U kontrolni blok datoteke smešta se samo
informacija o početku i kraju datoteke, odnosno broj prvog i
poslednjeg bloka datoteke. Nedostaci:
• sekvencijalan pristup datotekama (pre čitanja
nekog bloka datoteke moraju pročitati svi prethodni
blokovi),
• mala pouzdanost (defekt jednog bloka učiniće nepristupačnim ostatak datoteke).
Mapa datoteka
Uvodi se centralizovana tabela u kojoj će biti opisan prostorni raspored svih datoteka.
Primer: FAT. Sistem datoteka se prilikom kreiranja deli na klastere (engl. cluster). U okvirima
jednog klastera datoteci je dodeljen kontinualan prostor. Datoteci se može dodeliti ceo broj
klastera u proizvoljnom rasporedu. Jedan klaster ne mogu koristiti dve datoteke. Neiskorišćen deo
klastera zove se slack i predstavlja gubitak. Svi klasteri jedne datoteke čine njenu povezanu listu.
Povezane liste svih datoteka čuvaju se u FAT tabeli na sledeći način. Svaki klaster diska opisan je
jednim zapisom u FAT tabeli u kome je naveden broj sledećeg klastera dodeljenog datoteci. Kraj
datoteke je klaster u čijem slogu u FAT tabeli stoji oznaka za kraj datoteke EOF. Kontrolni blok
datoteke sadrži samo broj početnog klastera Svi ostali klasteri određuju na osnovu FAT tabele.
Slobodni prostor na disku se dodeljuje datotekama prilikom kreiranja i povećavnja datoteka. Upravljanje slobodnim
prostorom značajno utiče na performanse sistema datoteka. Postoje dve osnovne metode za upravljanje slobodnim
prostorom:
• mape bitova,
• povezane liste.
23
Mape bitova
Za svi blok diska uvodi se bit koji vrednostima 0 i 1 opisuje da li je taj blok
slobodan ili zauzet. Mapa bitova se formira kao struktura podataka na
disku.Mapa je niz svih prethodno pomenutih bitova i kao takva opisuje koji su
blokovi slobodniu sistemu datoteka. Mape bitova:
zahtevaju formiranje posebne meta strukture na disku,
uz pomoć memorijskih struktura za keširanje relativno brzo pretražuju,
zbog keširanja mora se voditi računa o koherenciji između mape na disku i mape u memoriji.
Povezane liste
Liste se formiraju na sledeći način:
• početak liste ukazuje na prvi slobodni blok,
• svaki slobodni blok ukazuje na sledeći.
Metoda ne koristi dopunske strukture za vođenje evidencije (osim pokazivača). Performanse su znatno
manje u odnosu na mape bitova ali se mogu uvećati:
• grupisanjem ukazivača na slobodne blokove,
• uvođenjem informacije o broju uzastopnih slobodnih blokova.
Oštećenja sistema datoteka mogu biti fizička i logička. Rešenja za povećanje pozdanosti su:
• vođenje dnevnika transakcija (praćenje svih promena u sistemu datoteka i praćenje promena u meta
strukturama), i
• arhiviranje i rezervne kopije podataka.\
6. Distribuirani sistemi
Distribuirani sistem (engl. distributed system) je kolekcija procesora odnosno računara koji ne dele zajedinčku
memoriju i sistemski časovnik. U DS-u:
• svaki procesor, odnosno računar ima sopstvenu lokanu memoriju,
• međusobna komunikacija se ostvaruje putem računarske mreže LAN ili WAN tipa.
Osnovna namena DS-a je da obezbedi efikasno i pogodno deljenje resursa. Najprostiji slučaj: Distriburiani sistem se
sastoji od servera, klijenata i sekundarnih memorija rapostranjenih na raznim mestima. DS obezbeđuju korisnicima:
• visoke performance,
• deljivost podataka,
• visoku pouzdanost.
Osim podataka, datoteka i štampača, distribuiraju se i procesi. Zato se moraju obezbediti mehanizmi:
• sinhronizacije procesa,
• komunikacije između procesa,
• rešavanja problema zastoja.
24
Napomena: u slučaju DS-a mogu se pojaviti problemi koji nisu karakteristični za centralizovane OS!
Procesori, odnosno računarski sistemi u DS-u se nazivaju:
• sajt (engl. site)
• čvor (engl. node)
• računar (engl. computer, machine, host).
U ovom izlaganju će se uglavnom koristiti termin sajt.
Sa stanovišta jednog procesora:
• drugi procesori i nihovi resursi su udaljeni resursi (engl. remote
resources),
• njegovi sopstveni resursi su lokalni resursi (engl. local resources).
DS mogu biti realizovani kao:
• klijent-server sistemi, koji se sastoje od servera (podataka, za izračunavanje, za štampu, itd.) i klijenata
(računari koji koriste njihove usluge) ili
• ravnopravni računarski sistemi koji po mreži dele resurse.
Mrežno-orijentisani OS se prema svojim karakteristikama mogu podeliti na: mrežne OS, distribuirane OS.
Mrežni operativni sistemi
Mrežni OS obezbeđuju takvu okolinu u kojoj korisnik može pristupiti udaljenim resursima na dva načina:
• procedurom prijavljivanja na udaljeni računar (engl. remote login), kao što je SSH, Remote Desktop, itd.,
• transferom datoteka sa udaljene mašine na sopstvenu (engl. remote file transfer), kao što je SCP.
Distribuirani operativni sistemi
U distribuiranim OS korisnik pristupa udaljenim resursima kao da su lokalni. Distribuirane OS karakterišu tri vrste
migracija: migracija podataka, izračunavanja i procesa.
Migracija podataka.
Migracija izračunavanja. Primer: proces inicirata obradu na više udaljenih strana a zatim sakuplja rezultate. Kako se
može odvijati komunikacija? RPC pozivima, slanjem poruka, itd.
25
Migracija procesa. Proširenje migracije izračunavanja. Ideja: ceo proces ili neki njegovi delovi mogu se izvršavati na
drugim računarima. Pogodnosti:
• balansirano opterećenje (engl. load balancing),
• ubrzavanje obrade (engl. computation speedup),
• izvršavanje na namenskom hardveru sa namenskim softverskom (preferenciranje),
• brži pristup podacima.
Problem: Veliki broj aplikacija zahteva da se poštuje redosled događaja. U DS na različitim računarima postoje različiti
časovnici. Dva procesa koja se izvršavaju na različitim računarima ne mogu da odrede tačan redosled događaja. Kako
rešavamo problem?
U distribuiranim sistemima uvodi se relacija happened-before. Ova relacija pruža samo delimičnu informaciju o
redosledu događaja. Relaciju happened-before označićemo sa . Ako je je A B tada se se A mora izvršiti pre B.
Kada važi A B? A i B su događaji istog procesa pri čemu je događaj A izvršen pre događaja B. Događaj A je slanje
poruke a događaj B primanje te poruke pri čemu različiti procesi šalju i primaju poruku. Šta je karakteristično za
relaciju happened-before? Ako je A B i B C tada je A C (implikacija). Dva događaja A i B koji nisu povezana
relacijom happened-before se izvršavaju konkurentno.
Sa prethodne slike vidimo:
Događaji p 1 q 2 , r 0 q 4 , q 3 r 4 itd. su povezani relacijom happened-before.
p 1 r 4 je implikacija (p 1 q 2 i q 3 r 4 ).
Neki događaji se odvijaju konkurentno (q 0 , p 2 ), (r 0 , q 3 ), (r 0 , p 3 ). U slučaju
konkurentnih događaja ne znamo koji se dogodio prvi.
Redosled događaja mora se odrediti bez fizičkih časovnika. Zato ćemo svakom fizičkom događaju dodeliti vremensku
oznaku TS (engl. timestamp). Definisaćemo relaciju hapended-before za svaki par događaja A i B na sledeći način: Ako
je A B tada je TS(A)<TS(B).
Vrednosti TS mogu se dodeliti procesima na osnovu logičkog časovnika LC (engl. logical clock). Za svaki proces P i
definiše se LC i kao brojač događaja. Brojač događaja je monotono rastuća nenegativna vrednost. Ako se događaj A
desi pre događaja B tada je LC i (A) < LC i (B). Šta je problem?
Problem se javlja u slučaju dva procesa koji se izvršavaju na dva različita računara sa različitim procesorima i
različitim taktovima. Proces P 1 šalje poruku procesu P 2 na drugoj mašini (događaj A). Proces P 2 prima poruku
(događaj B). Neka je LC 1 (A) = 200 i LC 2 (B)=195. Situacija je moguća ali ovo nije saglasno sa onim što smo hteli.
Ako je A B tada LC 1 (A) mora biti manji od LC 2 (B). Kako se problem rešava? Uvođenjemm korekcije LC
vrednosti procesa primaoca poruke u slučaju ovakve nesaglasnosti. Proces primalac koriguje svoju LC vrednost tako što
uzima LC vrednost procesa pošiljaoca uvećanu za 1. U konkretnom slučaju LC 2 (B) mora da se koriguje i da postane
LC 2 (B)=201.
Međusobno isključenje
Pretpostavimo da se sistem sastoji od n procesa i da se svaki izvršava na različitom procesoru. Postoje tri načina za
rešavanje problema međusobnog isključenja:
• centralizovani pristup,
• slanje žetona,
• puni distribuirani pristup.
Centralizovani pristup. Procesa određen da odobrava ulaz u kritičnu sekciju naziva se koordinator. Opslužuje red
čekanja za ulazak u kritičnu sekciju (KS). U slučaju otkaza mora se zameniti drugim.
Slanje žetona. Zasniva se na specijalnoj poruci – žetonu (engl. token) koji kruži između svih procesa u sistemu.
Procesi obrazuju logički krug. Proces koji je dobio žeton, ima pravo da uđe u svoju KS.Ako proces ne želi da uđe u
svoju kritičnu sekciju prosleđuje ga dalje.Ako je kruženje žetona jednosmerno, nema zakucavanja.Mogući problem:
otkaz nekog procesa.Nakon toga se mora formirati novi logički krug procesa.
Puni distribuirani pristup. Proces Pi koji želi da uđe u svoju KS generiše novi timestamp TS i šalje svim ostalim
procesima poruku request (Pi, TS). Proces Pj nakon primanja poruke request: Odlaže slanje poruke reply za kasnije
ukoliko se nalazi u KS. Odgovara porukom reply ako nije u KS i nema nameru da uđe u nju. Ako proces Pj ima nameru
da uđe u KS: Uporediće TS sa procesom koji traži dozvolu. Ako je TS(Pj) > TS(Pi) poslaće reply poruku U suprotnom
se slanje poruke odlaže. Proces Pi može ući u svoju KS kad primi reply poruke od svih drugih procesa u sistemu. Kada
napusti svoju KS proces šalje reply poruku svim procesima koji su mu se obratili. Šta je problem ove šeme? Proces
mora da poznaje sve procese u sistemu i da prati dodavanje i ukljanjanje procesa iz sistema.
Pojam transakcije
Transakcija je kolekcija instrukcija koje obavljaju jednu logičku funkciju. Transakcija obuhvata čitanje ili upis
podataka. Transakcija se završava se sa dve moguće operacije:
• Commit: označava da je transakcija obavila svoje izvršavanje uspešno
• Abort: označava da je transakcija završila svoje izvršavanje neuspešno (greška).
26
Od transakcija se traži da se obavljaju atomski. Transakcija se ili izvršava ili se ne izvršava. Stanje sistema u slučaju
greške ili prekida transakcije mora biti svedeno na stanje sistema pre izvršavanja transakcije. To se naziva povratak
unazad (engl. rollback).
Da bi se obezbedila atomska priroda transakcije mora se voditi evidencija o svim koracima upisa! To se obavlja preko
dnevnika transakcija smeštene na stabilnoj memoriji. Svaki zapis u dnevniku opisuje jednu operaciju upisa u
transakciji i sadrži sledeća polja:
• ime transakcije,
• ime polja za upis,
• stare podatke koji predstavljaju vrednost podataka pre operacije upisa,
• nove podatke koji predstavljaju vrednost nakon operacije upisa.
Pre nego što transakcija Ti počne izvršavanje u dnevnik se upiše zapis <Ti starts>. U toku svake transakcije pre svake
operacije upisa mora se upisati jedan zapis u dnevnik. Poslednji zapis u dnevniku je <Ti commit>. Transakcija Ti
izvršena na ovaj način može se poništiti! Kako?
Uvode se dve operacije za rad sa transakcijama koje koriste dnevnik:
• undo (Ti) koja vraća sve vrednosti koje je promenila transakcija na stare vrednosti
• redo (Ti) koja postavlja sve vrednosti koje je transakcija promenila na nove vrednosti.
Ako se dogodi otkaz sistema zbog havarije log tehika omogućava dve situacije:
Ako ne postoji zapis <Ti commit> Transakcija Ti se nije završila. Izvršava se operacija undo (Ti).
Ako postoji zapis <Ti commit> Transakcija Ti se završila. Treba je imati u oporavljenom sistemu. Izvršava se
operacija redo (Ti).
Kako se rad sa transakcijama može učiniti efikasnijim u slučaju otkaza i regeneracije sistema? U dnevnik se uvodi
kontrolna tačka (oznaka checkpoint). Kontrolna tačka određuje sve transakcije završene na stabilnom medijumu. Sve
što se u dnevniku nalazi pre kontrolne tačke je u redu. Sve što se nalazi iza nje treba obraditi na sledeći način:
• Operacija redo (Tk) izvršava se za svaku Tk koja sadrži zapis <Tk commit>.
• Operacija undo (Tk) izvršava se za svaku Tk koja ne sadrži zapis <Tk commit>.
Konkurentne atomske transakcije
Svaka transakcija mora da bude atomska. Transakcije se izvršavaju konkurentno sa svojim procesima. Pravilan redosled
izvršenja može se obezbediti izvršavanjem svake transakcije u celosti unutar kritične sekcije. Ovaj način izvršavanja
je isuviše restriktivan. Serijsko raspoređivanje ne može dovesti do konfliktnih odnosa. Povlači strogo serijsko
nekonkurentno raspoređivanje transakcija i umanjuje performanse. Uvode se specijalne tehnike kojima se: reguliše
konkurentnost transakcija, sprečavaju konflikti.
Konkurentne operacije u transakcijama mogu biti u:
• konfliktnom odnosu,
• nekonfliktnom odnosu.
Konkurentne operacije su u konfliktnom odnosu ukoliko se: odnose na isti zapis, pri tome je bar jedna operacija upis.
Ukoliko transakcije preklapaju svoja izvršenja: performanse se povećavaju, mogući su konfliktni odnosi između
operacija.
Konfliktne operacije ne smeju se izvršavati istovremeno! Transakcije se mogu preklapati samo ako se izbegnu
konflikti između operacija što se postiže:
• protokolom za zaključavanje,
• poredkom izvršavanja na bazi vremenske oznake (TS poredak).
Protokol za zaključavanje Transakcija Ti pre pristupa zapisu Q mora da zatraži odgovarajuće pravo zaključavanja.
Transakcija pristupa zapisu isključivo nakon zaključavanja. Zapis se može zaključati na dva načina: deljivo i
nedeljivo.
• Deljivo (engl. shared lock). Transakcija koja dobije pravo na deljivo zaključavanje zapisa Q: Dobija pravo
čitanja zapisa Q Ne dobija pravo upisa zapisa Q.
• Ekskluzivno (engl. exclusive lock). Transakcija koja dobije pravo na ekskluzivno zaključavanje zapisa Q taj
zapis može čitati i upisati.
Poredak izvršavanja na bazi vremenske oznake (TS poredak)
Sinhronizacija između procesa može se ostvariti pomoću protokola zasnovanog na vremenskim oznakama. Svakoj
transakciji dodeljujemo TS kao vreme kada transakcija počinje da se izvršava. Takođe svakom zapisu Q
dodeljujemo dva vremenska parametra:
• W-timestamp (Q) – vreme poslednje transakcije koja je uspešno obavila upis u Q.
• R-timestamp (Q) – vreme poslednje transakcije koja je uspešno obavila čitanje iz Q.
Ova dva parmetara se stalno ažuziraju. TS protokol obezbeđuje da konfliktno čitanje i upis obave u TS poretku koji
isključuje preklapanje konflikta.
Pretpostavimo da transakcija Ti pošalje zahtev read(Q). Moguće su dve situacije:
• TS(Ti) W-timestamp(Q) Zahtev je korektan. Čitanje se obavlja. Nakon toga se ažurira R-timestamp(Q).
• TS(Ti) < W-timestamp(Q) Transakcija traži vrednost Q iz prošlosti. Ta vrednost je prepisana. Čitanje se
odbacuje. Vrednost se može dobiti primenom metode rollback na transakciju Ti.
Pretpostavimo da je transakcija Ti pošalje zahtev write(Q). Moguće su tri situacije:
• TS(Ti) < R-timestamp(Q) Transakcija pokušava da upiše nešto što je već trebalo da bude pročitano Zahtev je
nekorektan pa se upis odbacuje Na transakciju Ti se primenjuje metoda rollback.
27
• TS(Ti) < W-timestamp(Q) Transakcija pokušava da upiše staru vrednost za Q Upis se odbacuje Na transakciju
Ti se primenjuje metoda rollback.
U svim ostalim slučajevima upis se obavlja. Napomena: transakcija za koju se obavlja rollback dobija novu TS vrednost
i restartuje se.
Mehanizmi koje smo definisali za sinhronizaciju procesa moraju se prilagoditi ili redefinisati za distrubiranu okolinu!
Svaki sajt mora da ima sopstveni mehanizam za upravljanje transakcijama koji pored sinhronizacije obavezno vodi i
dnevnik koji pomaže u slučaju opravaka od otkaza. Kao i u slučaju centralizovane okoline definisaćemo protokole za
zaključavanje i timestamp metodu.
Protokoli za zaključavanje
Slučaj bez replikacije datoteka. Svaki sajt ima svoj mehanizam za zaključavanje i otključavanje podataka (engl. lock
manager). Transakcija koja želi da zaključa zapis Q na sajtu Si šalje poruku o zaključavanju: lock (Si, Q). Lock
manager sajta Si:
• Poslaće transakciji poruku da joj je zahtev ispunjen ako ima uslove da zaključa Q. Kada transakcija odradi
svoje slanjem poruke unlock (Si, Q) otključaće zapis Q.
• U protivnom transakcija mora da čeka.
Slučaj sa više replika datoteke u sistemu. Protokoli za zaključavanje se mogu realizovati na više načina:
• protokol za zaključavanje sa jednim koordinatorom,
• protokol većine,
• pristrasni protokol,
• primarna kopija.
Prevencija zastoja.
Metoda wait-die.
• Nema pretpražnjenja (nasilnog oduzimanja resursa).
• Stariji proces čeka na mlađeg da otpusti resurs.
• Proces Pi koji traži resurs dodeljen procesu Pj čekaće da proces Pj taj resurs otpusti samo ako je
TS(Pi)<TS(Pj).
• U protivnom proces Pi se podvrgava rollback operaciji.
Metoda wound-wait.
• Suprotna metodi wait-die.
• Zasnovana je na tehnici pretpražnjenja.
• Proces Pi će čekati na resurs dodeljen procesu Pj samo ako je Pi mlađi: TS(Pi)<TS(Pj).
• U protivnom, Pj se podvrgava rollback operaciji, a resurs mu se oduzima i predaje procesu Pi.
• Stariji proces nikada ne čeka na mlađe.
28
Detekcija zastoja.
Wait-for grafovi sajtova spajaju se u jedan zajednički graf.
Detekcija zastoja u DS je složena procedura i može se obavljati:
Centalizovano. Problem zastoja rešava jedan sajt na kome se izvršava proces koordinator za detekciju zastoja
(deadlock detection coordinator). Taj proces treba da proceni da li je DS u stanju zastoja ili ne. Ovaj proces traži od
ostalih sajtova da mu dostave svoj wait-for graf kako bi na osnovu toga konstruisao zajednički wait-for graf.
Distribuirano. Svi sajtovi su zaduženi za detekciju zastoja. Svaki sajt konstruiše svoj modifikovani wait-for graf
uključujući Pex čvor (eksterni čvor). Kada primeti mogućnot zastoja, sajt šalje poruku kritičnom sajtu sa kojim se može
naći u stanju zastoja da oba sajta dodatno provere da li je sistem u zastoju.
Uvodne napomene
29
Prednosti upotrebe OSI modela:
• Smanjenje složenosti
• Standardizacija interfejsa
• Sprečavanje uticaja promene jednog sloja na druge slojeve (čime se olakšava razvoj pojedinačnih funkcija)
• Lakši izbor pravog mrežnog uređaja za željenu namenu.
Funkcije slojeva
• Aplikacioni sloj: pristup aplikacije mrežnom okruženju.
• Prezentacioni sloj: formatiranje podataka.
• Sloj sesije: dijalog između računara.
• Transportni sloj: logička veza s kraja na kraj i kontrola toka
• Mrežni sloj: logičko adresiranje i rutiranje
• Sloj veze: fizičko adresiranje, kontrola toka i pristup medijumu
• Fizički sloj: prenos bitova.
Physical, Data-Link, Network, Transport, Session, Presentation, Application ...
Da bi lakše zapamtili:
Please Do Not Throw Sausage Pizza Away
Mrežni uređaji
Ukoliko sistemi nisu direktno povezani transmisionim medijumom koriste se posredni uređaji, koji pripadaju
kategoriji otvorenih sistema i implementiraju niže slojeve OSI modela. U zavisnosti od slojeva koji su implementirani,
za te uređaje će od značaja biti:
• Bitovi
• Okviri (engl. frames)
• Paketi (engl. packets)
• ... ali ne i jedinice podataka viših slojeva.
To određuje funkciju uređaja:
• Fizički sloj – obnavljač signala (engl. repeater) ili koncentrator (engl. hub)
• Sloj veze – mrežni most (engl. bridge) ili komutator (engl. switch)
• Mrežni sloj – ruter (router).
S obzirom na to da nema nikakve modifikacije podataka viših slojeva, postojanje ovih uređaja je za korisnika
transparentno (korisnik ove uređaje ne primećuje).
Repeater Hub Bridge Ruter
Switch
Dve vrste portova:
Pristupni portovi (engl. access ports): fizički interfejsi kojima se switch
povezuje sa krajnjim sistemima na mreži.
Mrežni up-link portovi (engl. network uplink ports) koji služe za povezivanje na
druge komutatore.
TCP/IP je skup protokola koju je razvila agencija DARPA (Defense Advanced Research Projects Agency) a koja je
kasnije uključena u Berkeley distribuciju UNIX sistama (BSD). Internet je zasnovan na TCP/IP skupu protokola.
TCP/IP model čine sloj pristupa mreži, Internet sloj, transportni sloj i aplikacioni sloj.
Internet sloj
Internet sloj odgovara sloju mreže u OSI modelu.
Funkcije: IP adresiranje i rutiranje paketa.
Obezbeđuje vezu između računara koji se ne moraju nalaziti na fizički istoj mreži.
Na ovom sloju koriste se sledeći protokoli:
IP (Internet Protocol). Obezbeđuje prenos informacija od računara do računara.
ICMP (Internet Control Message Protocol). Obezbeđuje kontolne poruke, kao što je Destination Unreachable. Primer:
slanje ICMP ECHO paketa kojim se proverava da li je udaljeni računar dostupan.
ARP (Address Resolution Protocol). Osim logičke adrese (IP) svaki mrežni uređaj karakteriše i fizička adresa (MAC).
Dodeljuju ih proizvođači mrežnih adaptera i one su uslovno rečeno nepromenljive. MAC adrese se koriste prilikom
prenosa okvira podataka po fizički istoj mreži. Protokol ARP prevodi IP adrese u MAC adrese.
30
Transportni sloj:
• Preuzima podatke s višeg nivoa.
• Po potrebi segmentira podatke ili uspostavlja virtuelne veze.
• Prenosi podatke do odredišta koristeći usluge Internet sloja.
Na transportnom sloju koriste se:
TCP (Transmission Control Protocol). Obezbeđuje pouzdanu vezu između dva procesa, otkriva i ispravlja greške.
UDP (User Datagram Protocol). Ne uspostavlja virtuelne veze niti obezbeđuje mehanizam za detekciju grešaka.
Aplikacioni sloj
Aplikacioni sloj omogućava aplikacijama odnosno korisnicima da pristupe servisima Internet mreže. Primeri protokola
u aplikacionom sloju:
HTTP (HyperText Transport Protocol). Pristup Web stranicama.
FTP (File Transport Protocol). Prenos datoteka.
SSH (Secure Shell). Prijavljivanje na udaljen sistem.
POP3 (Post Office Protocol v3). Dolazeća pošta.
SMTP (Simple Mail Transport Protocol). Odlazeća pošta.
DNS (Domain Name System). Prevođenje imena u IP adrese.
IP adresiranje
Svaki računar i ruter na Internetu ima svoju jedinstvenu IP adresu (ili više IP adresa). IP adrese su:
• 32-bitne
• Sastoje se od 4 okteta
• Obično se predstavljaju u decimalnoj notaciji s tačkom (na primer: 192.198.3.1).
Svaka IP adresa ima dva dela:
• Deo koji predstavlja adresu IP mreže (isti za sve računare na jednoj IP mreži)
• Deo koji predstavlja adresu računara (jedinstven za svaki računar na istoj IP mreži).
Na osnovu broja okteta koji pripadaju adresi mreže IP adrese se dele u klase A, B, C, D i E.
Klase
IP adrese klase A
U binarnom obliku IP adrese klase A počinju sa 0. Prvi oktet predstavlja
adresu mreže a sledeća tri adresu računara. Adrese 0.x.y.z i 127.x.y.z su
rezervisane. IP adrese klase A se nalaze u opsegu 1.0.0.0 do 126.255.255.255.
IP adrese klase B
U binarnom obliku IP adrese klase B počinju sa 10. Prva dva okteta
pretstavljaju adresu mreže a sledeća dva adresu računara. IP adrese klase B
nalaze se u opsegu 128.0.0.0 do 191.255.255.255.
IP adrese klase C
U binarnom obliku IP adrese klase C počinju sa 110 Prva tri okteta
predstavljaju adresu mreže a poslednji adresu računara. IP adrese klase C
nalaze se u opsegu 192.0.0.0 do 223.255.255.255.
IP adrese klase D i E
IP adrese klase D u binarnom obliku počinju sa 1110. Dodeljuju se grupi računara i namenjene su za multicast
saobraćaj.
IP adrese klase E počinju sa 11110. Eksperimentalne su i ne koriste se za adresiranje mreža i računara.
31
Primer: na mrežu je stigao paket adresiran na računar 172.16.32.1
• Potrebno je da se logička adresa pretvori u odgovarajuću fizičku (hardversku) adresu.
• ARP protokol šalje Ethernet okvir koji se naziva ARP zahtev (ARP REQUEST) koji sadrži IP adresu
odredišnog računara ka svakom računaru u mreži. Jednostavno rečeno u zahtevu piše: „ako si ti računar čija je
ovo IP adresa, molim te odgovori mi svojom hardverskom adresom”.
• ARP protokol odredišnog računara prima okvir upućen svima, prepoznaje da pošiljalac traži njegovu fizičku
(hardversku adresu) i šalje ARP odgovor (ARP REPLY). Odgovor sadrži IP adresu i odgovarajuću fizičku
(hardversku) adresu. Pošiljalac prima ARP odgovor tako da IP paket, koji je inicirao slanje ARP zahteva i ARP
odgovor, može da se pošalje.
Privatne i javne adrese
Javne adrese se mogu koristiti na Internetu.
Privatne adrese su namenjene mrežama koje nisu direktno povezane na Internet i ne mogu se koristiti na Internetu. U
privatne adrese spadaju:
• 10.0.0.0 – 10.255.255.255
• 172.16.0.0 – 172.31.255.255
• 192.168.0.0 – 192.168.255.255
Maska podmreže
Maska podmreže (engl. subnet mask) je 32-bitni je broj koji se formira tako što se: Umesto bitova koji u IP adresi
predstavljaju adresu mreže i podmreže stavi 1 Umesto bitova koji predstavljaju adresu računara stavi 0.
Podrazumevane maske podmreže:
• Za mreže u klasi A: 255.0.0.0
• Za mreže u klasi B: 255.255.0.0
• Za mreže u klasi C: 255.255.255.0.
Adresa mreže se uvek navodi s maskom podmreže.
Primer. Adresa mreže 192.168.10.0 u klasi C zapisuje se kao: 192.168.10.0, 255.255.255.0 192.168.10.0/16 Broj 16
ukazuje na broj bitova koji pripadaju adresi mreže. Radi se o takozvanoj CIDR (Classless Inter-Domain Routing)
notaciji.
Podmrežavanje
Podmreže su segmenti iste IP mreže koji komuniciraju preko rutera. Podmrežavanjem se smanjuje broj računara po
segmentu IP mreža s velikim brojem računara. Svaka podmreža ima svoju jedinstvenu adresu. Formira se tako što se
određen broj bitova pozajmi iz dela IP adrese koji predstavlja adresu računara. Podmrežavanje se može jednostavno
objasniti na primeru IP mreže u klasi C. U ovom slučaju, pozajmićemo tri bita iz četvrtog okteta.
Podmrežavanje (primer)
Adresa IP mreže je 192.168.10.0. Pozajmićemo tri bita iz četvrtog okteta. Adrese podmreža će redom biti:
192.168.10.32/28 192.168.10.64/28 192.168.10.92/28, itd.
Napravljeno je 8 segmenata (osam podmreža) Maska podmreže je 255.255.255.248. U zavisnosti od toga da li protokol
za rutiranje na ruteru koji spaja podmreže podržava VLSM (variable length subnet masking) ili ne upotrebljivo je 6,
odnosno 8 podmreža. Svaki segment sadrži 2 5 =32 adrese. Prva adresa u svakom segmentu (na primer, 192.168.10.32)
jeste adresa podmreže, a poslednja (192.168.10.63) broadcast adresa za tu podmrežu. To znači da se na svakom
segmentu može naći najviše 30 računara.
Broj porta
Šta je port?
Broj porta je 16-bitna vrednost. Ukupno ima 2 16 portova (0-65535). Portovi od 0-1023 su tzv. rezervisani portovi.
Upotrebom portova dozvoljava se više istovremenih veza ka jednom računaru. Servisi pokrenuti na nekom računaru
osluškuju zahteve na određenim portovima.
Procesi ostvaruju TCP i UDP komunkaciju pomoću takozvnih utičnica (socket). Utičnica = IP adresa računara : broja
porta Utičnice su krajnje tačke komunikacije na transportnom sloju.
Šta je DNS?
Korisnici se svakom računaru mogu obratiti putem IP adrese. To znači da korisnici koji koriste servise 150 različitih
računara moraju znati 150 IP adresa. Da bi se komunikacija pojednostavila, koristi se sistem dodele logičkih imena IP
adresama.
Primer: Korisnici se mogu obratiti računaru čija je IP adresa 166.60.10.15 imenom myserver.mydomain.com, Potrebno
je da ime myserver.mydomain.com bude dodeljeno toj IP adresi.
Imena računara pretvaraju se u IP adrese na osnovu upita koji klijenti šalju DNS serveru. DNS server održava bazu
podatka o logičkim imenima i odgovarajućim IP adresama.
Šta je DHCP?
Ručno konfigurisanje TCP/IP steka znači da korisnik sam unosi:
• IP adresu (koju je dobio od administratora)
• Masku podmreže
• Adresu podrazumevanog izlaza.
DHCP (Dynamic Host Configuration Protocol) automatski dodeljuje IP adrese računarima. Prevazilaze se problemi
vezane za ručno dodeljivanje IP adresa.
DHCP klijenti zahtevaju od DHCP servera IP adresu, masku podmreže i neke opcione vrednosti (podrazumevanu
adresu mrežnog prolaza, adresu DNS servera, itd.).
DHCP server iz skupa IP adresa definisanog u bazi podataka nudi slobodne adrese klijentima.
Ukoliko klijenti prihvate ponudu, informacija o IP adresama se za određeni period vremena izdaje klijentima. Ukoliko
ne postoje dostupne adrese u zajedničkom skupu, koje mogu da se izdaju klijentu, klijent ne može da inicijalizuje
TCP/IP.
33