You are on page 1of 33

1.

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.

Šta je važno napomenuti u vezi straničenja?


• Korisnik svoj deo memorije doživljava kao kontinualni prostor.
• Mapiranje logičkog i fizičkog prostora je zadatak OS-a i transparentno je za korisnika.
• Eksterne fragmentacije nema, jer se svaki okvir može iskoristiti za smeštaj dela bilo kog procesa.
• Interna fragmentacija postoji.
Koliko se memorije može adresirati? Primer: Tabela stranica je 32 bitna. Veličina stranice je 4KB. Može se adresirati 2
32 *4*2 10 =16TB fizičkog adresnog prostora.
Zaštita memorije postiže se uvođenjem novih bitova koji imaju
specijalno značenje.
Bit validnosti v ukazuje da je vrednost u tabeli stranica važeća,
ispravna i da se okvir može se koristiti za mapiranje. To se ponekad
koristi da se nekom programu zabrani pristup određenim logičkim
adresama.
Primer (slika na sledećem slajdu): Svaka referenca programa koja
pripada logičkim stranicama 6 i 7 završiće se kao ilegalan zahtev.
Razlog: te stranice su u tabeli proglašene kao nevažeće (engl.
invalid bit).
Bit za zaštitu od upisa rw (odnosno ro) određuje da li je stranica
sa punim pristupom ili je zaštićena (može se samo čitati). Poželjno
je zaštititi stanice koje sadrže kod programa (sprečava se nehotično
prepisivanje).
4
Hijerarhijsko straničenje
Logički adresni prostor savremenih računara je 2 32 ili 2 64 . U takvim situacijama, tabele stranica su jako velike!
Primer: 32 bitni sistem Stranice veličine 4KB (2 12 ) Tabela stranica se sastoji od milion ulaza (2 32 / 2 12 = 2 20 ). Ako
se svaki ulaz sastoji od 4 bajta tada tabela stanica obuhvata 4MB. Međutim, ne treba svakom procesu milion ulaza (ceo
logički adresni prostor). Tabela stranica se može podeliti na više manjih delova. Najjednostavniji primer je
dvonivovsko straničenje. Spoljna tabela stranica koja ukazuje na stranice u kojima su smeštene prave tabele
stranica.
Deljene stranice
Jedna od prednosti straničenja je mogućnost deljenja zajedničkog
koda između većeg broja procesa.
Primer: Sistem na kome više korisnika istovremeno izvršava isti
tekst editor. Kada ne bi bilo deljenja svaki korisnički proces, pored
sekcija podataka morao bi da učita za sebe posebnu kopiju koda
tekst editora u memoriju. Ako se kod editora ne modifikuje u toku
izvršavanja, deljenje stranica se može iskoristiti:
• Jednu kopiju koda u memoriji koristiće svi procesi.
• Njihove tabele stranica ukazivaće na isti memorijski
prostor u kome se nalazi tekst editor.

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.

Tabela segmenata može sadržati i neke oblike zaštite segmenata.


Najčešće koristi zaštita od izmene sadržaja.
Segmenti sa kodom mogu biti definisani kao nepromenljivi (engl.
read only). Segmenti koji se ne menjaju se mogu deliti. Na taj način
se obavlja efikasna ušteda memorije.
Primer: Dva procesa koji koriste isti editor teksta. Svaki proces ima
svoju tabelu segmenata. Segment koji sadrži kod editora, biće
zajednički.
Segmentacija sa straničenjem
Na procesorima ugrađenu podršku i za
segmentaciju i za straničenje, mogu se
kombinovanti metode diskontinualne alokacije.
Straničenje poništava eksternu fragmentaciju
segmenata! Primer: segmentacija sa dvonivovskom
straničenjem.
5
2. Virtuelna memorija

Šta je virtuelna memorija?


Tehnika koja dozvoljava izvršavanje procesa čiji delovi mogu biti smešteni na diskovima. Virtuelna memorija:
• Formira apstrakciju (logička memorija = operativna memorija + sekundarna memorija).
• Omogućava izvršenje programa većih od same fizičke memorije.
• Dozvoljava smeštaj znatno većeg broja procesa u memoriju (konkretno, delova procesa).

Učitavanje stranica prema potrebi

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.

Alternativne tehnike učitavanja stranica: CoW

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

Proces može da se izvršava ako se samo deo procesa nalazi u


memoriji. Šta je posledica toga? Povećanje broja aktivnih procesa u
memoriji. Povećanje stepena multiprogramiranja. Koje pojave prate
sisteme sa virtuelnom memorijom? Iznenadna pojavljivanja velikog
broja PF prekidnih signala. Potpuno zauzeće cele fizičke memorije.
Kako rešavamo problem zauzeća memorije?
Primer: Imamo dva procesa sa po 4 logičke stranice i memoriju sa 8
okvira koja je trenutno popunjena. Proces P1 izvršava instrukciju load
M koja ima referencu za stranicu 3. Stranica 3 se ne nalazi u fizičkoj
memoriji, nego na disku, tako da nastupa PF prekidni signal. Kako
nema slobodnih okvira, jedan mora da se žrtvuje i da se oslobodi za
stranicu M. Kako funkcioniše zamena stranica?
1. Najpre se bira okvir u koji će biti smeštena željena stranica. Ako ima
slobodnih okvira, uzima se jedan od njih.
Ako nema slobodnog, pomoću algoritama za zamenjivanje stranica
bira se žrtva. Žrtva = okvir u kome se nalazi stranica koja će biti zamenjena.
2. Žrtvovana stranica se upisuje na disk. Ako sadržaj okvira nije modifikovan u odnosu na postojeću sliku na disku upis
se ne radi! Ovaj korak zahteva da se u tabelu stranica uvede bit čistoće (engl. dirty flag). Znatno povećava performanse!
3. Žrtvovani okvir se u tabeli stranica obeležava kao nevalidan.
4. Željena stranica se učitava u oslobođeni okvir.
5. Tabela stranica se ažurira i nova stranica se obeležava kao validna bitom validnosti.
Algoritmi za izbor žrtve
U slučaju pojave PF prekidnog signala smanjuju se performanse procesa. Broj PF prekida mora se održati na što
manjem nivou. Potrebno je naći algoritam koji će za datu sekvencu referenci da postigne n ajmanju verovatnoću
pojave PF grešaka. Algoritmi za izbor žrtve:
• FIFO
• Optimalni
• LRU
• Druga šansa
• NRU
• Frekvencijski algoritmi (LFU, MFU)

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:

Broj PF prekida za datu sekvencu:


9

Algoritmi za izbor žrtve: LRU


LRU algoritam (engl. least recently used) žrtvuje stranicu koja najduže nije korišćena. LRU svakoj stranici dodeljuje
vreme poslednjeg korišćenja. Vreme poslednjeg korišćenja se ažurira sa sa svakim pristupom stranici.
Primer (za datu sekvencu LRU
generiše 12 PF prekida, dok za
istu FIFO generiše 15 a OPT 9):

Algoritam se može realizovati na sledeća dva načina:


• Pomoću brojača. Procesor ima brojač memorijskih instrukcija. Posle
svake memorijske instrukcije vrednost brojača se povećava za jedan.Svaki
okvir ima svoj interni brojač. Svaki put kada se pristupi okviru sadržaj
brojača instrukcija se kopira u interni brojač okvira. Kada dođe do PF
prekida, algoritam bira stranicu čiji je broj najmanji. To znači da najduže
nije korišćena.
• Pomoću steka. Formira se stek koji opisuje redosled pristupanja
stranicama. Nakon PF prekida, žrtvuje se stranica sa vrha steka. Na njeno
mesto se stavlja stranica kojoj se pristupa. Ova realizacija je veoma spora
jer se pri svakom pristupu memoriji stek mora ažurirati.
Algoritmi za izbor žrtve: druga šansa (satni algoritam)
Druga šansa je varijanta FIFO algoritma koja u obzir uzima i korišćenost stranica.
Formira se FIFO red na čiji se kraj stavljaju stranice prilikom učitavanja u
memoriju. Koristi se vrednost R (reference) bitova:
• R bitovi se postavljaju inicijano na 0.
• Brisanje R bita nakon određenog vremena obavlja se pomoću tajmerskih
prekida.
• R bit se postavlja na 1 ako smo od poslednjeg brisanja bar jednom
pristupili stranici.
Potencijalna žrtva je stranica na kraju reda čekanja.
R=0: stranica dugo nalazi u memoriji, nismo joj pristupili. Stranica očigledno nije
potrebna, tako da se može žrtvovati. R=1: stranica je dugo u memoriji ali je i
nedavno korišćena. R bit te stranice biće resetovan posle provere. Sama stranica
biće prebačena na početak reda opsluživanja. Stranica dobija drugu šansu. Pretraga
se nastavlja dok se ne naiđe na stranicu sa postavljenim R=1.
8
Algoritmi za izbor žrtve: NRU
Algoritam NRU (engl. not recently used) zahteva da se svakom okviru pridruže dva bita:
• R (engl. reference bit) – označava da li smo pristupili tom okviru.
• M (engl. modified) – označava da li smo menjali sadržaj tog okvira.
Na početku rada procesa svi R i M bitovi dobijaju vrednost 0.
Na osnovu vrednosti R i M bitova okvire delimo u sledeće klase:
• R=0, M=0. Stranica nije skoro ni korišćena ni modifikovana. Idealna žrtva.
• R=0, M=1. Stranica nije skoro korišćena, ali je modifikovana. Nije pogodna za zamenu, jer mora da se upiše
na disk, što će izazvati dva I/O ciklusa.
• R=1, M=0. Stranica je skoro korišćena, ali nije modifikovana. Najverovatnije će se koristiti ponovo.
• R=1, M=1. Stranica je skoro korišćena i modifikovana. Verovatno će se ponovo koristiti. Nije pogodna za
zamenu, jer mora da se upiše na disk, što će izazvati dva I/O ciklusa.
Slično satnom algoritmu pretražuju se klasa (0,0), (0,1) ...
Algoritmi za izbor žrtve: frekvencijski bazirani algoritmi
Prethodno algoritmi nisu uzimali u obzir koliko puta je stranica bila referencirana! Dva algoritma koji kriterijum
formiraju na osnovu frekvencije korišćenja stranice su:
• LFU (engl. least frequently used) LFU algoritam zamenjuje stranicu koja ima najmanji broj referenci u
vremenu. Svaka stranica koja se učita se određeno vreme mora štititi od samog algoritma! Kada se pojavi
njena frekvencija je jednaka 1, što to je minimum. Stranica je potenicjalna žrtva i ne bi dobila šansu da se
takmiči sa drugim stranicama.
• MFU (engl. most frequently used) MFU algoritam zamenjuje stranicu koja ima najveći broj referenci.
Algoritam smatra da su te stranice odavno učitane u memoriju i da procesima više nisu potrebne, dok su
stranice sa malim brojem referencu relativno nove i potrebne.
Globalna i lokalna zamena stranica
Globalna zamena. Jedan proces može žrtvovati tuđu stranicu (odnosno poslati je u swap prostor). Broj okvira
dodeljenih procesu može se menjati u vremenu. Na broj PF prekida utiču i drugi procesi.
Lokalna zamena. Jedan proces može žrtvovati isključivo svoje stranice. Broj okvira dodeljenih procesu se ne menja u
vremenu. U slučaju lokalne razmene proces sam diktira svoje PF prekide (drugi procesi nemaju uticaj na broj PF
prekida koje taj proces izaziva). Mana lokalne zamene: blokiran proces ne može ustupiti svoje okvire drugim
procesima. To znači da aktivan proces mora žrtvovati sopstvene stranice. Zbog toga globalna razmena daje bolje
rezultate.

Raspodela okvira po procesima

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
i1 si
ai  n m
S  s
s i – veličina procesa p i
n – broj procesa
S – ukupna virtuelna memorija: n
i
 i1
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.

Kategorije i karakteristike uređaja

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.

Funkcije U/I podsistema:


• upravlja i kontroliše U/I uređaje i operacije koje ti uređaji izvršavaju,
• obezbeđuje što jednostavniji interfejs prema korisniku i prema ostatku sistema.
OS mora da obezbedi podršku za rad sa širokim spektrom ulazno-izlaznih uređaja. Karakteristike uređaja variraju sa:
vrstom uređaja, konkretnim modelom određenog proizvođača hardvera.

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.

Hardver od znacaja za ulazno izlazni podsistem

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.

Registri U/I porta


Tipičan U/I port se sastoji iz četriri vrste registara:
• Kontrolni registar. Služi za postavljanje režima rada uređaja (brzina porta i tip komunikacije). U ovaj registar
procesor isključivo upisuje podatke.
• Statusni registar. Opisuje status (da li je komanda izvršena, da li podatak spreman, …) Procesor iz statusnog
registra isključivo čita podatke.
• Registar podataka za ulazni režim (engl. data-in). Data-in registar služi za čitanje podataka sa ulaznih
uređaja. Procesor iz data-in registra isključivo čita podatke.
• Registar podataka za izlazni režim (engl. data-out). Data-out registar služi za upis podataka na izlazni
uređaj. Iz ovog registra procesor isključivo čita informacije.

Tehnika prozivanja (polling)


Kompletan protokol za interakciju između računara i kontrolera može biti dosta komplikovan. U principu računar i
kontroler funkcionišu po principu proizvođač-potrošač. Realizacija pomoću dva bita:
• Busy bit. U statusnom registru kontrolera. Opisuje stanje kontrolera. Ukoliko je bit setovan, kontroler je
zauzet, odnosno nešto radi. Ukoliko je bit resetovan, kontroler je slobodan i spreman da prihvati komandu.
• Command-ready bit. U komandnom registru kontrolera. Računar ukazuje kontroleru na prisustvo nove
komande. Kada računar setuje ovaj bit to znači da je kontroler dobio komandu i da izvršavanje može da počne.
Primer slanja jednog bajta na serijski kanal.
1. Računar čita statusni registar dok vrednost busy bita ne bude 0.
2. Računar setuje write bit u komandnom registru i upisuje bajt u data-out registar.
3. Računar setuje command-ready bit.
4. Kontoler setuje busy bit.
5. Kontroler čita svoj komandni registar i detektuje write komandu. Kontroler čita data-out registar. Kontroler
organizuje ciklus za slanje sadržaja data-out registra na serijski kanal.
6. Ako je sve u redu kontroler briše Command-ready bit. Error bit u statusnom registru koji ukazuje na pojavu greške.
Busy bit koji ukazuje da je komanda završena.
Počev od kraja koraka 4 računar stalno proverava da li je busy bit 0, kako bi znao kada je
komanda završena.
Ovakva petlja mora da se ponovi za svaki ciklus. U koraku 1 imamo tehniku prozivanja (engl. polling). Ova tehnika se
takođe naziva zaposlen čekanjem (engl. busy-waiting). Računar ponavlja čitanje statusnog registra sve dok vrednost
busy bita ne postane 0.Tehnika prozivanja se na mnogim CPU obavlja u sledećoj petlji:
• Čitanje statusnog registra
• Ekstrakcija i analiza busy bita
• Odluka na osnovu vrednosty busy bita: Povratak u petlju ako je vrednost busy bita 1 Izlaz iz petje ako je
vrednost busy bita 0.
U slučaju sporih uređaja procesor ostaje zaposlen čekanjem u krajnje dugačkim petljama! Osnovni nedostatak: t rošenje
procesorskog vremena na petlju prozivanja. Nedostatak se može ukloniti uvođenjem mehanizma prekida (engl.
interrupt).

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.

DMA (Direct Memory Access)


Kada uređaj pripremi podatke procesor treba da preuzme svaki bajt iz kontrolera. Procesor svaki put proverava statusni
bit što znači da se izvršavaju dva I/O ciklusa. Ova tehnika čitanja podataka se naziva programirani ulaz-izlaz (PIO). U
slučaju masovnih transfera podataka PIO tehnika unosi veliki gubitak vremena. Primer: čitanje sa HDD.
Zato se koristi DMA kontroler (engl. direct memory access). Obavlja transfer podataka mogao na relaciji kontroler -
operativna memorija i obrnuto. Ima signale za upravljenje transferom sa kontrolera. Ima signale kojima upravlja
memorijskim ciklusima.
Iniciranje DMA transfera:
• Koja je početna memorijska adresa?
• Kolik bloka bajtova treba da se prenese?
• Koji je smer transfera?
I/O kontroler se ne navodi kao izvorište jer je DMA fizički povezan sa njim.
Uprošćeni primer prenosa podataka na relaciji disk-memorija preko
DMA kontrolera.
1. Proces: “hej, drajveru, prenesi podatke sa diska u bafer koji na
memorijskoj adresi X.”
2. Drajver: “hej, disk kontroleru, izvrši transfer C bajtova sa diska
u bafer na adresi X.”
3. Disk kontroler inicira DMA transfer.
4. Disk kontroler redom šalje bajtove podataka DMA kontroleru.
5. DMA kontroler prenosi podatke u bafer. DMA uvećava
memorijsku adresu X nakon svakog prenešenog bajta. DMA
smanjuje broj bajtova C nakon svakog prenešenog bajta.
6. Kada je prenešen poslednji bajt (C=0) DMA šalje prekidni
signal procesoru. Prekidni signal je obaveštenje o završenom
transferu.
Handshake protokol između DMA i I/O kontrolera odvija se preko signala:
• DMA-request
• DMA-acknowledge.
Protokol:
• Kontroler inicira DMA ciklus postavljanjem signala DMA-request.
• DMA posle primanja ovog signala zauzima memorijsku magistralu
• DMA organizuje memorijski ciklus u kome se bajt iz I/O kontrolera prenosi u memoriju.
• Po okončanju ovog ciklusa DMA kontroler postavlja signal DMA-acknowledge. To označava kraj jednog
DMA ciklusa.
• DMA automatski inkrementira adresu memorijskog bafera za sledeći DMA ciklus a smanuje broj bajtova za
prenos.
• DMA postavlja prekidni signal procesoru kada prenese sve bajtove.

Uniformni interfejs ka aplikacijama

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.

Blokirajući i ne-blokirajući sistemski pozivi


Sistemski pozivi dozvoljavaju izbor između blokirajućih i
neblokirajućih U/I operacija.
Proces koji izdaje blokirajući sistemski poziv za izvršavanje
operacije: Blokira se i čeka da se operacija izvrši. Oslobađa procesor i vraća se u red čekanja na procesor tek onda kada
se operacija završi.
Proces koji izdaje ne blokirajući sistemski poziv za izvršavanje operacije: Ne blokira, nego nastavlja da radi. Primer:
Komandni interpreter koji kao proces koji obezbeđuje korisnički interfejs. Podaci se primaju sa tastature i istovremeno
prikazuju na ekranu. Interpreter inicira zadatu komandu tek kada se svi podaci prime sa ulaznog uređaja.

Servisi koje obezbeđuje ulazno-izlazni podsistem

Raspoređivanje ulazno-izlaznih operacija.


Obezbeđivanje dobrog poretka izvršavanja ulazno-izlaznih operacija u cilju postizanja optimalnih performansi. Poredak
u kome su zahtevi za izvršavanjem U/I operacija pristigli u sistem: po pravilu je strogo stohastički, gotovo nikada nije
optimalan. Raspoređivanje operacija se zasniva na redu čekanja. Definiše se za svaki uređaj posebno. Red se formira
na na osnovu nekog kriterijuma. Primer: kriterijum kojim se smanjuje vreme potrebno za pozicioniranje glava diska.
Prilikom formiranja kriterijuma mora se sprečiti pojava zastoja i zakucavanja.

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.

Performanse U/I podsistema

Performansi ulazno-izlaznog podsistema mogu se povećati ukoliko se:


• balansirano koristi procesor, memorija i ulazno-izlazni podsistem (preopterećenje u jednom delu dovodi do
besposlenosti u drugom delu),
• koriste DMA kontroleri i keš mehanizami,
• smanji broj prekida povećanjem jedinične količine transfera ili uvođenjem tehnike prozivanja (ukoliko se
zaposlenost čekanjem može minimizovati),
• smanji broj prebacivanja konteksta procesa,
• smanji broj kopiranja istih podataka na putu od aplikacije do I/O uređaja.
Generalizovano, performanse se mogu uvećati na sledećim nivoima:
• nivo aplikativnog softvera,
• nivo drajvera,
• nivo hardvera.

15
4. Sekundarne memorije

Struktura diskova

Šta je hard disk a šta disk kontroler?


Skup rotacionih kružnih ploča koje rotiraju oko zajedničke ose. Površine
ploča su presvučene magnetnim materijalom. Svaka površina ima pridruženu
glavu za čitanje i pisanje. Čitaju ili upisuju podatke sa magnetnih ploča.
Linearno se pokreću pomoću sopstvenog servo-sistema. Na taj način im je uz
rotaciju ploča omogućen pristup svim delovima magnetne površine. Računar i
disk komuniciraju putem disk kontrolera (engl. disk controller). Disk
kontroleri pružaju interfejs ka ostatku računara. Računar ne mora da zna
način rada niti da kontoliše elektro-mehaniku diska. Dodatne funkcije
kontrolera:
• baferovanje podataka koje treba upisati na disk,
• keširanje diskova,
• automatsko obeležavanje neispravnih sektora diska.

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).

Smernice razvoja savremenih disk uređaja


• Smanjivanje vremena poziociniranja (engl. seek time).
• Povećanje rotacione brzine.
• Povećanje gustine magnetnog mediuma.
• Zonska tehnika (engl. Bit Zone Recording). Unutrašnje staze (bliže centru) imaju manju površinu pa samim
tim i manje magneta. Cilindri se grupišu u zone iste gustine. Povećava se kapacitet diska i brzina čitanja sa
medijuma. Upravljanje promenljivom gustinom staza je složenije.
• Rezervni regioni na mediumu (engl. spare regions) za zamenu defektnih blokova.
• Upotreba procesora solidne snage na disku.
• Keširanje na disk uređaju (engl. On-Board Cache).
• Logičko-fizičko mapiranje blokova na disku (LBN  PBN). Bit Zone Recording i upravljanje defektima utiču
na složenost mapiranja.
• …

IDE, SATA, SCSI


IDE (engl. Integrated Drive Electronics) tj. ATA (engl. Advanced Technology Attachment).
• Kontroler integrisan na matičnoj ploči.
• /dev/hda, /dev/hdb, ...
• Dva kanala: primary i secondary.
• Na svaki se mogu vezati do dva uređaja u odnosu master-slave.
SATA (engl. Serial ATA)
• Kontroler integrisan na matičnoj ploči.
• /dev/sda, /dev/sdb, ...
SCSI
• Kontroler NIJE integrisan na matičnoj ploči.
• Na kontroler je moguće vezati od 7 do 15 uređaja.
• SCSI uređaji se ne nalaze u master-slave odnosu već se vezuju prema prioritetima.
• Prioritet uređaja određen je njegovim ID koji se postavlja preko džampera.
• ID=0 (najviši prioritet), ID=15 (najniži prioriter), ID=7 (rezervisan za SCSI kontroler).

16
Priprema diskova za rad

Formatiranje diskova niskog nivoa (stvar prošlosti).


Kreiranje particija.
• MBR (engl. Master Boot Record). Najviše četiri particije po jednom disku. Primarne particije (primary).
Produžena particija (extended) – okvir u kome se mogu kreirati nekoliko logičkih particija. Logičke particije se
ponašaju kao primarne, ali se razlikuju po načinu kreiranja.
• GPT (engl. GUID Partition Table). Unified Extensible Firmware Interface (UEFI) standard. 64 bita za logičke
adrese. Najveća veličina diska je 2 64 sektora. Ako je sector 512 bajta, najveća veličina diska je 2 64 x 2 9
bajta = 9.4ZB (9.4 × 10 21 bajta).
Kreiranje sistema datoteka.

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.

Nivoi keširanja diskova


• Keširanje na nivou OS-a (engl. built-in file caching).
• Keširanje na nivou disk kontrolera (engl. HBA level caching). Ne koristi se za klasične disk kontrolere.
Nezaobilazni deo u najkvalitetnijim i najsloženijim disk kontrolerima.
• Keširanje na nivou disk uređaja (engl. disk drive level caching). Diskovi imaju solidne procesore i veliku
količinu memorije koja služi za keširanje. Disk keš memorija optimalno je mesto za tehniku predikovanog
čitanja! Disk najbolje poznanje svoj servo-sistem i raspored podataka na medium!
• RAID keširanje (engl. caching in RAID). Svaki RAID kontroler pored RAID funkcionalnosti predstavlja i
potpuni keš kontroler.
• Keširanje na nivou aplikacije (engl. application level caching). Svi pomenuti keš nivoi su po prirodi opšte
namene, generalni. Zahvaljući dobrom poznavanju sopstvenih potreba u radu sa diskom, kvalitena aplikacija
kešira disk saglasno svojim potrebama (znatno bolje nego generalni keš na nivou OS-a).

Raspređivanje zahteva za rad sa diskom

Vreme pristupa kod diska zavisi od:


• Vremena pozicioniranja glava sa tekuće pozicije na zahtevani cilindar.
• Vremena rotacionog kašnjenja (zavisi od brzine okretanja rotacionih površina diska).
• Brzine transfera podataka sa magnetnog medijuma (zavisi od gustine medijuma I brzine okretanja rotacionih
površina diska).
Brzina disk transfera (engl. bandwidth): količnik ukupnog broja prenetih bajtova i ukupnog vremena. U višeprocesnoj
okolini u jednom trenutku postoji veliki broj zahteva za rad sa diskom. Pravilnim raspređivanjem ovih zahteva (engl.
disk scheduling) ukupno vreme pozicioniranja ili rotacionog kašnjenja se može smanjiti.
Napomena: Relativne performance algoritama izrazićemo ukupnim brojem cilindara koje glave za čitanje i pisanje
prelaze pri opsluživanju zahteva.
Svaki zahtev koji je upućen disku sadrži sledeće informacije:
• da li se zahteva operacija čitanja ili pisanja,
• adresu bloka na disku,
• adesu memorijskog bafera,
• broj bajtova koje treba preneti.
Više zahteva može stići istovremeno. U jednom trenutku disk može obraditi
samo jedan. Postoje više algoritama koji će obaviti raspoređivanje zahteva
za rad sa diskom. FCFS SSTF, SCAN, C-SCAN, LOOK, C-LOOK.
Algoritam FCFS (engl. first come, first served). Najjednostavniji algoritam.
Zahteve prosleđuje u onom redosledu u kome su stigli. Obezbeđuje krajnje
fer odnose prema prispelim zahtevima, ali i znatno loše performanse.
Primer: Trenutna pozicija glava za čitanje i pisanje je na cilindru 53. U red
čekanja za disk zahtevi pristižu po sledećem redu: 98, 183, 37, 122, 14, 124,
65, 67. Ukupni pomeraj glava diska iznosi 640 cilindara.
17
Algoritam SSTF (engl. shortest seek time first). Od prispelih zahteva najpre se uzima onaj
koji će izazvati najmanji pomeraj glava (engl. seek time).
Primer: Trenutna pozicija glava za čitanje i pisanje je na cilindru 53. U red čekanja za disk
zahtevi pristižu po sledećem redu: 98, 183, 37, 122, 14, 124, 65, 67. Ukupni pomeraj glava
diska iznosi 236 cilindara.
Napomene: Podseća na SJF (engl. shortest job first) algoritam za raspoređivanje procesora.
Optimalan je po pitanju vremena pozicioniranja. Kod SSTF algoritma prisutan je problem
zakucavanja (engl. stravation). Glave mogu ostati veoma dugo u jednoj zoni opslužujući
zahteve koji unose male pomeraje. Zahtevi čiju su cilindri daleko od trenutne pozicije
mogu dugo čekati u redu.
Algoritam SCAN. Radi na principu lifta koji se naizmenično kreće od prizemlja do vrha
zgrade. Algoritam naizmenično pomera glave od početka do kraja diska i unazad i
opslužuje zahteve koji se nalaze na tekućem cilindru. Na ovaj način se rešava problem
zakucavanja.
Primer: Trenutna pozicija glava za čitanje i pisanje je na cilindru 53. U red čekanja za
disk zahtevi pristižu po sledećem redu: 98, 183, 37, 122, 14, 124, 65, 67. Ukupni pomeraj
glava diska iznosi 208 cilindara.
Napomene: Prilikom obrade zahteva, SCAN daje prednost unutrašnjim cilindrima u
odnosu na periferne.
Algoritam C-SCAN (engl. Circular SCAN). Varijanta SCAN algoritma koja razrešava
problem favorizovanja unutrašnjih cilindara. Izmena se sastoji u tome da se zahtevi
opslužuju samo u jednom smeru. Kada glave dođu do poslednjeg cilindra, pomeraju se na
početak, ne opslužujući zahteve na tom putu. Posle toga se nastavlja opsluživanje zahteva
od početnog do krajnjeg cilindra.
Primer: Trenutna pozicija glava za čitanje i pisanje je na cilindru 53. U red čekanja za
disk zahtevi pristižu po sledećem redu: 98, 183, 37, 122, 14, 124, 65, 67.
Algoritmi LOOK i C-LOOK (engl. Circular LOOK). Modifikacije SCAN i C-SCAN
algoritama. Glave se ne pomeraju do poslednjeg zahteva koji se nalazi u redu čekanja u
tom smeru. LOOK opslužuje zahteve u oba smera. C-LOOK opslužuje zahteve samo u
rastućem smeru do poslenjeg zahteva u redu nakon čega se vraća na zahtev najbliži
početku diska.
Primer (C-Look): Trenutna pozicija glava za čitanje i pisanje je na cilindru 53. U red
čekanja za disk zahtevi pristižu po sledećem redu: 98, 183, 37, 122, 14, 124, 65, 67.
Napomena: Ime su dobili po tome što “gledaju” na kom se cilindru nalazi poslednji
zahtev u tom smeru. U praksi se umesto SCAN algoritama uvek koriste LOOK algoritmi.
Kako izabrati najbolji algoritam za rapoređivanje disk zahteva?
Svi algoritmi su bolji od FCFS, ali je teško odrediti koji je od njih najbolji!
Performanse samih algoritama zavise od prispelih zahteva za rad sa diskom. Kružne varijante SCAN i LOOK
algoritama imaju mnogo bolju raspodelu opsluživanja I nemaju problem zakucavanja (engl. starvation). C-LOOK je
najbolje rešenje za jako opterećene sisteme.
Modernije varijate ovih algoritama minimiziraju i poziciniranje i rotaciono kašnjenje. Rotaciono kašnjenje ima
dominantan uticaj na performanse savremenih diskova. Jedan takav algoritam je SATF (engl. shortest access time first).
Radi na principu SSTF algoritma ali pri odabiru sledećeg zahteva iz reda računa obe mehaničke komponente.
Najsavremeniji algoritmi uzimaju u obzir i keširanje na samom disk uređaju. C-LOOK u kombinaciji sa ugrađenim disk
keširanjem daje najbolje rezultate, što potvrđuju brojne simulacije iz otvorene literature.

Oporavak sistema od otkaza upisa


Upis na disk može da se završi na 3 načina:
• Uspešno okončan upis. Svi sektori su uspešno upisani na disk.
• Delimični otkaz. Otkaz je nastupio u sredini transfera. Neki su sektori dobro upiani, a neki su oštećeni.
• Potpuni otkaz. Ništa nije upisano jer je ciklus upisa odmah otkazao.
Kako se sistem može oporaviti od otkaza? Koristimo:
• Tehnike vođenja dnevnika transakcija (engl. journalling).
• RAID strukture koje koriste princip ogledala i parnosti.

Osnovne karakteristike RAID sistema

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

Datoteka (engl. file) je:


• za korisnika kolekcija povezanih informacija (logička celina sa značenjem),
• za OS objekat koji se čuva na sekundarnoj memoriji.
Formalno, datoteka je
• organizovani skup podataka
• koji ima svoje ime i
• koji se prema određenom prostornom rasporedu čuva na sekundarnoj memoriji.
Datoteku osim sadržaja i imena opisuju i dodatni atributi poput:
• tipa datoteke (pooću tipa OS preliminarno određuje vrstu datoteke povezuje je sa nekom aplikacijom),
• informacije o vlasništvu i pravima pristupa, odnosno atributi koji regulišu kontrolu pristupa datoteci (kao što
su kontrola čitanja i modifikacije datoteke)
• vreme i datum kreiranja, zadnje izmene, zadnjeg pristupa, itd.
Operacije koje se mogu obaviti nad datotekama U operacije koje se mogu obaviti nad datotekama spadaju:
• otvaranje datoteke,
• kreiranje datoteke,
• čitanje podataka iz datoteke u memorijski bafer,
• upis podataka u datoteku
• pozicioniranje unutar datoteke (engl. file seek),
• brisanje datoteke (ova operacija ukljanja kontrolni blok datoteke iz direktorijuma, a sadržaj datoteke se
najčešće fizički ne briše, tako da je moguć povratak sadržaja – engl. undelete),
• odsecanje datoteke (engl. truncate), i
• zatvaranje datoteke.
19
Tabele otvorenih datoteka
OS po pravilu čuva:
• globalnu sistemsku tabelu otvorenih datoteka (engl. system wide open-file table), I
• posebnu tabelu otvorenih datoteka za svaki proces (engl. per process open-file table).
Prilikom otvaranja datoteke: u direktorijumskoj strukturi se traži kontrolni blok datoteke, kontrolni blok se upisuje u
glavnu sistemsku tabelu, dalji pristup datotekama se realizuje pomoću ovih tabela. Kontrolni blok datoteke se ažurira na
disku po zatvaranju 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, …

Metode pristupa datotekama


Sekvencijalni metod pristupa Informacije se prosleđuju u tačnom redosledu jedna iza
druge. Posle svakog pristupa datoteci vrednost tekućeg ukazivača se ažurira. Sekvencijalni
pristup zahteva da postoji mogućnost da se datoteka premota na početak. Moguće operacije:
• čitanje sledećeg bloka,
• upis u sledeći blok,
• pozicioniranje na početak.
Primer: magnetna traka
Direktni metod pristupa Omogućava pristup bilo kom delu datoteke, tako što se: najpre se odredi njegova pozicija na
disku, zatim se pristupi podacima. Direktan pristup omogućava korisniku da pristupi krajnjem bloku datoteke bez
čitanja prethodnog sadržaja! Moguće operacije:
• čitanje n-tog bloka,
• upis u n-ti blok,
• pozicioniranje na n-ti blok,
• čitanje sledećeg bloka,
• čitanje prethodnog bloka.
Primer: disk
Metod pristupa pomoću indeksnih tabela Koristi se npr. za pristup odgovarajućem slogu u bazi
podataka. Svakoj datoteci pridružena je indeksna datoteka, uređena po nekom kriterijumu.

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.

Operacije koje se mogu obaviti nad direktorijumima


U operacije koje se mogu obaviti nad direktorijumima spadaju:
• prikazivanje sadržaja direktorijuma (takozvano listanje direktorijuma)
• pretraživanje direktorijuma (datoteka se u okviru tekućeg direktorijuma pronalazi tako što se upoređuju
kontrolni blokovi datoteka sa zadatim imenom),
• promena imena datoteke,
• promena imena poddirektorijuma,
• kreiranje i brisanje datoteka u okviru tekućeg direktorijuma,
• kreiranje i brisanje poddirektorijuma u okviru tekućeg direktorijuma.

Logička struktura direktorijuma


Jednonivovska (v. str. 14). Na sistemu datoteka postoji jedan direktorijum u kome se nalaze
sve datoteke. Nepreglednost i problem imenovanja datoteka koje pripadaju različitim
korisnicima. Sve datoteke u direktorijumu moraju da imaju različita imena.
Dvonivovska (v. str. 15). Na prvom nivou se nalazi glavni direktorijum (engl. master file
directory, MFD) Na drugom poseban diretorijum za svakog korisnika (engl. user file
directory, UFD). Ne rešava problem logičke organizacije datoteka za pojedinačne korisnike.
20
Višenivovska (direktorijumsko stablo, v. str. 16). Direktorijum najvišeg
nivoa je početni ili korenski direktorijum (engl. root). U svakom
direktorijumu se mogu kreirati datoteke i poddirektorijumi (engl.
subdirectory). Stablo rešava sve probleme logičke organizacije sa aspekta
korisnika. Svaka datoteka ima svoje ime i putanju. Putanja može biti
apsolutna ili relativna.

Linkovi (reference)

Datoteke se na većini sistema datoteka mogu linkovati (referencirati


drugim imenima).
Razlozi za korišćenje linkova:
• lakše pretraživanje i korišćenje datoteka,
• ušteda prostora na disku.
Neki sistemi datoteka podržavaju više vrsta linkova.
• Linux: čvrsta referenca (engl. hard link) i simbolička
referenca (engl. symbolic link).
• Windows: prečica (engl. shortcut) – uslovno rečeno, ekvivalent
simboličkog linka.
Napomene u vezi hard linkova: Link se mora nalaziti na fizički istom
sistemu datoteka. Ne mogu se linkovati datoteke sa mrežnog sistema
datoteka (NFS). Ne mogu se linkovati direktorijumi ili nepostojeće datoteke.

Zaštita i deljenje datoteka

Kontrola pristupa (Linux OS)


Tri vlasničke kategorije:
• vlasnik (engl. owner),
• grupa (engl. group),
• ostali (engl. others, public),
Prava pristupa za svaku vlasničku kategoriju se eksplicitno dodeljuju svakom objektu prilikom kreiranja (uz redukciju
preko promenljive umask) a kasnije se mogu promeniti.
Potpuni skup prava za svaku vlasničku kategoriju čine:
• pravo čitanja (engl. Read),
• pravo upisa (engl. Write),
• pravo izvršavanja (engl. eXecute).
Primer: $ ls -l dat1
-rw-r—r-- 1 u1 g1 509 Mar 10 17:21 dat1
Liste za kontrolu pristupa (ACLs).

Kontrola pristupa (Windows NTFS)


Administrator sistema kreira korisničke grupe i u njih učlanjuje korisnike i druge grupe. Svakom objektu na NTFS
sistemu datoteka se prilikom kreiranja dodeljuje grupa informacija koja se tiče kontrole pristupa (engl. Security
Descriptor). Security descriptor sadrži informacije o:
• dozvolama za pristup resursu (NTFS dozvole),
• vlasniku resursa.
NTFS dozvole se dodeljuju ili oduzimaju korisnicima i grupama. Svaki korisnik ili grupa predstavlja jedan Access
Control Entry (ACE). Skup svih dozvola predstavlja tabelu Access Contol List (ACL). Grupe i korisnici su u tabeli
predstavljeni numeričkim vrednostima SID (engl. Security Identifiers) koje ih jednoznačno identifikuju. Prava pristupa
data grupi prenose se na grupe i korisnike koji su u tu grupu učlanjeni.
Postoje dve vrste dozvola koje se mogu dodeliti: standardne i specijalne. Svaka standardna dozvola je sistemski
predefinisan skup atomarnih dozvola. Atomarne dozvole omogućavaju korisniku da nad objektima izvrši određenu
akciju. U standardne dozvole spadaju:
• Read,
• Write,
• Read and Execute,
• Modify (predstavlja uniju standardnih dozvola Read and Execute i Write i atomarne dozvole za brisanje
objekta),
• Full Control,
• List Folder Contents (dozvola koja se može dati samo nad direktorijumom, koja omogućava korisniku da vidi
sadržaj direktorijuma).

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.

Strukture podataka neophodne za realizaciju sistema datoteka


• BCB (engl. boot control block). Sadrži informacije koje se potrebne za otpočinjanje procesa podizanja OS.
Obično prvi blok sistema datotka.
• Kontroni blok partcije (engl. partition control block, PCB). Sadrži informacije o sistemu datoteka. Primer:
veličina bloka, ukupni broj blokova, broj slobodnih blokova, itd.
• Kontrolne strukture za alokaciju datoteka. Određuju konkretan sadržaj datoteke (blokove u kojima je
smešten sadržaj). Primer: i-node tabela (UNIX), FAT tabela (FAT) i MFT (NTFS).
• Direktorijumske strukture koje sadrže kontrolne blokove datoteka
• Kontrolni blokovi datoteka (engl. file control block, FCB). Sadrži atribute datoteka i ukazivače na alokaciju
datoteke. Primer (Linux): fileinfo strukture u direktorijumu + i-node.

Tabele otvorenih datoteka


U operativnoj memoriji se definišu strukture koje ubrzavaju rad sistema
datoteka. U memorijske strukture podataka spadaju:
• tabela otvorenih datoteka na sistemskom nivou (engl. sistem wide
open-file table), koja sadži kontrolne blokove za svaku otvorenu
datoteku.
• tabela otvorenih datoteka po procesu (engl. per proces open-file table),
koja sadži ukazivač na glavnu tabelu i druge infomacije, kao što je
tekući ukazivač na datoteku.
Prilikom otvaranja datoteke kontrolni blok se iz direktorijuma upisuje u glavnu
memorijsku tabelu. Pri svakom pristupu datoteci iz tabele procesa se preko
glavne tabele otvorenih blokova pronalaze blokovi datoteke na disku, a zatim se
njima pristupa.

Aktiviranje sistema datoteka


Svaki sistem datoteka pre korišćenja mora da se aktivira. Kod nekih OS ovaj postupak je transparentan i ne zahteva
učestvovanje korisnika. Drugi OS zahtevaju da korisnik sa odgovarajućim privilegijama: eksplicitno odredi koji će
sistemi datoteka biti automastski aktivirani a koji ne, koje sisteme datoteka ostali korisnici naknadno mogu
aktivirati. Dve osnovne metode aktiviranja sistema datoteka su:
• mapiranje na logičke diskove (koreni direktorijum sistema datoteka poklapa se sa korenim direktorijumom
logičkog diska) i
• montiranje na drugi direktorijum (Koreni direktorijum sistema datoteka poklapa se sa direktorijumom na
koji je montiran).
Virtuelni sistem datoteka
Većina operativnih sistem podržava rad sa različitim sistemima datoteka. Zato se uvodi novi
logički koncept – virtuelni sistem datoteka (engl. virtual filesystem, VFS). VFS
omogućava korisniku da na isti način pristupa svim datotekama, bez obzira kom sistemu
datoteka pripadaju. Korisnik se putem sistemskih pozivaobraća virtuelnom sistemu
datoteka. VFS obrađuje zahrev i upućuje poziv za rutine odgovarajućeg sistema datoteka.

22
Dodela prostora za datoteke

Blokovi diska se datotekama mogu dodeliti korišćenjem sledećih metoda alokacije:


Dodela kontinualnog prostora

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.

Metoda indeksnih blokova


Svakoj datoteci se dodeljuje indeksni blok.Indeksni blok sadrži informacije o
blokovima koji su dodeljeni datoteci. Svi ukazivači na blokove podataka koji
pripadaju datoteci smešteni na jednom mestu. Kraj datoteke označen je slogom
EOF u indeksnom bloku. U kontrolnom bloku datoteke se nalazi adresa
odgovarajućeg indeksnog bloka. Prednosti:
• nema eksterne fragmentacije,
• pristup datoteci je direktan.
Potencijalan problem je dodela prostora velikim datotekama čiji se prostorni raspored ne
može opisati jednim indeksnim blokom. Ovaj problem se može rešiti na dva načina:
vezivanjem indeksnih blokova i višenivovskim adresiranjem.
Vezivanje indeksnih blokova. Za opis prostornog rasporeda datoteke koristi se veći broj
indeksnih blokova. Poslednji zapis u indeksnom bloku predstavlja ukazivač na sledeći
indeksni blok.
Višenivovsko adresiranje Kontrolni blok datoteke ukazuje na jedan indeksni blok prvog
nivoa. Indeksni blok prvog nivoa koji ukazuje na n indeksnih blokova drugog nivoa.
Indeksni blokovi drugog nivoa adresiraju blokove datoteke. Broj nivoa se po potrebi može
povećati.

Upravljanje slobodnim prostorom

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.

Pouzdanost sistema datoteka

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.\

Linux sistemi datoteka

U objekte Linux sistema datoteka spadaju:


• regularne datoteke,
• direktorijumi (mogu se posmatrati kao specijalne datoteke
koje sadrže objekte sistema datoteka, uključujući i
poddirektorijume),
• hard linkovi (alternativna imena datoteka),
• simbolički linkovi (prečice, odnosno datoteke čiji su sadržaji
putanje i imena objekata na koji upućuju),
• blok i karakter specijalne datoteke (opisuju uređaje, odnosno
drajvere u kernelu),
• imenovani pipeline.
Osnovna struktura svih domaćih Linux sistema datoteka je slična.
Linux sistem datoteka čine:
• zaglavlje (engl. superblock),
• tabela indeksnih čvorova (engl. i-node table),
• blokovi sa podacima (engl. data blocks),
• direktorijumski blokovi (engl. directory blocks),
• blokovi indirektnih pokazivača (indirection block).

6. Distribuirani sistemi

Uvod u distribuirane sisteme

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.

Karakteristike distribuiranih sistema


• Transparentnost. DS korisniku treba da izgleda kao konvencionalni centralizovani sistem.
• Otpornost na greške. DS treba da nastavi funkcionisanje u slučaju bilo kog otkaza. DS mora da detektuje
otkaz i da pronađe sajt koji će zameniti onoga ko je “ispao iz igre”.
• Skalabilnost. Sa povećanjem zahteva DS treba lako da prihvati dodavanje novih računara i resursa.
• Deljenje resursa. DS sistemi obezbeđuju mehanizme za deljenje datoteka, obradu informacija u distribuiranim
bazama podataka, deljenje štampača i specijalizovanog hardvera.
• Ubrzavanje izračunavanja. Može da se obavi takozvanim deljenjem opterećenja (engl. load sharing). Proces
se izdeli na celine koje se obrađuju na posebnim računarima u mreži. Nakon toga, rezultati parcijalnih
izračunavanja se spajaju.

Detekcija greške i oporavak


U distribuiranim sistemima moguće su različite vrste hardverskih otkaza:
• otkaz sajta,
• otkaz linka,
• gubitak poruke.
Kako se može ustanoviti da li je otkazao link ili host? Pretpostavka: sajtovi A i B imaju fizički link koji funkcioniše. U
fiksnim intervalima oba sajta šalju poruke tipa <I-am-up>. Sajt A ne prima ovu poruku u propisnom intervalu i
pretpostavlja da je nešto otkazalo. Ako i dalje nema poruke sajt A šalje poruku <Are-you-up>. Ako i dalje nema
odgovora sajt A pošalje istu poruku preko druge putanje. Ukoliko se sajt B javi zaključuje se da je link otkazao. Šta
možemo da zaključimo ako odgovora nema ni preko druge putanje?
Ako i preko druge putanje nema odgovora tada se doazi do nepreciznog zaključaka:
• host B otkazao,
• prvi link otkazao,
• drugi link otkazao ili
• poruka je izgubljena.
Dakle: jedan od ove četiri vrste otkaza se dogodio, ali ne može se ustanoviti tačno koji.
Nakon detekcije greške otpočinje procedura za rekonfiguraciju sistema:
• Ako je direktni link između A i B otkazao: svaki sajt u sistemu mora da dobije tu informaciju, razlog je
ažuriranje tabela rutiranja.
• Ako se pretpostavi da je host otkazao: svaki sajt u sistemu mora da dobije tu informaciju. Razlog je
sprečavanje pokušaja ostvarivanja konekcije sa tim sajtom.
Oporavljeni link ili host se moraju ponovo vratiti u sistem. Šta se u tom slučaju čini? Oporavljen link – link se unosi u
tabele za rutiranje. Oporavljen sajt – svi sajtovi se obaveštavaju da je prethodno otkazani host ponovo u fukciji.

Tipovi mrežno-orijentisanih operativnih sistema

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.

Distribuirana sinhronizacija procesa

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.

Konkurentne atomske transakcije u distribuiranim uslovima

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.

Timestamp protokoli u distrubuiranim uslovima


Svaka transakcija ima vremensku oznaku (TS) koja omogućava serijalizaciju izvršavanja. Jedinstvena TS vrednost
može se generisati centralizovanom ili distrubuiranom metodom.
Dodela TS vrednosti je centralizovana ukoliko jedan sajt generiše i dodeljuje TS vrednosti na osnovu vrednosti svog
logičkog brojača ili sopstvenog časovnika.
Dodela TS vrednosti je distribuirana ukoliko se jedinstvena TS vrednost formira udruživanjem jedinstvene lokalne TS
vrednosti koju svaki sajt generiše putem svog logičkog brojača i identifikatora računara. Poredak udruživanja je
bitan. Problem različitih brzina računara rešava se sinhronizacijom dva logička brojača pri
slanju poruka između sajtova. Primer: Kada jedan sajt poseti drugi sajt sa manjim LC, tada se LC bržeg sajta sinhroniše,
odnosno postavlja na LC vrednost sporijeg uvećanu za 1.
Šema poretka vremenskih oznaka Ova šema kombinuje centralizovanu timestamp metodu sa 2PC protokolom u cilju
obezbeđivanja poretka bez velikog broja kaskadnih roll-back operacija. Različiti zahtevi za čitanje i upis se baferuju, a
zatim izvršavaju u poretku definisanom na sledeći način:
• Zahtev transakcije Ti za čitanje podatka x mora biti odložen ako postoji transakcija Tj koja treba da izvrši
upis podatka x a pri tome je TS(Tj) < TS(Ti).
• Zahtev transakcije Ti za upis podatka x mora biti odložen ukoliko postoji transakcija Tj koja treba da izvrši
čitanje ili podatka x a pri tome je TS(Tj) < TS(Ti).

Upravljanje zastojima u distribuiranim uslovima

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.

7. Odabrane teme iz računarskih mreža

Uvodne napomene

Šta je računarska mreža?


Računarska mreža je skup međusobno povezanih računara visokog stepena autonomije. Šta ovo u prevodu znači?
Računari mogu da funkcionišu samostalno ukoliko nisu umreženi. Jedino čega se korisnik računara odriče jesu mrežne
funkcije operativnog sistema.
Primer: Ukoliko računar isključite sa mreže, moćićete da koristite tekst procesor ili program za obradu slika.Ali: Vaše
dokumente nećete moći da prenesete na drugi računar (ako izuzmete mogućnost kopiranja na fleš). Nemate pristup e-
pošti. Nemate pristup Webu.
3Koje su prednosti mreža?
• Zajedničko korišćenje i jednostavna razmena informacija. Deljenje datoteka E-pošta Web ...
• Zajedničko korišćenje hardvera.
• Zajedničko korišćenje softvera.
• Centralizovana administracija.

Vrste računarskih mreža: mreže ravnopravnih računara


Jednostavne mreže koje se najčešće koriste kako bi korisnici mogli da dele i zajednički koriste datoteke i štampače
preko mreže. Često se nazivaju i radne grupe (workgroup). Asocira na malu grupu ljudi.,Sastoje se od malog broja
povezanih računara (od pet do dvadeset). U ovakvim mrežama nema namenskih servera. Računari su ravnopravni
(ne postoji hijerarhija). Ne postoji administrator koji je odgovoran za celu mrežu. Svaki korisnik određuje koje će
podatke i uređaje i u kojoj meri deliti sa ostalima.
Namenski server (engl. dedicated server) je računar koji radi samo u ulozi servera. Ne koristi se kao klijent ili radna
stanica. Optimizovan je za brzo opsluživanje velikog broja zahteva klijenata iz mreže. Glavna razlika između servera i
radnih stanica je softver koji se koristi! OS: Linux Server, Windows Server. Funkcija servera određena je mrežnim
servisom:
• Server datoteka
• Server za štampanje
• Serveri baze podataka
• Server za e-poštu
• Web server
• Serveri aplikacija (na primer, pristupate Web aplikaciji koja koristi bazu podataka)

ISO OSI referentni model

1978. godine međunarodna organizacija za standardizaciju ISO stvorila je


OSI (engl. Open Systems Interconnection) konceptualni model sastavljen
od 7 slojeva. OSI je standard za povezivanje otvorenih sistema. Termin
otvoreni sistem (engl. open system) odnosi se na arhitekturu čiji su
protokoli I interfejsi (komunikaciona pravila) usklađeni sa objavljenim
standardima. Svaki sloj definiše određene funkcije mreže i može se
zameniti drugim slojem istog nivoa, bez uticaja na ostatak sistema.

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.

Skup protokola TCP/IP

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.

Posebni slučajevi IP adresa


• x.0.0.0 (adresa mreže u klasi A)
• x.y.0.0 (adresa mreže u klasi B)
• x.y.z.0 (adresa mreže u klasi C)
• 127.0.0.1 (adresa lokalne petlje – local loopback address)
• 255.255.255.255 (broadcast adresa)
• x.255.255.255 (broadcast adresa mreže x.0.0.0 koja pripada klasi A)
• x.y.255.255 (broadcast adresa mreže x.y.0.0 koja pripada klasi B)
• x.y.z.255 (broadcast adresa mreže x.y.z.0 koja pripada klasi B).

Kako se IP adrese prevode u fizičke adrese?


Okviri koji se razmenjuju na sloju veze moraju da sadrže tačne fizičke adrese mrežnih kartica. TCP/IP radi sa
logičkim 32-bitnim adresama. ARP obezbeđuje dinamičko povezivanje IP adresa i odgovarajučih hardverskih adresa.

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.

Značajniji brojevi porova


• 20, 21 (File Transfer Protocol, FTP).
• 22 (Secure Shell, SSH).
• 23 (Telnet).
• 25 (Simple Mail Transfer Protocol, SMTP).
• 53 (Domain Name System, DNS).
• 80 (Hypertext Transfer Protocol, HTTP).
• 110 (Post Office Protocol v3, POP3).
• 119 (Network News Transfer Protocol, NNTP).
• 143 (Internet Message Access Protocol, IMAP).
• 443 (HTTPS) – HTTP protokol koji koristi usluge
SSL šifrovanog kanala.
32
Kako se private adrese prevode u javne?
IP adresa u verziji IPv4 je dužine 32 bita. Najveći broj različitih adresa je 2 32 ili približno 4,3x10 9 adresa. Adresni
prostor je nedovoljan da zadovolji sve potrebe.. Jedno od rešenja je prevođenje mrežnih adresa (network address
translation). Primer: javna IP adresa se na osnovu broja porta prevodi u veći broj privatnih IP adresa.
DNS i DHCP

Š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

You might also like