Вы находитесь на странице: 1из 66

SSK

KRRIIP
PTTA
A
((rraaddnnaa vveerrzziijjaa))

Rijeka, 2007..
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 SUSTAVIMA ..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

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

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

3
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 Jedan server za sve korisnike
Centralizirani podaci Jedan on-line telefonski imenik
Centralizirani algoritmi 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).

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

5
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

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

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

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

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

10
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

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

12
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

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

14
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

15
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

16
Slika 18. Primjer horizontalne distribucije Web usluga

17
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

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

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

20
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

21
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

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

23
• 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

24
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

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

26
Slika 28. Izvoñenje door procedure

Slika 39. a) standardni RPC b) asinhroni RPC

Slika 30. Klijent i server izvode dva asinkrona RPC poziva

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

28
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

29
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

30
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

31
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

32
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

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

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

35
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

36
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

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

38
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

39
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

40
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

41
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:

42
• 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:

43
• 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

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

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

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

47
• 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

48
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

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

50
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

51
• 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,

52
• 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)

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

54
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

55
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

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

57
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

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

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

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

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

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

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

64
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

65

Вам также может понравиться