distribuirani operacijski sustavi - skripta

66
S S K K R R I I P P T T A A ( ( r r a a d d n n a a v v e e r r z z i i j j a a ) ) Rijeka, 2007. .

Upload: undergo

Post on 25-Jun-2015

365 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: Distribuirani Operacijski Sustavi - Skripta

SSSKKK RRRIII PPPTTTAAA

(((rrr aaadddnnnaaa vvveeerrr zzziii jjj aaa)))

Rijeka, 2007...

Page 2: Distribuirani Operacijski Sustavi - Skripta

1

SADRŽAJ

1. UVOD.............................................................................................................................2

1.1. Hardware ............................................................................................................................................ 6

1.2. SOFTVER ........................................................................................................................................... 9

1.3. Klijent-server model......................................................................................................................... 14

2. KOMUNIKACIJA......................................................................................................18

2.1. Protokoli slojeva za komunikaciju.................................................................................................. 18

2.2. Poziv procedure na udaljenom računalu – RPC............................................................................ 24

2.3. Grupna komunikacija ...................................................................................................................... 28

3. SINHRONIZACIJA U DISTRIBUIRANIM OPERACIJSKIM SUSTAV IMA ..32

3.1. Sinhronizacija sata ........................................................................................................................... 32

3.2. Algoritmi za odabir .......................................................................................................................... 35

3.3. Mutual Excluison.............................................................................................................................. 37

3.4. Atomičnost ........................................................................................................................................ 39

3.5. Zastoji ................................................................................................................................................ 42

4. PROCESI.....................................................................................................................45

4.1. Procesne niti (thread) ....................................................................................................................... 45

4.2. Model radne stanice ......................................................................................................................... 48

4.3. Pool model procesora ....................................................................................................................... 51

4.4. Upavljanje greškama........................................................................................................................ 52

5. DISTRIBUIRANI DATOTE ČNI SUSTAVI............................................................56

6. SIGURNOST...............................................................................................................57

Page 3: Distribuirani Operacijski Sustavi - Skripta

2

1. UVOD

Distribuirani operativni sustavi (DOS) su nadogradnja operativnih sustava osobnog

računala. DOS je operativni sustav koji omogućuje izvoñenje obrade podataka korištenjem

svih raspoloživih resursa mreže računala. Za razliku od mrežnih operativnih sustava koji

omogućuju kontrolirani pristup drugim računalima i prijenos podataka izmeñu računala,

DOS-i omogućuju izvoñenje obrade na više računala. Korisnik uporabom DOS-a može

pristupati svim resursima mreže kao resursima lokalnog računala. DOS je skup neovisnih

računala prezentiran korisniku kao jedan koherentan sustav. Slika 1. prikazuje smještaj

DOS-a kao meñusloja (middleware) u mrežnoj strukturi računala.

Slika 1. Distribuirani operativni sustav kao meñusloj

Prednosti upotrebe DOS-a u odnosu na mrežne sustave su:

1. Ubrzanje obrade – obrade se izvodi na više računala istovremeno pa je ukupno

vrijeme obrade kraće u odnosu na obradu na jednom računalu.

2. Veća pouzdanost – u slučaju nekorektne obrade izvodi se ponavljanje obrade na

računalu na kome je greška nastala, dok se obrade izvedene na ostalim računalima

ne ponavljaju; u slučaju izvoñenja svih obrade na jednom računalu nužno je

ponavljanje svih obrada.

3. Ravnomjerno opterećenje računalne mreže – opterećena računala se rasterećuju

prijenosom obrade na računala sa manjim opterećenjem.

Page 4: Distribuirani Operacijski Sustavi - Skripta

3

4. Smanjeni zahtjevi za hardverom – dovoljno je imati nekoliko računala sa

natprosječno kvalitetnih hardverskim osobinama, a zatim se sve hardverski

zahtjevnije obrade preusmjeravaju na ta računala.

5. Smanjene zahtjeva za softverom – skupi softverski proizvodi instaliraju se na

nekoliko računala, a zatim se sve potrebne obrade preusmjeravaju na jedno od tih

računala; na taj način se smanjuje potreban broj licenci i cijena uporabe softvera.

Ciljevi razvoja DOS-a:

1. Povezivanje korisnika i resursa.

2. Transparentnost.

3. Otvorenost.

4. Mjerljivost (scalability).

Povezivanje korisnika i resursa omogućuje korisniku pristup resursima svih računala u

mreži i njihova upotreba kao lokalnih resursa računala na koje je korisnik spojen.

DOS-i koji se mogu korisniku i aplikacijama prikazati u formi jednog sustava su

transparentni. Transparentnost u DOS-ima se može prikazati u obliku:

1. Transparentnosti pristupa (access) – prikrivanje razlike u prikazu podataka (različite

hardverske osnove računala koriste različite formate u prikazu podataka) i načina

korištenja resursa.

2. Transparentnost lokacije (location) - korisnik nije upoznat sa fizičkom lokacijom

resursa koji sadrži podatke koje korisnik upotrebljava.

3. Transparentnost migracije (migration) – promjena fizičke lokacije resursa ne utječe

na način pristupa resursima.

4. Transparentnost relokacije (realocation) – ukoliko je omogućena promjena lokacije

resursa u trenutku kada se resurs koristi.

5. Transparentnost replikacije (replication) – mogućnost postojanja više kopija

originalnih podataka sa čim korisnik ne mora biti upoznat.

6. Transparentnost konkurentnosti (concurrency) – mogućnost korištenja skupa

podataka za više korisnika istovremeno pri čemu to korisnici ne opažaju.

Page 5: Distribuirani Operacijski Sustavi - Skripta

4

7. Transparentnost pogreške (failure) – korisnici ne opažaju nefunkcionalnost

odreñenog resursa kao ni postupak oporavka sustava u slučaju kvara.

8. Transparentnost postojanosti (persistance) – korisnik nije upoznat sa trenutnom

lokacijom podataka koji koristi (npr. podaci na kojima se izvodi manipulacija u bazi

podataka kopiraju se u glavnu memoriju, obrañuju i rezultat se pohranjuje u bazu

podataka dok korisnik taj postupak vidi kao izravnu operaciju u bazi podataka).

Otvoreni DOS omogućuje izvoñenje usluga prema prihvaćenim standardima. Standardi za

DOS-e sadržani su u interfejsu (interface) koji se opisuje sa jezikom za definiranje

interfejsa (Interface Definition Languge – IDL). IDL sadrži imena funkcija sa popisom

parametara, rezultata izvoñenja, mogućih iznimki itd. Popis svih funkcija čini specifikaciju.

Osobine dobre specifikacije su kompletnost i neutralnost. Kompletnost znači da je sve što

je nužno potrebno za implementaciju već uključeno u specifikaciju. Neutralnost znači da

specifikacija ne propisuje način implementacije funkcija.

Scalability je svojstvo koje se primjenjuje na tri načina:

1. Prema veličini – mogućnost dodavanja novih korisnika i resursa.

2. Prema lokaciji – odvojenost korisnika i resursa podataka.

3. Prema administriranju – mjera jednostavnosti upravljanja sustavom iako se sustav

sastoji od mnogo neovisnih administrativnih organizacija.

Ukoliko želimo povećati kvalitetu sustava nailazimo na niz ograničenja. Pri porastu broja

korisnika ograničenja se mogu prikazati tabelom 1.

Tabela 1. Ograničenja povećanju broja korisnika

Koncept Primjer

Centralizirani server

Centralizirani podaci

Centralizirani algoritmi

Jedan server za sve korisnike

Jedan on-line telefonski imenik

Izvoñenje routinga zasnovanog na kompletnim informacijama

Primjena centraliziranog servera za sve korisnike uvjetuje veliki stupanj opterećenja

servera, ali u nekim situacijama nije opravdana upotreba više servera iste namjene (jedan

od razloga je sigurnost).

Page 6: Distribuirani Operacijski Sustavi - Skripta

5

Pristup centralizirani podacima je problematičan ako je u pitanju velika količina podataka

jer dolazi do velikog opterećenja servera na kome su podaci pohranjeni. Ukoliko se koristi

više računala mora se osigurati jednakost podataka na svim serverima.

Primjena centraliziranih algoritama nije dobro rješenje jer se komunikacija izvodi slanjem i

primanjem velikog broja poruka pa je poželjno koristiti različite mrežne linije u cilju

ubrzanja izvoñenja algoritma. Za to je potrebno imati informacije o raspoloživim putanjama

i odabrati najpovoljniju putanju za prijenos poruka.

Tehnike za realizaciju scalability-a su:

1. Asinkrona komunikacija – nakon slanja poruke aplikacija pokreće druge aktivnosti,

odnosno ne čeka na primitak odgovora od servera, a kada odgovor stigne on se

prekidom dojavljuje aplikaciji te poseban proces (handler) izvodi obradu pristiglog

odgovora. U nekim slučajevima je bolje većinu obrade izvesti na klijent strani kako

bi se rasteretio server (Slika 2. prikazuje moguću primjenu obrade podataka formu

za unos podataka na klijent strani – (b))

2. Distribucija - znači slanje odreñene komponente podijeljene na manje dijelove i

njihova distribucija putem mreže kako bi se na odredištu svi dijelovi ponovo spojili

u cjelinu. Primjer je rad DNS servera (slika 3.) gdje se primjenom zona izvodi

usluga dodjele imena (naming service) primjenom više decentraliziranih servera.

3. Caching – to je specijalna forma kopije (replike) podataka, a njena upotreba

definirana je potrebama klijenta i servera koji ima originalnu verziju podataka.

Page 7: Distribuirani Operacijski Sustavi - Skripta

6

Slika 2. Primjer obrade na klijent strani

Slika 3. Primjena zona za rad DNS servera.

1.1. Hardware

DOS-i mogu se koristiti za različite vrste računala spojenih u računalnu mrežu. Različitosti

računala uvjetuju razinu složenosti DOS-a. Razlikujemo:

1. Multiprocesorske računalne sustave

2. Multiračunale računalne sustave.

Multiprocesorski sustavi imaju jedan memorijski adresni prostor koji koristi više procesora,

dok za multiračunalni sustavi svaki procesor koristi svoj zasebni adresni prostor (slika 4.).

Arhitektura sustava može se zasnivati na sabirnicama (bus) i na prekidačima (switch).

Multiračunalni sustavi mogu bit homogeni i heterogeni. Homogeni sustavi imaju skup

računala istih karakteristika jer koriste iste procesore (struktura procesora je identična) i

imaju jednu mrežnu tehnologiju. Heterogeni sustavi sastoje se od velikog broja različitih

računala koja su spojena na različite mreže.

Multiprocesori

Svi procesori koriste jedan adresni prostor. Ukoliko se promjena vrijednosti memorijske

lokacije od jednog procesora može u 1 mikrosekundi prikazati na drugom procesoru

Page 8: Distribuirani Operacijski Sustavi - Skripta

7

kažemo da imamo koherentan sustav. Primjena ovog sustava dovodi do opterećenja

sabirnica i smanjenja performansi sustava. Zato se koristi cache memorija. Svaki proces

ima malu brzu cache memoriju za pohranu vrijednosti koje trenutno obrañuje (slika 5.).

Cache memorijom se rasterećuje sabirnica, ali se pojavljuje problem ažuriranja vrijednosti

cache memorije ukoliko dva procesora obrañuju vrijednost na istoj memorijskoj lokaciji.

Slika 4. Razlika multiprocesorskih i multiračunalnih sustava

Slika 5. Primjena cache memorije

Primjena velikog broja procesora uvjetovat će podjelu memorije u module kako bi se

poboljšala svojstva sustava. Pri radu sa memorijom svaki procesor može pristupati

memorijskim modulima korištenjem prekidača. Prekidači mogu biti crossbar i omega.

Crossbar prekidači omogućuju izravno spajanje svakog procesora sa svakim memorijskim

modulom, pružaju veliku brzinu spajanja ali uvjetuju velik broj prekidača. Manji broj

prekidača postiže se upotrebom omega prekidača gdje se upotrebom odabira putanja

pristupa memorijskim modulima (slika 6.).

Page 9: Distribuirani Operacijski Sustavi - Skripta

8

Slika 6. Upotreba crossbar i omega prekidača

Homogeni multiračunalni sustavi

Kako sva računala imaju istu strukturu jednostavnija je njihova upotreba u DOS-u. Ostaje

jedino problem načina povezivanja i komunikacije računala. Pri povezivanju računala

moguća je upotreba strukture rešetke (grid) ili hiperkocke (hypercube) što prezentira slika

7.

Slika 7. Struktura a) rešetke b) hiperkocke

Heterogeni računalni sustavi

Sastoje se od većeg broja različitih računala spojenih na mrežu putem različitih mrežnih

struktura. Primjenom DOS-a generira se sloj (middleware) neovisan o hardveru računala

koje je spojeno na mrežu i komunikacija se izvodi primjenom tog sloja. Na taj način se

izbjegavaju problemi koji nastaju zbog različitosti računala.

Page 10: Distribuirani Operacijski Sustavi - Skripta

9

1.2. SOFTVER

Pri analizi softvera razlikujemo mrežna računala koja koriste OS koji ima kontrolu nad

svim resursima mreže (tightly-coupled system) i OS koji kontroliraju resurse lokalnog

računala (loosely-coupled system). Za prva grupa sustava koristi se DOS, a za drugu mrežni

operativni sustavi. Tabela 2 prikazuje razlike izmeñu OS-a.

Tabela 2. Razlika izmeñu OS-a

DOS – primjena za višeprocesorske i homogene sustave → prikrivaju način uporabe

resursa

NOS – heterogeni sustavi → pružaju lokalne usluge za udaljene klijente

Middleware – dodani sloj na NOS za implementaciju usluga opće namjene → osigurava

transparentnost

DISTRIBUIRANI OPERATIVNI SUSTAVI – DOS

Razlikujemo multiprocesorske DOS i multiračunalne DOS. Analiza primjene mikrokernela

u dizajnu OS jednog računa zasnovanog na klijent-server strukturi (slika 8.) omogućiti će

bolju razumljivost rada DOS-a.

Page 11: Distribuirani Operacijski Sustavi - Skripta

10

Slika 8. Primjena mikrokernela

Multiprocesorski DOS omogućuju povećanje performansi sustava upotrebom više CPU-a.

Aplikacije koje pokrećemo ne uočavaju upotrebu više CPU pri njihovom izvoñenju.

Komunikacija u višeprocesorskom sustavu ostvaruje se manipulacijom podataka izmeñu

dijeljenih memorijskih lokacija za više procesora, a jedini uvjet koji mora biti zadovoljen je

onemogućavanje istovremenog pristupa jednoj memorijskoj lokacija dva ili više CPU

istovremeno. To je omogućeno primjenom semafora, monitora i uvjetnih varijabli (vidi

Operacijski sustavi, skripta).

Multira čunalni DOS omogućuju rad potpuno različitih računalnih sustava, pa je i njihova

kompleksnost znatno veća u odnosu na multiprocesorske DOS-e. DOS za multiračunalne

sustave se zasniva na slanju poruka (slika 9.).

Slika 9. Opća struktura multiračunalnih operativnih sustava

Za prijenos poruka bitna je usklañenost pošiljaoca i primatelja pri slanju poruka, a pri tome

je korisna upotreba buffera.

Page 12: Distribuirani Operacijski Sustavi - Skripta

11

Distribuirani sustavi sa dijeljenom memorijom zasnivaju svoj rad na dijeljenju globalnog

memorijskog prostora računalne mreže. Adresni prostor je podijeljen na stranice (veličine 4

KB ili 8 KB). Princip je da svako računalo koristi stranice u svojoj memoriji, a kada je

potrebno izvoditi stranicu koja nije u lokalnoj memoriji generira se zahtjev za učitavanjem

tražene stranice. Princip je sličan klasičnom straničenju ali se za virtualnu memoriju ne

koristi vanjska memorija nego RAM memorija drugih računala u mreži. Slika 10. prikazuje

princip rada dijeljene memorije. Pri radu sa dijeljenjem memorije javljaju se problemi

uzrokovani obradom podataka unutar jedne stranice koja se izvodi na različitim

procesorima. U tom slučaju promjena varijable u jednoj stranici nije vidljiva u drugoj

stranici i može doći do greške (false sharing) što prikazuje slika 11.

Slika 10. Dijeljenje memorije a) početno stanje b) CPU 1 referencira stranicu 10

c) stanje nakon uporabe replike stranice 10

Page 13: Distribuirani Operacijski Sustavi - Skripta

12

Slika 11. Primjer greške pri obadi varijabli u stranici

koja se izvodi na dva procesora.

Istovremene promjene neovisnih varijabli rezultirati će gubitkom promjena za jedan od

procesa.

Mrežni operacijski sustavi se prilagoñavaju operativnom sustavu svakog računala i ne

stvaraju sliku jedinstvenog sustava kao kod DOS-a. Mrežni operativni sustavi svako

računalo vide posebno i pružaju mrežne servise operativnom sustavu na svakom mrežnom

računalu. Slika 12 prikazuje ulogu mrežnih operativnih sustava u radu distribuiranih

aplikacija.

Slika 12. Opća struktura mrežnih operativnih sustava

Komunikacija u mrežnim operativnim sustavima usmjerena je na prijenos poruka izmeñu

klijent računala i računala namijenjenih pružanju usluga drugim računalima (npr. data

server). Slika 13. prikazuje komunikaciju klijent i server računala u mrežnim operacijskim

sustavima.

Page 14: Distribuirani Operacijski Sustavi - Skripta

13

Slika 12. Komunikacija klijent-server

Middleware je dodatni sloj softvera koji se pozicionira izmeñu distribuiranih aplikacija i

mrežnih operativnih sustava. Middleware je namijenjen usklañivanju različitosti izmeñu

mrežnih operativnih sustava. Slika 13. Prikazuje opću strukturu middleware sustava.

Middleware se primjenjuje u distribuiranom datotečnom sustavu, zatim pri izvedbi poziva

na udaljenom računalu (Remote Procedure Call – RPC) ili za rad distribuiranih objekata.

Usluge middleware-a su:

1. Komunikacijske usluge – maskiranje prijenosa podataka niske razine.

2. Imenovanje – omogućavanje pristupa i dijeljenje resursa.

3. Postojanost podataka.

4. Distribuirane transakcije – izvoñenje više zasebnih operacije koje se moraju

kompletno izvesti da bi se završila distribuirana transakcija.

5. Sigurnost.

Slika 13. Opća struktura midleware-a

Page 15: Distribuirani Operacijski Sustavi - Skripta

14

Tabela 3. prikazuje usporedbu multiprocesorski, multiračunalnih, mrežnih i middleware

zasnovanih distribuiranih sustava prema stupnju transparentnosti, različitosti OS za

računala u mreži, broju kopija OS, komunikacijskoj osnovi, upravljanju resursima,

proširivosti i otvorenosti..

Tabela 3. Usporedba distribuiranih sustava

1.3. Klijent-server model

Bolja razumljivost načina izvedbe procesa u distribuiranim sustavima postiže se analizom

klijent-server modela. Procesi u distribuiranim sustavima su podijeljeni u dvije grupe:

1. Serveri – procesi namijenjeni pružanju posebnih usluga.

2. Klijenti – proces koji traži uslugu od servera.

Slika 14 prikazuje opći slučaj interakcije izmeñu klijenta i servera. Vidljivo je da klijent

čeka na odgovor od servera.

Page 16: Distribuirani Operacijski Sustavi - Skripta

15

Slika 14. Opći slučaj interakcije izmeñu klijenta i servera

Struktura klijent server aplikacija uglavnom uključuje tri sloja:

1. Sloj korisničkog sučelja – program koji omogućuje interakciju sa korisnikom,

postavljanje upita korisnika i prezentiranje rezultata upita korisnika.

2. Sloj obrade podataka – sadrži logiku obrade podataka i pravila za izvoñenje upita

korisnika.

3. Sloj podataka – konkretna pohrana i izravna manipulacija podacima.

Slika 15. prikazuje troslojnu strukturu Internet aplikacije za pretraživanje (search engine).

Aplikacija prihvata upit, generira upit za bazu podataka (Query), pristupa bazi podataka,

obrañuje rezultat upita iz baze podataka i prosljeñuje odgovor korisniku.

Slika 15. Prikaz troslojne strukture Internet aplikacije za pretraživanje

Page 17: Distribuirani Operacijski Sustavi - Skripta

16

Arhitektura klijent-server sustava može biti:

1. korisničko sučelje je na klijent strani, a ostatak aplikacije na server strani.

2. arhitektura sa više nivoa – primjena posebnog sloja izmeñu korisničkog sučelja i

baze podataka (slika 16. prikazuje moguće situacije); slika 17 prikazuje troslojnu

strukturu pri izvoñenju upita klijent računala.

3. Moderna arhitektura – prevladava horizontalna distribucija, klijent i server su na

istoj razini (ne primjenjuje se vertikalna distribucija) ali je svako računalo

odgovorno za izvoñenje operacija unutar svojih domena.

Slika 16. Moguće klijent-server organizacije

Slika 17. Prikaz troslojne arhitekture pri izvoñenju zahtjeva korisnika

Page 18: Distribuirani Operacijski Sustavi - Skripta

17

Slika 18. Primjer horizontalne distribucije Web usluga

Page 19: Distribuirani Operacijski Sustavi - Skripta

18

2. KOMUNIKACIJA

Komunikacije su ključni element DOS-a. Osnovna razlika distribuiranih sustava i lokalnog

sustava je komunikacija meñu procesima. Zasniva se na primjeni poruka niskog nivoa

(bliskom hardver računala) korištenjem postojeće mrežne strukture. Komunikacija dva

računala izvodi se primjenom strukture slojeva. Svaki sloj izvodi set aktivnosti i čini

osnovu za primjenu višeg sloja. Niži slojevi usmjereni su prema hardveru, a viši prema

aplikacijama. Primjenjujemo sljedeće modele komuniciranja:

1. Poziv procedure na udaljenom računalu (Remote Procedure Call – RPC)

2. Poziv metode na udaljenom računalu (Remote Method Invocation – RMI)

3. Meñusloj usmjeren prijenosu poruka (Message-Oriented Middleware – MOM)

4. Primjena toka (Stream).

2.1. Protokoli slojeva za komunikaciju Protokoli imaju ključnu važnost u komunikaciji. Razlikujemo sljedeće modele:

• Modele zasnovane na slojevima (layers):

o OSI model

o ATM

• Klijent-server model.

OSI model

Pri komunikaciji dva računala koristi se više slojeva za prijenos podataka. Slojevi se mogu

različito definirati u skladu sa njihovim funkcionalnostima. Opće prihvaćeni prijedlog

strukture slojeva predložen je od International Standard Organization (ISO) pa je i

predloženi model strukture slojeva nazvan OSI model. OSI model omogućuje

komunikaciju otvorenih sustava (sustavi koji koriste propisane standarde – pravila, formate,

sadržaj i značenje poruka koje se šalju i primaju). Pravila za otvorene sustave su

formalizirana u protokolima. Protokoli mogu biti connection-oriented (potrebna je

uspostava veze prije slanja i primanja podataka) i connectionless (veza ne mora biti

Page 20: Distribuirani Operacijski Sustavi - Skripta

19

uspostavljena da bi se poruke mogle slati i primati – upotreba mailbox-a). Slika 19.

prikazuje slojeve u OSI modelu. Koristi se 7 slojeva. Kada proces jednog računala šalje

poruku drugom računalu aplikacijski sloj generira poruku i prosljeñuje prezentacijskom

sloju koji poruku prosljeñuje nižem nivou. Pri tom svaki sloj dodaje header na početak

poruke. Izgled poruke prije prijenosa mrežom prikazuje slika 20. Primljena poruka se

pomoću headera poruka može prenijeti do procesa kojem je namijenjena.

Slika 19. Slojevi OSI-modela

Slika 20. Primjer poruke sa header-ima

Protokole potrebne za rad OSI modela dijelimo na:

1. protokole niskog nivoa (low-level)

a. fizički sloj (physical layer) – sloja za prijenos 0 i 1 putem fizičke veze

b. Sloj prijenosa podataka (data link layer) – grupiranje bitova u veće cjeline

ili pakete – frame i provjera ispravnosti prijenosa frame-ova primjenom

postupka za provjeru (checksum); slika 21 prikazuje provjeru podataka.

Page 21: Distribuirani Operacijski Sustavi - Skripta

20

c. Mrežni sloj (network layer) – odabir putanje za slanje paketa mrežom;

najčešće korišteni protokol je IP (Internet Protokol); pri bržim vezama

(ATM) koriste se virtualni kanali koji povezuju više komunikacijskih

čvorova u jednu cjelinu

2. Transportne protokole – funkcija protokola je dijeljenje poruke za prijenos na manje

dijelove, dodjela brojeva dijelovima i njihovo slanje; najčešće korišten protokol je

TCP (Transmission Control Protokol), zatim UDP (Universal Datagram Protokol,

to je proširenje IP protokola), za real-time prijenos se koristi RTP (Real-time

Transport Protocol). Primjena transportnih protokola česta je u klijent-server

interakciji u distribuiranim sustavima primjenom TSP i UDP protokola, pri tome

komunikacija može biti standardna (normal) ili transakcijska (slika 22.)

3. protokole visoke razine (high-level)

a. protokol sesije – nadogradnja transportnog sloja sa funkcijama izvoñenja

dijaloga sa nižim slojem i sinhronizacije uz mogućnost definiranja

kontrolnih točaka za nastavak komunikacije u slučaju neuspjelog prijenosa

poruke

b. prezentacijski protokol – orijentiran je sadržaju poruka pa omogućuje

povezivanje podataka poruke sa formatom prijenosa poruke (poruke mogu

sadržavati imena, adrese, novčane iznose i sl. pa je prikladno odrediti

strukturu poruke kako bi se jednostavnije manipuliralo porukama).

c. Aplikacijski protokoli – orijentiran radu sa aplikacijama sa karakteristikama

protokola opće namjene. Primjeri su FTP (File Transport Protocol), HTTP

(HyperText Transfer Protocol).

d. Middleware protokoli – protokoli sadržani u aplikacijskom sloju sa

izvoñenje posebnih usluga (protokoli za provjeru autentičnosti, protokoli za

implementaciju atomičnosti – izvoñenje više procesa kao jedna nedjeljiva

cjelina)

Page 22: Distribuirani Operacijski Sustavi - Skripta

21

Slika 21. Postupak provjere prijenosa poruka

Slika 22. a) standardni TSP b) Transakcijski TCP

ATM model

ATM (Asynchronous Transfer Mode) je način komunikacije prilagoñen prijenosu velike

količine podataka što ga čini prikladnim za prijenos multimedijalnih sadržaja. Prije početka

komunikacije uspostavlja se komunikacijski kanal odabirom putanje za spajanje. Nakon

uspostave veze pošiljalac i primalac zapamte putanju koju koriste za slanje podataka.

Podaci se šalju u obliku jedinica fiksne veličine – ćelija (cells) kontinuirano istom putanjom

Page 23: Distribuirani Operacijski Sustavi - Skripta

22

u komunikacijskoj mreži. ATM Je pogodan za prijenos glasa, podataka, televizijskog

signala, radio signala, videokonferencije, kablovska televizija i dr.

ATM slojevi (slika 23)

Fizički sloj

- prijenos 0 i 1 putem fizičke veze

ATM sloj

- transport i usmjeravanje ćelija (OSI 2 i OSI 3)

Adaptacijski sloj

- cijepanje paketa u ćelije i spajanje ćelija u pakete (OSI 4)

Gornji sloj

- Spajanje za prijenos podataka

Slika 23. ATM slojevi

Implikacije ATM mreža na distribuirane sustave su:

• Velika čekanja, posebno za interaktivne aplikacije – zbog kontinuiranog prijenosa

podataka u ćelijama javlja se problem pri brzoj obradi interaktivnog prijenosa male

količine podataka

• Kontrola toka podataka – otežana je kontrola prezentiranja multimedijalnih sadržaja

• Neisplativi za većinu današnjih aplikacija – omjer uloženih sredstava i korisnost

nisu prihvatljivi za većinu obrada u distribuiranim sustavima

Klijent – server model

Prednost klijent-server modela u odnosu na OSI ili ATM ogledaju se u jednostavnosti

komunikacije koja je zasnovana na slanju i primanju poruka. Učinkovitost se postiže

implementiranjem mehanizama za rad sa porukama. Klijent-server model zasnivaju rad na

Page 24: Distribuirani Operacijski Sustavi - Skripta

23

slanju zahtjeva i primanju odgovora na postavljene zahtjeve izmeñu klijent i server računala

(slika 24.):

• Server – proces koji pruža usluge drugim procesima

• Klijent – proces koji traži usluge od server procesa

Primjenom request/reply protokola ostvaruje se jednostavnost i učinkovitost u

komunikaciji. Pri tome se koriste 2 sistemska poziva:

• Sistemski pozivi za slanje poruka

o Send(dest,&mptr) – dest → oznaka procesa koji prima poruku; &mptr →

poruka

• Sistemski poziv za primanje poruka

o receive(addr,&mptr) – addr → oznaka procesa koji je poslao poruku; &mptr

→ poruka

Slika 24. a) klijent-server model b) slojevi Klijent-server komunikacije

Adresiranje računala na kojem se nalazi proces kojem se šalje zahtjev može se odrediti

(slika 25.):

• Zasnovano na imenima računala – unaprijed se poznaje računalo na koje se šalje

zahtjev; javlja se problem ažuriranja podatak u slučaju migracije procesa na

drugo računalo.

• Zasnovano na izmjeni upita (broadcast) – zahtjev se šalje na sva računala dok

odgovor šalje samo traženo računalo; nedostatak je veliki promet mrežom

uzrokovan slanjem poruka svim računalima pri slanju zahtjeva.

Page 25: Distribuirani Operacijski Sustavi - Skripta

24

• Zasnovano na serveru (name server) – upit se šalje računalu namijenjenom

pohrani podataka o računalima i na njima pokrenutim procesima; u slučaju

nefunkcionalnosti name server-a nije moguće slati zahtjeve.

Slika 25. a) Adresiranje zasnovano na imenima računala b) broadcast c) name server

2.2. Poziv procedure na udaljenom računalu – RPC

Poziv procedure na udaljenom računalu omogućuje prijenos obrade na drugo računalo

pokretanjem odgovarajuće procedure. Za vrijeme izvoñenje procedure na drugom računalu

proces koji je inicirao poziv je suspendiran i čeka rezultat izvoñenja procedure (slika 26).

Kada pozvana procedura vrati rezultat rada procedure proces na lokalnom računalu

nastavlja izvoñenje, pri čemu je cijeli postupak nevidljiv za programera.

Slika 26. Prikaz RPC poziva izmeñu klijenta i servera

Primjenom RPC poziva nastoji se pozvana procedura na udaljenom računalu izvesti na

način kao da lokalni proces izvodi proceduru na lokalnom računalu. To se ostvaruje

Page 26: Distribuirani Operacijski Sustavi - Skripta

25

upotrebom posebnog tipa zapisa procedura (client stub) u stack dio memorije procesa. Kada

udaljeno računalo primi poruku sa pozivom procedure prosljeñuje je posebnom zapisu

(server stub) u stack memoriji. Kada se procedura izvede slijedi prijenos rezultata klijentu i

nastavak izvoñenja procesa na klijent računalu. Koraci za izvoñenje RPC poziva su (slika

27.):

1. klijent proces poziva proceduru i generira klijent stub,

2. klijent stub generira poruku i prosljeñuje je lokalnom OS,

3. klijent OS šalje poruku udaljenom računalu (serveru),

4. server OS prima poruku i prosljeñuje je server stubu,

5. server stub raspakira analizira parametre poruke i generira sistemski poziv na

serveru,

6. server izvodi poziv i vraća rezultat server stubu,

7. server stub pakira poruku i prosljeñuje je server OS,

8. server OS šalje poruku klijent računalu,

9. klijent OS poruku prosljeñuje klijent stubu,

10. klijent stub raspakira poruku i prosljeñuje rezultat klijent procesu.

Slika 27. Izvoñenje RPC poziva

Pri tome je nužno uskladiti formate za prijenos podataka ukoliko klijent i server koriste

drugačiji zapis podataka (npr. Pentium i SPARC arhitektura). Slika 28. prikazuje postupak

prevoñenja poruka u drugačiji format (korištenje drugačijih kodova za karaktere, formate

Page 27: Distribuirani Operacijski Sustavi - Skripta

26

brojeva itd.). Pri generiranju poruke prema serveru nužno je poznavanje servisa koji se želi

koristiti (različiti servisi imaju različite portove). Klijent potreban port može dobiti

statičkim načinom kada server svim klijent računalima pošalje oznake portova (to je

nepraktično u slučaju promjene oznaka portova jer se podaci o promjeni portova moraju

slati svim računalima). Drugi način je dinamički: klijent šalje serveru upit za oznakom

porta za traženu uslugu, a zatim dobivenu informaciju ugrañuje u poruku prema serveru.

Slika 28. Prevoñenje formata podataka a) Intel b) SPARC c) invertirana poruka

Proširenje RPC modela

Ukoliko je potrebno koristiti poziv RPC poziva na jednom računalu koristi se posebna vrsta

procedure ekvivalentna RPC pozivu a zove se door. Door procedura mora biti podržana u

OS računala. Postupak izvoñenja je identičan RPC pozivu osim komunikacije putem mreže

jer se poziv izvodi na istom računalu. Slika 28. prikazuje izvedbu door procedure.

Asinhroni RPC poziv omogućuje klijent procesu nastavak izvoñenja aktivnosti koje se ne

odnose na rezultat RPC poziva, pa klijent ne mora biti suspendiran za vrijeme izvoñenja

RPC poziva (slika 29.). Slika 30. prikazuje izvoñenje dva RPC poziva (deffered synhronous

RPC)

Page 28: Distribuirani Operacijski Sustavi - Skripta

27

Slika 28. Izvoñenje door procedure

Slika 39. a) standardni RPC b) asinhroni RPC

Slika 30. Klijent i server izvode dva asinkrona RPC poziva

Page 29: Distribuirani Operacijski Sustavi - Skripta

28

2.3. Grupna komunikacija

Komunikacija RPC-om uključuje samo dva procesa i to često nije dovoljno ukoliko je

nužna meñusobna komunikacija procesa više procesa. Problemi komunikacijom izmeñu

više procesa rješavaju se formiranjem grupa procesa.

Grupa je skup procesa koji djeluju zajedno u sustavu. Komunikacija u grupi može biti

(slika 31.):

• Point-to-point → jedan proces komunicira sa drugim procesom

• Ono-to-many → jedan proces komunicira sa više procesa.

Slika 31. a) point-to-point komunikacija b) one-to-many komunikacija

Neki procesi pristupaju grupi, a neki iz grupe izlaze pa kažemo da je grupa dinamična.

Procesi komuniciraju sa grupom kao sa jednim procesom, odnosno slanje poruke jednom

procesu znači slanje poruka svim procesima u grupi.

Vrste komunikacije proces u grupi su:

• Multicasting – poznata adresa računala sa procesima iz grupe (listening); slušanjem

adrese provjerava se pojavljivanje novih poruka

• Braodcasting – sva računala primaju poruku, a računala koja imaju procese iz grupe

zadržavaju i prosljeñuju poruku procesu iz grupe

• Unicasting – slanje posebne poruke svakom pripadniku grupe pri čemu je potrebno

poznavati oznake računala sa procesima iz grupe.

Page 30: Distribuirani Operacijski Sustavi - Skripta

29

Grupe mogu biti otvorene i zatvorene grupe (slika 32.):

• Zatvorena grupa – samo članovi grupe mogu slati poruke svim procesima u grupi,

procesi izvan grupe mogu slati poruke samo nekim procesima iz grupe. Zatvorene

grupe su tipične za paralelne obrade (partija šaha)

• Otvorena grupa – procesi izvan grupe šalju poruke svim procesima u grupi

Slika 32. a) zatvorena grupa b) otvorena grupa

Prema načinu odlučivanja razlikujemo Peer i hijerarhijske grupe (slika 33.):

• Peer grupe – svi procesi su ravnopravni

o Veća pouzdanost

o Donošenje odluka “glasovanjem” – više prometa i duže čekanje na odluku

• Hijerarhijska grupa – postoji koordinator

o Nefunkcionalnost koordinatora onemogućava komunikaciju u grupi

o Brže i jednostavnije donošenje odluka

Page 31: Distribuirani Operacijski Sustavi - Skripta

30

Slika 33. a) Peer grupa b) hijerarhijska grupa

Upravljanje radom grupa izvodi se:

• Serverom za rad sa grupama

o Podaci o grupama pohranjuju se u bazu podataka

o Nefunkcionalnost servera dovodi do nemogućnosti upravljanja grupama

• Upravljanje distribuiranim načinom

o Proces šalje svim procesima u grupi poruku o pristupanju i istupanju iz grupe

o Nefunkcionalnost procesa uočava se neodgovaranjem procesa na poruke

o Ulaskom u grupu proces mora dobivati sve poruke u grupi, a izlaskom ne smije

više dobiti niti jednu poruku iz grupe

Adresiranje grupe može se izvoditi (slika 34.):

• Uporabom jedinstvene adrese

o Dodavanje adresa računala grupe u multicast adrese

o Slanje svim računalima (broadcasting)

o Slanje poruka računalima i procesima sa liste primjenom point-to-point principa

• Slanje na točno odreñenu adresu (npr. IP)

o Proces mora točno znati članove grupe

o Promjene članova grupe moraju bit evidentirane

• Predicate adresiranje

Page 32: Distribuirani Operacijski Sustavi - Skripta

31

o Svaka poruka sadrži predikat (pravilo) za evaluaciju koje se provjerava prije

primitka poruke.

Slika 34. Proces 0 šalje procesima 1,3 i 4 poruku primjenom a) multicasta

b) broadcasta c) unicasta

Page 33: Distribuirani Operacijski Sustavi - Skripta

32

3. SINHRONIZACIJA U DISTRIBUIRANIM OPERACIJSKIM SUSTAVIMA

Sinhronizacija je ključna za rad DOS-a. Računalna mreža uključuje niz računala sa

vremenski usklañenim satovima. Uskladivost vremena na svim računalima ne može se

potpuno postići što stvara probleme pri izvoñenju operacija (procesa) na različitim

računalima koji se moraju izvesti točno odreñenim redoslijedom. Primjer na slici 35.

prezentira situaciju pri kopajliranju datoteke. Na jednom računalu editiramo datoteku, a na

drugom je kompajliramo. Kompajler prije kompajliranja provjerava vrijeme zadnje

promjene datoteke i ako je to vrijeme manje od zadnjeg procesa kompajliranja ne izvodi

postupak kompajliranja. Zadnje vrijeme kompajliranja je 2144 na prvom računalu. Poslije

tog trenutka na drugom računalu se promijeni datoteka i zapamti vrijeme 2143 (sat na

drugom računalu zaostaje za satom na prvom računalu). Kompajler pri usporeñivanju

utvrñuje da je promjena datoteke izvedena prije zadnjeg kompajliranja (2134 promjena,

2144 zadnje kopajliranje) i neće kompajlirati datoteku. Jasno je da se ovakve situacije

moraju izbjeći.

Slika 35. Greška pri kompajliranju datoteke

3.1. Sinhronizacija sata

Sinhronizacija sata može se postići:

1. primjenom fizičkog sata – koristi se univerzalni sat prema kojem se usklañuju svi

ostali satovi

Page 34: Distribuirani Operacijski Sustavi - Skripta

33

2. algoritma za sinhronizaciju – za računala koja imaju pristup WWW-u moguće je

usklañivanje sa referentnim satom stalnim praćenjem odstupanja lokalnog sata;

kada odstupanje preñe dozvoljenu granicu izvodi se korekcija lokalnog sata (slika

36.); druga mogućnost je upotreba time servera za usklañivanje lokalnih satova

(slika 37.); ukoliko računala nemaju pristup WWW-u potrebno je primijeniti

Berkeley algoritam gdje se izračunava srednje vrijeme svih računala u lokalnoj

mreži i putem time deamon procesa usklañuju svi lokalni satovi sa srednjim

izračunatim vremenom (slika 38.)

Slika 36. Usklañivanje sa referentnim satom Slika 37. Usklañivanje time serverom

slika 38. Berkeley algoritam

Page 35: Distribuirani Operacijski Sustavi - Skripta

34

Za pojedine procese vrlo je bitno odreñivanje slijeda aktivnosti izvoñenje što je izvodivo

ukoliko su satovi meñusobno usklañeni. Za procese kod kojih je nužno da se jedan proces

dogodio prije drugog definira se relacija happend before. Dva procesa su u relaciji happend

before ako je:

1. a dogodio prije b: C(a) < C(b)

2. a i b označavaju slanje i primanje poruke: C(a) < C(b)

3. za sve a i b ako je C(a) ≠ C(b).

Slika 39. prikazuje usklañivanje vremenskih satova kako bi se mogla implementirati

relacija happend before.

Slika 39. a) prikaz lokalnih satova b) prikaz usklañenih satova

Pri usklañivanju replika servera mogu se javiti sljedeći problemi. Korisnik u Splitu ulaže

100 kuna na račun koji trenutno na centralnom serveru u Zagrebu i kopiji servera u Splitu

iznosi 1000 kn. Istovremeno uposlenik banke u Zagrebu pokreće obračun kamata na iznos

korisnika. Kako će oba zahtjeva biti proslijeñena na oba servera doći će do izračuna

trenutnog iznosa od 1110 kn u Zagrebu i 1111 u Splitu (slika 40.). Ova situacija izbjegava

se blokiranjem promjena na podacima čija je izmjena u tijeku sve dok se ne dobije potvrda

o završenim izmjenama na svim serverima replikama.

Page 36: Distribuirani Operacijski Sustavi - Skripta

35

Slika 40. Primjer greške pri radu sa replikama podataka.

3.2. Algoritmi za odabir

U DOS-u je često potrebno selektirati proces koordinator što se realizira upotrebom

algoritma za odabir. Algoritmi za odabir su:

1. Bully algoritam

2. Ring algoritam.

Bully algoritam radi na sljedećem principu: procesima se dodjeljuju brojevi ovisno o

vremenu nastanka (najstariji proces ima najveći broj); pri odabiru proces P šalje poruku

ELECTION svim drugim procesima sa upitom za vrijednost dodijeljenog broja; ako niti

jedna poruka nema veći broj od broja koji ima P proces P je izabran; ako se pojavi poruka

sa većim brojem proces koji je poslao poruku je izabran (slika 41).

Ring algoritam koristi krug za odabir procesa. Kada koordinator nije aktivan pokreće se

ELECTION poruka koja sadrži broj procesa. Ako susjedni proces nije aktivan poruka se

prosljeñuje sljedećem procesu u krugu. Pri svakom primitku poruke proces povećava svoj

broj pa će tako proces sa najvećim brojem biti izabran. Kada poruka stigne ponovo do

procesa koji ima najveći broj on se proglašava koordinatorom i šalje ostalima poruku o

tome i procesima uključenim u krug (slika 42.)

Page 37: Distribuirani Operacijski Sustavi - Skripta

36

Slika 41. Bully algoritam a) proces 4 započinje odabir b) proces 5 i 6 odgovaraju

c) proces 5 i 6 započinju odabir d) proces 5 i 6 zaustavljaju odabir

e) proces 6 je odabran i informira ostale

Slika 42. Ring algoritam

Page 38: Distribuirani Operacijski Sustavi - Skripta

37

3.3. Mutual Excluison U DOS-u je nužno implementirati mutual excluison kako bi se izbjegle greške u radu sa

djeljivim resursima . Implementacija mora uključiti sve resurse svih računala uključenih u

DOS. Implementacija mutual exclusiona ostvaruje se:

1. Centraliziranim pristupom

2. Decentraliziranim pristupom

3. Korištenjem token-a.

Centraliziran pristup znači upotrebu koordinatora sa pravima dodjele dozvole ulaska u

kritičnu sekciju na djeljivom resursu. Svi procesi koordinatoru šalju zahtjeve (request) za

ulaskom u kritičnu sekciju. Ako je resurs slobodan koordinator dozvoljava slanje poruke

potvrde ulaska (reply) u kritičnu sekciju i proces započinje kritičnu sekciju. Ukoliko neki

drugi proces zatraži ulazak u kritičnu sekciju na istom djeljivom resursu koordinator mu

neće vratiti poruku potvrde za ulazak u kritičnu sekciju sve dok prvi proces ne završi

kritičnu sekciju i vrati poruku završetka kritične sekcije koordinatoru (release). Slika 43.

prikazuje centraliziranu izvedbu mutual exclusiona. Problem nastaje kad koordinator nije u

funkcionalnom stanju, ali u tom slučaju njegovu funkciju preuzima rezervni koordinator.

Slika 43. Centralizirani pristup a) slanje upita i dozvola ulaska u kritičnu sekciju

b) upit odbijen c) upit prihvaćen

Decentralizirani pristup znači da nema koordinatora već procesi meñusobno dogovaraju

dozvole ulaska u kritične sekcije. Ako jedan proces želi ući u kritičnu sekciju šalje svim

ostalim procesima poruku koja sadrži naziv kritične sekcije, broj procesa i trenutno

vrijeme. Ako svi procesi vrate poruku potvrde (OK) proces ulazi u kritičnu sekciju. Ako bi

Page 39: Distribuirani Operacijski Sustavi - Skripta

38

neki drugi proces poslao nakon toga zahtjev za ulaskom u kritičnu sekciju dobio bi odgovor

od svih procesa osim od procesa koji je u kritičnoj sekciji. Odgovor od procesa koji je u

kritičnoj sekciji uslijediti će kada proces završi kritičnu sekciju. Problem se može pojaviti

ako dva procesa istovremeno pošalju zahtjev za ulaskom u kritičnu sekciju, a rješava se

usporeñivanjem vremenskih oznaka dogañaja slanja poruke za ulazak u kritičnu sekciju

(time stamps) pa se na taj način odreñuje koji proces prvi ulazi u kritičnu sekciju. Problem

nastaje ako jedan proces nije funkcionalan jer tada niti jedan drugi proces ne može dobiti

poruku potvrde za ulazak u kritičnu sekciju pa je nužno detektirati takve procese i isključiti

iz komunikacije pri dodjeli dozvola za ulazak u kritičnu sekciju. Slika 44. prikazuje rad

centraliziranog pristupa pri izvedbi mutual exclusion-a.

Slika 44. Centralizirani pristup a) slanje zahtjeva b) dobivanje odgovora

c) ulazak u kritičnu sekciju

Primjena token-a znači upotreba poruke token za svaki djeljivi resurs koja putuje sustavom

od procesa do procesa. Proces koji želi ući u kritičnu sekciju zadržati će token kod sebe sve

dok ne završi kritičnu sekciju i tako osigurati izvoñenje mutual exclusion-a. Problem

nastaje ako se poruka token izgubi pa je potrebno provjeravati da li je poruka u sustavu i

ako nije nužno je generirati novu poruku. Slika 45. prikazuje primjenu token-a na

neorganiziranu grupu procesa koja se softverski povezuje u kružnu strukturu. Tablica 4.

prikazuje usporedbu načina za implementaciju mutaul ecxlusiona. Tablica sadrži podatke o

broju potrebnih poruka, čekanju na ulazak u kritičnu sekciju izraženom putem broja poruka

za primanje i problemima svake tehnike.

Page 40: Distribuirani Operacijski Sustavi - Skripta

39

Slika 45. Primjena token-a a) neorganizirana struktura

b) logički krug konstruiran u softveru

Tabela 4. usporedba tehnika za mutual exclusion

3.4. Atomičnost

Operacije koje se moraju izvesti kao jedna cjelina zovu se atomične akcije. Nuspjelo

izvoñenje barem jedne operacije iz skupa atomične akcije uvjetuje poništavanja učinaka

(roolback) svih uspješno izvedenih operacija iz skupa atomične akcije. Atomične akcije se

izvode putem transakcija.

Osnovne operacije za izvoñenje atomičnih akcija:

BEGIN_TRANSACTION - početak transkacije

END_TRANSACTION - završetak tranasakcije

ABORT_TRANSACTION - prekid tranasakcije

READ_TRANSACTION - čitanje podataka iz datoteke ili drugogo objekta

WRITE_TRANSACTION - upisivanje poddataka u datoteku ili drugi objekt

Page 41: Distribuirani Operacijski Sustavi - Skripta

40

Slika 46. prikazuje primjer atomične akcije pri rezervaciji karata za let izmeñu White

Plains-a i Kenije.

Slika 46. Prikaz transakcija za rezervaciju karata

Svojstva transakcija - ACID:

• Atomičnost – sve operacije moraju završiti uspješno

• Konzistentnost – ukupno stanje variabli u sustavu prije i poslije transakcije mora biti

jednako

• Izoliranost – izvoñenje više transakcija istovremeno mora dati iste rezultate kao da su

tranasakcije izvoñene jedna za drugom (slika 47. prikazuje ispravan i pogrešan slijed

izvoñenja tranasakcija)

• Trajnost – jednom izvršena tranasakcija ne može se poništiti

Slika 47. Primjer transakcija i upravljanja transakcijama

Page 42: Distribuirani Operacijski Sustavi - Skripta

41

Uniježñene transakcije su transakcije nižeg hijerarhijskog nivoa. Generiraju se stvaranjem

child procesa koji izvode aktivnosti nad podacima parent procesa.

Implementacija izvoñenje transakcija može biti izvedena uporabom:

- Privatno radnog prostora – rezervira se dio resursa za izvoeñnje tranasakcije; u

slučaju neuspjelog izvoñenja tranasakcije promjene se ignoriraju, a u slučaju uspjele

obrade ažuriraju se rezultati izvoñenje tranasakcije (slika 48.)

- Writeahead log ili intention liste – promjene se izvode na originalnim podacima ali se

u poseblim datotekama (log datoteke) pohranjuju informacije o promjenama

izvedenim tijekom tranasakcije upisom novih i starih vrijednosti promjenjivih

varijabli (slika 49.)

Slika 48. Privatni radni prostor

Slika 49. Primjer uporabe Whiteahead loga

Page 43: Distribuirani Operacijski Sustavi - Skripta

42

Transakcije se obično izvode primjenom two-phase protokola (slika 51.). Jedan proces je

kooordinator i on informira sve druge procese koji sudjeluju u transakciji o spremnosti na

izvoñenje transakcije (poruka „Prepare“). Kada svi procesi izraze spremnost (poruka

„Ready“) koodinator šalje poruku za početak transakcije (poruka „Commit“). Po završetku

obrade svaki proces šalje poruku „Finished“. Kada svi procesi vrate poruku „Finished“

koordinator zaključuje tranasakciju. Ukoliko doñe do izostanka bilo koje poruke od barem

jednog procesa tranasakcija se vraća na početak.

Slika 51. Two-phase protokol

3.5. Zastoji

Otkrivanje i rješavanje zastoja je složenije nego u operivnnim sustavima za jedno računalo

Tehnike rješavanja zastoja:

� Ostrich algoritam – ignoriranje - neprimjenjivo

� Detekcija i otklanjanje - najčešće korišteno

� Izbjegavanje - iziskuje veliki promet porukama

� Spječavanje - primjenjivo, ali manje korišteno

Detekcija i otklanjanje izvodi se na istovjetan način kao za lokalno računalo, ali se graf

resursa izrañuje za cijeli sustav. Koristi se:

Page 44: Distribuirani Operacijski Sustavi - Skripta

43

• Centralizirani pristup uz upotreba koordinatora – svako računalo izrañuje graf resursa

za sebe, dok koordinator izrañuje graf resursa cijelog sustava. Kružna veza može biti

otkrivena na lokalnom računalu ili u grafu cijelog sustava (slika 52).

• Decentralizirani pristup – proces koji ne može dobiti resurse za obradu pokreće slanje

poruke procesu od kojeg potražuje resurse (poruka sadrži podatak o procsu koji je

inicirao slanje poruke, podatak o procesu koji šalje i koji treba primiti poruku. U slučaju

postojanja kružne veze pojaviti će se iste vrijednosti za procese koji je inicirao poruku i

proces koji je primio poruku (slika 53.)

Slika 52. Centralizirani pristup

Slika 53. Distribuirani pristup

Sprječavanje zastoja izvodi se spječavanjem kružne veze pri čemu se koriste:

Page 45: Distribuirani Operacijski Sustavi - Skripta

44

• Wait - die algoritam – ako stariji proces (ima manju vremensku oznaku – timestamp)

traži resurse mlañeg procesa dozvoljeno je čekanje, dok u obrnutom slučaju mlañi

proces biva poništen i ponovo pokrenut sve dok ne dobije potrebne resurse (slika 54.)

• Wound – wait algoritam – ako stariji proces potražuje resurse mlañeg procesa prekida

se izvoñenje mlañeg procesa i dodjeljuju resursi strarijem procesu, a mlañi proces se

ponovo pokreće i čeka na oslobañanje resursa dodijeljenih starijem procesu (slika 55).

Slika 54. Whait-die algoritam

Slika 55. Wound-die algoritam

Page 46: Distribuirani Operacijski Sustavi - Skripta

45

4. PROCESI

Procesi u DOS-u imaju sve značajke procesa OS jednog računala uz dodanu mogućnost

izvoñenja na više računala. Pri tome je moguće prenositi podatke sa drugih računali,

prenositi obradu i prenositi procese na druga računala. Prijenos podataka ostvaruje se

djelomično ili potpuno. Podaci se prenose kada je potrebno izvesti obradu samo jednog

manjeg segmenta podataka (npr. jedan slog u bazi podataka). Potpun prijenos je opravdan

ako se obrada izvodi na većem dijelu podataka. Ukoliko je datoteka na kojoj je potrebno

izvesti obradu velika racionalnije je prenijeti cjelokupan proces na udaljeno računalo,

obaviti obradu i vratiti rezultat na lokalno računalo. Prijenos obrade na drugo računalo

ostvaruje se RPC pozivom ili generiranjem procesa na udaljenom računalu koji obavlja

traženu obradu i vraća rezultat procesu na lokalnom računalu.

Za analizu procesa u DOS-u bitni su:

1. Procesne niti (thread)

2. Klijent procesi

3. Server procesi

4. Migracija koda

5. Softverski agenti.

4.1. Procesne niti (thread)

Koncept procesnih niti susrećemo u OS jednog računala (Operacijski sustavi – skripta).

Implementacija procesnih niti može biti izvedena primjenom:

1. korisničkog nivoa (user-level) – problem se pojavljuje u trenutku kada jedna

procesna nit prelazi u blokirano stanje što uvjetuje blokiranje procesa i

nemogućnost izvoñenja ostalih procesnih niti procesa.

2. kernel nivoa – blokiranje jedne procesne niti neće onemogućiti izvoñenje ostalih

procesnih niti procesa, ali će svako pokretanje druge niti tražiti pohranu stanja niti

koja je zaustavljena i učitavanje stanja niti koja se pokreće.

Page 47: Distribuirani Operacijski Sustavi - Skripta

46

3. lightweight processes (LWT) – izvode se u kernel modu i sadrže sve podatke

potrebne za izvoñenje procesnih niti pa nije potrebna pohrana stanja i učitavanje

novih stanja za procesne niti; preusmjeravanje izvoñenja na druge procesne niti

izvodi se bez znanja kernela što ubrzava izvoñenje niti. Ukoliko se LWT više ne

može izvoditi zbog blokiranog stanja procesnih niti selektira se drugi LWT.

Procesne niti u DOS-ima se koriste za:

1. prijenos podataka koji se može obaviti paralelno (učitavanje Web stranice)

2. pristup replikama servera (mogućnost istovremenog čitanja podataka sa više

lokacija)

3. izbjegavanje nefunkcionalnosti usluga (koriste se replike servera)

Procesne niti se koriste na serverima. Primjer upotrebe je prikazan slikom 56. Procesna nit

prihvaća zahtjev za čitanjem podataka sa vanjske memorije, a zatim se paralelno pokreće

više procesnih niti koje paralelno pokreću zahtjeve za čitanjem podataka na vanjskoj

memoriji. Procesne niti se blokiraju dok podaci nisu pročitani sa vanjske memorije, a zatim

se putem prekida prevode u ready stanje i izvode kako bi završile traženi zahtjev.

Slika 56. Primjena procesnih niti na serveru

Procesne niti niti posve neovisne jer dijele adresni prostor procesa, otvorene datoteke, child

procese, timere, semafore i dr. (slika 57.)

Page 48: Distribuirani Operacijski Sustavi - Skripta

47

Slika 57. Ažuriranje podataka procesnih niti i procesa

Uporaba procesnih niti prikazana je na slici 58. Uporaba može biti:

• Dispacher/worker – postoji glavna procesna nit koja dodjeljuje zadatke drugim

procesnim nitima i koordinira njihovo izvoñenje

• Team model – svaka procesna nit izvoedi specifičnu obradu

• Pipeline model – podaci za obradu prosljeñuju se svim procesnim nitima, a procesna nit

podatke obrañuje ili prosljeñuje dalje ovisno o potrbnoj vrsti obrade

Slika 58. Tri vrste uporabe procesnih niti

Implementacija threads package (podrške za rad sa nitima, slika 59.) može biti:

• u korisničkom prostoru (user space) – korisnički prostor ima Run time sustav za rad sa

procesnim nitima

o prednosti: procesne niti se mogu izvoditi neovisno o podržanosti procesnih

niti u kernelu, stvaranje procesnih niti je jednostavno

o nedostaci – blokiranje jedne procesne niti blokira cijeli proces,

preusmjeravanje izvoñenje izmeñu procesnih niti je složeno.

Page 49: Distribuirani Operacijski Sustavi - Skripta

48

• u kernel prostoru – procesne niti se izvode primjenom tablica za pohranu podataka o

procesnim nitima.

o Prednosti – blokiranje jedne procesne niti ne blokira izvoñenje ostalih

procesnih niti u procesu

o Nedostatci – komplekcnija implementacije i sporije stvranje procesnih niti i

prusmjeravanje izvoñenja.

Slika 59. Implementacija threads package-a

4.2. Model radne stanice

Model radne stanice zasniva se na uporabi računala kos resursa koji se mogu koristiti u

slučaju neaktivnosti korinika (slika 60). Radne stanice mogu biti:

• Radne stanice bez hard diska

• Radne stanice sa hard diskom

Page 50: Distribuirani Operacijski Sustavi - Skripta

49

Slika 60.

Radne stanice sa lokalnim diskom mogu imati sljedeće razine pohrane podataka:

• Straničenje i privremena pohrana datoteka

• Straničenje i privremena pohrana datoteka, sistemski programi

• Straničenje i privremena pohrana datoteka, sistemski programi, caching datoteka

• Potpuno lokalni datotečni sustav

Slika 61. daje usporedbu prenonosti i nedostatke navednih načina pohrane podataka na

lokalnom disku.

Slika 72.

Slika 61. Prednosti i nedostaci načina pohrane podataka na lokalnom disku

Page 51: Distribuirani Operacijski Sustavi - Skripta

50

Uporaba neaktivnih radnih stanica povezana je sa problemom lociranja neaktivne radne

stanice. Za otkrivanje neaktivne stanice mogu se koristiti:

• Server pokrenuti algoritmi

• Klijent pokrenuti algoritmi

Pokretanje procesa na radnoj stanici (slika 62.) uvjetovano je složenošću obrade koja se

pokreće i kompatibilnošću hardvera računala koje inicira i računala koje izvodi obradu.

Postupak u slučaju aktiviranja radne stanice sveden je na prekid izvoñenja pokrenutog

procesa koji može biti trenutan ili sa sigurnosnom pohraniom svih otvorenih datoteka.

Slika 62. Pokretanej procesa na drugoj radnoj stanici

Pokretanje procesa na neaktivnoj radnoj stanici uključuje:

• Prijenos podataka o radnom direktoriju i varijablama

• Problemi pristupa datotekama na lokalnom računalu

• Odreñeni sistemski pozivi se ne mogu izvesti na neaktivnom računalu (izravan upis u

hardware)

Page 52: Distribuirani Operacijski Sustavi - Skripta

51

4.3. Pool model procesora

Povećanje iskoristivosti procesora postiže se lociranjem resursa na jednom hardverski

jakom računalu kojem druga računala pristupaju u ulozi terminala (slika 63.). Prednost je

manja cijena i veća brzina obrade us lučaju kompleksnih poslova (projektni i timski

poslovi), a nedostatak je visok stupanj operećenja server računala

Slika 63. Pool model procesora

Alokacija procesa je odabir procesora za izvoñenje procesa u distribuiranom sustavu.

Alokacija se izvodi za sljedeće modele:

• model radne stanice

• Poll model

• Hibridne modele – objedinju dobre strane modela radne stanice i pool modela.

Polazne pretpostavke:

• Računala su homogena, code-kompatibilna

• Procesori su kompletno povezani (procesor može komunicirati sa bilo kojim

procesorom)

Strategije za alokaciju procesora:

• Nonmigratory – jednom odabran procesor izvodi proces od početka do kraja

• Migratory – nakon početka izvoñenja proces može biti prenijet na drugi procesor

Ciljevi:

• Iskoristivost CPU

• Vrijeme odziva

Page 53: Distribuirani Operacijski Sustavi - Skripta

52

• Response ratio – odnos stvarnog vremena izvoñenja procesa i vremena izvoñenja

procesa na neopterećenom serveru

Dizajn algoritama za alokaciju procesora

• Deterministički ↔ heuristički pristup – ovisni o stupnju poznavanja svih informacija

za obradu

• Centralizirani ↔ decentralizirani pristup – pohrana podataka na jednom ili više

računala

• Optimalni ↔ suboptimalni pristup – ovisno o cijeni

• Lokalni ↔ globalni pristup – pokretanje procesa na računalu na kojem je stvoren ili

transfer na drugo računalo

• Pošiljaoc inicirani ↔ primalac inicirani pristup (slika 64.)

Slika 64. Pošiljaoc inicirani i primalac inicirani pristup

4.4. Upavljanje greškama

Greška – disfunckionalnost uzrokovana:

• greškom pri dizajniranju,

• proizvodnom greškom, dizajniranjem

• programiranjem,

Page 54: Distribuirani Operacijski Sustavi - Skripta

53

• fizičkim oštećenjem

• neočekivanim unosom itd.

Greške mogu biti:

• Transient – jednokratne

• Intermittent – povremene

• Permanent - trajne

Sistemske greške → nastoji se osigurati funkcionalnost distribuiranog sustava u slučaju

greške jedne ili više njegovih komponenti.

Sistemske greške:

• Fail-silent – prestanak rada procesora (fail-stop faults)

• Byzantine – nastavak rada uz generiranje netočnih odgovora. Obrada grešaka je znatno

teža.

Opravak na greške izvodi se primjenom redundancije:

• Redundancija informacija – dodavanje dodatnih bitova za provjeru

• Redundancija vremena – izvoñenjem atomičnih operacija

• Fizička redundancija – korišteje backup-a

Organizacija dodatnih procesora može biti:

• Aktivna zamjena

• Backup

Kvaliteta primjene dodatnih procesora ogleda se:

• Stupnjem replikacije

• Kvalitetom usluga u slučaju izostanka greške

• Kvalitetom usluga u slučaju pojave greške.

Primjena aktivnih zamjena procesora.

• Primjena fizičke redundancije

• TMR (Triple Modular Redundancy) (slika 65.) – greška je izbjegnuta koa jedan od

procesora ne radi ispravno jer svaki ureñaj za provjeru prosljeñuje vrijenost koja se

javlja više puta (ako dva procesore generiraju istu vrijednost, a treći drugačiju izlaz je

jednak vrijednosti prva dva procesora)

Page 55: Distribuirani Operacijski Sustavi - Skripta

54

Slika 65. Primjena TMR-a

Primjena backupa

• Upotreba primarnog servera, kojeg u slučaju greške zamjenjuje zamjenski server.

• Jednostavnije se implementira u odnosu na aktivnu zamjenu

• Potražuje manji broj zamjenskih komponenti

• Oporavak od primarne greške (neispravnosti) je složen i vremenski zahtijevan

Problemi usaglašavanja procesa u ovisnosti o greškama.

• Problemi isporuke poruka

• Da li je proces funkcionalan (pojava Byzantine greške)?

• Sinhroni ili asinhroni sistem?

Byzantine genarals problem odnosi se na otkrivanje procesora koji povremeno generiraju

greške. Svaki procesor šalje podatak ostalim procesorima (procesor 3 šalje različite

informacije). Procesori prikupljaju pristigle poruke drugih procesora i nakon toga

prosljeñuju vektor poruka izmeñu sebe. Uočavanje stupca sa različitim vrijednosti otkriva

se proces koji generira greške (slika 66).

Page 56: Distribuirani Operacijski Sustavi - Skripta

55

Slika 66. Byzantine general problem

Byzantine general problem rješiv je ako više od dvije trećine procesora rade ispravno

(2m+1 od 3m, slika 67).

Slika 67. Nemogućnost okrivanje greške

Page 57: Distribuirani Operacijski Sustavi - Skripta

56

5. DISTRIBUIRANI DATOTE ČNI SUSTAVI

File service – specifikacija usluga koje se nude klijentima

File server –proces za implementaciju file service

Distribuirani datotečni sustav uključuje:

• File service

• Directory service

Osobitosti datoteka u distribuiranim sustavima:

• Struktura datoteka

• Atributi

• Immutable (CREATE i READ)

• Capability ili access control list

• Upload/download – lokalna uporaba datoteka (slika 68.)

• Remote access model

Slika . Upload-download model i remote access model

Aktivnosti rada sa direktorijima:

• Stvaranje i brisanje

• Imenovanje

• Mijenjanje lokacije

Page 58: Distribuirani Operacijski Sustavi - Skripta

57

6. SIGURNOST

Sigurnost u DOS-ima označava proširenje sigurnosnih mjera korištenih u radu OS-a jednog

računala. Glavne značajke sigurnosti su:

1. Povjerljivost (confidentiality) – dostupnost informacija jedino ovlaštenim

korisnicima

2. Integritet (integrity) – izmjene su dozvoljene samo autoriziranim osobama.

Moguće prijetnje u DOS-a su:

1. Presretanje (interseption) – neovlaštena osoba se uključuje u komunikaciju izmeñu

dva računala.

2. Prekid (interruption) – odnosi se na svaki gubitak ili oštećivanje datoteka.

3. Modifikacije (modification) – odnosi se na promjene sadržaja datoteka.

4. Fabriciranje (fabrication) – odnosi se na dodavanje novog sadržaja u datoteke.

Sigurnosna politika precizno propisuje koje aktivnosti u sustavu su dozvoljene.

Sigurnosnom politikom definiraju se pravila za upotrebu korisnica, aktivnosti, podataka,

računala itd. Pri izradi dizajna sigurnosti potrebno je uvažiti sljedeće aspekte:

1. Pristup kontroli – definiranje razine kontrole korisnika (slika 57.)

a. Kontrola pristupa operacijama

b. Kontrola pristupa podacima

c. Kontrola operacija ovisna o vrsti korisnika.

2. Odabir sloja za smještaj sigurnosnih mehanizama – ukoliko korisnika ne

zadovoljavaju postojeće mjere sigurnosti uvijek je moguće koristiti dodatne

mehanizme koji pružaju veću razinu sigurnosti. Slika 58. prikazuje slojeve računala

u mreži. Na slici 59 prikazana je upotreba SMDS mreže koja koristi kodiranje pri

prijenosu podataka izmeñu lokalnih mreža (Switched Multi-megabit Data Service).

3. Distribucija mehanizama sigurnosti – računala koja moraju imati visoku razinu

sigurnosti izdvajaju se iz ostatka mreže i osiguravaju posebnim sigurnosnim

mehanizmima. Slika 60. prikazu je upotrebu RISSC (Reduced Interface for Secure

System Components) u osiguravanju servera.

Page 59: Distribuirani Operacijski Sustavi - Skripta

58

4. Jednostavnost – pri implementaciji sigurnosnih mehanizama treba težiti

jednostavnosti, ali treba imati u vidu da jednostavni sigurnosni mehanizmi ne

pružaju veliku razinu sigurnosti.

Slika 57. Kontrola pristupa a) operacijama b) podacima c) ovisno o vrsti korisnika

Slika 58. Slojevi za implementaciju sigurnosnih mehanizama

Page 60: Distribuirani Operacijski Sustavi - Skripta

59

Slika 59. Primjena SMDS mreže

Slika 60. Korištenje RISSC pristupa u osiguravanju servera

Slika 61. prikazuje arhitekturu sigurnosnog sustava za Globus sustav.

Slika 61. Arhitektura sigurnosnog sustava za Globus sustav.

Page 61: Distribuirani Operacijski Sustavi - Skripta

60

Vidljivo je da je korisnik uveden u sustav postupkom autentičnosti korištenjem protokola 1

(prijave za pristup serveru, odnosno otvaranjem korisničkog računa), a zatim se pri

pokretanju procesa provjeravaju prava pristupa resursima za svakog korisnika (protokol 2).

U slučaju pokretanja child procesa i dodjele resursa koristi se protokol 3.

Sigurnosni mehanizmi koji se mogu koristiti su:

1. Kodiranje (encription).

2. Autentičnost (authentication).

3. Autorizacija (autorization).

4. Slušanje (auditing).

Kodiranje

Kodiranje je postupak kojim se originalni podaci prevode u kodirani oblik koji može

dekodirati samo primatelj podataka. Ukoliko ključ za dekodiranje nije poznat nije moguće

koristiti kodirane podatke. Kodiranje može biti simetrično i asimetrično. Simetrično

kodiranje znači da obje strane koriste jednak ključ za kodiranje i dekodiranje. Kod

asimetričnog kodiranja ključ je različit ali je poznat za obje strane. Kodiranje može biti

izvedeno upotrebom:

1. Simetričnog ključa – obje strane imaju jednak ključ za kodiranje i dekodiranje

podataka, primjer je DES (Data Encryption Standard) algoritam za kodiranje.

2. Javnog ključa – svaki korisnik dobiva generirani javni ključ poznat svim ostalim

korisnicima sustava; primjenom javnog ključa korisniku se šalju podaci koje može

koristiti samo korisnik primalac podataka primjenom privatnog ključa.

3. Hash funkcijom – MD5 je korišten algoritam za kodiranje podataka.

Slika 62. prikazuje postupak kodiranja i dekodiranja podataka. Pri prijenosu podataka

moguće je snimanje podataka, izmjena podataka i dodavanje novih podataka, ali se pri

dekodiranju detektiraju promjene na podacima.

Page 62: Distribuirani Operacijski Sustavi - Skripta

61

Slika 62. Kodiranje i dekodiranje podataka.

Sigurnosni kanali

Pri komunikaciji dva klijenta podaci koji se prenose izloženi su prijetnjama presretanja,

modifikacije i fabriciranja. Zato je nužno poduzeti mjere za uspostavu sigurnih kanala za

prijenos podataka. Definiranje sigurnih kanala uvjetovano je postojanjem autentičnih

korisnika u sustavu što znači da korisnici moraju biti provjereni prilikom početka

komunikacije. Sigurni kanali mogu se postići upotrebom:

1. Ključa sesije (session) – za svaku komunikaciju definira se ključ koji se koristi za

kontrolu sigurnosti prijenosa poruka putem komunikacijskog kanala. Ključ postoji

sve dok se veza ne prekine.

2. Djeljivog sigurnosnog ključa – izmeñu dva korisnika definiran je sigurnosni ključ

za svakog korisnika kojim se provjerava primitak poruka od drugog korisnika. Za

razliku od ključa sesije dodijeljeni sigurnosni ključ se može ponovo koristiti za

novu komunikaciju.

3. Centra za dodjelu sigurnosnih ključeva – kako bi se smanjio broj ključeva

dodjeljuje se za dva korisnika jedan zajednički ključ koji koriste za kontrolu

prijenosa podataka

4. Javnog ključa – korištenjem javnog ključa korisnici provjere sigurnost veze.

Page 63: Distribuirani Operacijski Sustavi - Skripta

62

Integritet i povjerljivost poruka izvediva je primjenom:

1. Digitalnih potpisa – postupka kojim se ovjerava pravovaljanost digitalnih

dokumenata; korisnik šalje dokument, a zatim šalje dokument povezan sa

primarnim ključem korisnika, ako primatelj pri usporedbi dokumenata utvrdi da su

dokumenti jednaki digitalni potpis je postignut. Slika 63. prikazuje postupak izrade

digitalnih potpisa.

2. Ključeva sesija – ključ se može upotrijebiti pri prijenosu podataka jer se koristi

sigurna linija (u tom slučaju se ključ sesije koristi više puta), no ipak nije

preporučljivo često korištenje ključa sesija zbog mogućnosti njegovog otkrivanja i

zlouporabe.

Slika 63. Postupak izrade digitalnog potpisa

Sigurna komunikacija grupe korisnika

Sigurna komunikacija izmeñu više korisnika znači da nekoliko korisnika mogu sigurno

izmjenjivati poruke. Sigurna komunikacija grupe korisnika odnosi se na:

1. Povjerljivost komunikacije grupe korisnika – ostvaruje se korištenjem zajedničkog

ključa sesije ili upotrebom para ključeva za svaka dva člana grupe koji meñusobno

komuniciraju.

2. Korištenje servera replika (kopija) – bolje karakteristike sustava ostvaruju se

korištenjem više replika servera, no mora se imati u vidu da replike mogu biti

izložene napadima i korumpirane pa se mogu koristiti neovlašteno promijenjeni

podaci; zato je nužno provjeravati stanje replika kako bi se izbjegle neželjene

posljedice upotrebe korumpiranih replika servera.

Page 64: Distribuirani Operacijski Sustavi - Skripta

63

Kontrola pristupa

Kontrola pristupa je ključna u osiguranju sigurnosti u DOS-u jer omogućuju definiranje i

provjeru prava pristupa korisnika resursima sustava. Kontrola pristupa uključuje prijavu

korisnika u sustav (access control) i dodjelu prava pristupa resursima (autorisation).

Kontrola pristupa ostvaruje se primjenom programa (reference monitor) koji registrira

korisnike koji imaju pravo pristupa objektu, kontrolira primjenu njihovih prava za upotrebu

objekta i odlučuje kada korisnik može pristupiti objektu (slika 64.).

Slika 64. Opći model kontrole pristupa objektima

Kontrola pristupa ostvaruje se korištenjem matrice kontrole pristupa sa popisom objekata

(stupci matrice) i korisnika sustava (redci matrice). No kako je matrica uglavnom

nepopunjena koriste se alternativne tehnike za reduciranje veličine matrice. Alternativne

tehnike su primjena:

1. Listi kontrole pristupa (Access Control List – ACL) – podaci o pravima korisnika

pohranjeni su na serveru te kada stigne zahtjev korisnika za pristup nekom objektu

slijedi provjera dozvola pristupa i izvoñenje zahtjeva (ukoliko je pristup odobren).

2. Liste sposobnosti (capabilites list) – korisnik na klijent strani ima podatke o

objektima kojima može pristupiti na serveru i načinu upotrebe tih objekata; kada se

proslijedi zahtjev serveru provjerava se autentičnost korisnika i izvodi zahtjev na

objektu.

Slika 65. prikazuje razlike izmeñu listi kontrole pristupa i listi sposobnosti.

Page 65: Distribuirani Operacijski Sustavi - Skripta

64

Slika 65. Razlika izmeñu a) listi kontrole pristupa b) listi sposobnosti

Moguća je primjena domena za restrikciju pristupa korisnicima kojima je moguća daljnja

redukcija veličine kontrolnih listi pristupa. Slika 66. prikazuje primjer korištenja domena.

Slika 66. Primjena domena

Vatrozid

Vatrozid (firewall) je posebno računalo namijenjeno kontroli prometa iz lokalne mreže

prema ostalim mrežama i kontroli prometa iz vanjske mreže prema lokalnoj mreži (slika

67.). Filtriranje se može izvoditi korištenjem:

1. filtriranja paketa (packet-filtering gateway) – propuštanje paketa uvjetovano je

izvorom i odredištem paketa.

Page 66: Distribuirani Operacijski Sustavi - Skripta

65

2. analizom sadržaja (application-level gateway) – analizira se sadržaj poruka i

odlučuje o dozvoli propuštanja poruka.

3. posebne vrste aplikacijskog sloja (proxy gateway) – koristi se poseban aplikacijski

sloj namijenjen propuštanju poruka u skladu sa unaprijed definiranim kriterijima.

Slika 67. Primjena vatrozida

Sigurnost mobilnog koda

Pri prijenosu koda koji se izvodi na klijent strani (mobilni agenti) nužno je osigurati

nepromjenjivost koda pri prijenosu prema klijentu. Koriste se tehnike provjere stanja

agenta prije izvoñenja na klijentu i analiza promijene sadržaja klijenta. Zaštita koda agenta

na klijent strani ostvaruje se primjenom posebnih tehnika (sandbox). Tehnika sandbox

dozvoljava izvoñenje unaprijed definiranih operacija na agentu i sprječavanje

nedozvoljenih aktivnosti. Slika 68. prikazuje primjer sandbox-a realiziranig programskim

jezikom Java.

Slika 68. Organizacija Java sandbox-a