Professional Documents
Culture Documents
Distribuirani Operacijski Sustavi - Skripta
Distribuirani Operacijski Sustavi - Skripta
Distribuirani Operacijski Sustavi - Skripta
KRRIIP
PTTA
A
((rraaddnnaa vveerrzziijjaa))
Rijeka, 2007..
SADRŽAJ
1. UVOD.............................................................................................................................2
1.1. Hardware ............................................................................................................................................ 6
2. KOMUNIKACIJA......................................................................................................18
2.1. Protokoli slojeva za komunikaciju .................................................................................................. 18
4. PROCESI.....................................................................................................................45
4.1. Procesne niti (thread) ....................................................................................................................... 45
6. SIGURNOST ...............................................................................................................57
1
1. UVOD
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.
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).
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
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.
7
Slika 6. Upotreba crossbar i omega prekidača
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.
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
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).
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.
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.
12
Slika 12. Komunikacija klijent-server
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..
14
Slika 14. Opći slučaj interakcije izmeñu klijenta i servera
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.
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.
16
Slika 18. Primjer horizontalne distribucije Web usluga
17
2. KOMUNIKACIJA
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.
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
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.
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
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.
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.
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.
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
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.
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
29
Slika 33. a) Peer grupa b) hijerarhijska grupa
30
o Svaka poruka sadrži predikat (pravilo) za evaluaciju koje se provjerava prije
primitka poruke.
31
3. SINHRONIZACIJA U DISTRIBUIRANIM
OPERACIJSKIM SUSTAVIMA
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
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.
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.
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
36
3.3. Mutual Excluison
Slika 43. Centralizirani pristup a) slanje upita i dozvola ulaska u kritičnu sekciju
b) upit odbijen c) upit prihvaćen
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.
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
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.
39
Slika 46. prikazuje primjer atomične akcije pri rezervaciji karata za let izmeñu White
Plains-a i Kenije.
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.)
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.
3.5. Zastoji
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.)
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).
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.
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 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.
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
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.
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.
50
4.3. Pool model procesora
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.)
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).
55
5. DISTRIBUIRANI DATOTEČNI SUSTAVI
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.
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.
58
Slika 59. Primjena SMDS mreže
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.
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.
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
63
Slika 65. Razlika izmeñu a) listi kontrole pristupa b) listi sposobnosti
Vatrozid
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.
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.
65