1.64k likes | 1.95k Views
Raspodijeljeni sustavi. Početci. Dva trenda uvjetuju razvoj raspodijeljenih sustava: Razvoj sve jeftinijih računala koja imaju sve veće mogućnosti Razvoj računalnih mreža. Pojeftinjenje + povećanje mogućnosti računala.
E N D
Početci • Dva trenda uvjetuju razvoj raspodijeljenih sustava: • Razvoj sve jeftinijih računala koja imaju sve veće mogućnosti • Razvoj računalnih mreža
Pojeftinjenje + povećanje mogućnosti računala • Do otprilike osamdesetih godina prošlog stoljeća: velika i skupa računala. • Čak i mini računala u tom periodu koštaju desetke tisuća (tadašnjih) dolara. • Od osamdesetih godina prošlog stoljeća kreće trend eksponencionalnog rasta procesorske snage uz rapidno padanje cijena
Pojeftinjenje + povećanje mogućnosti računala Od računala koje košta desetke milijuna dolara i koje može izvršiti jednu instrukciju u sekundi došlo se u relativno kratkom vremenu do računala koje košta tisuću dolara i obavlja 10 milijuna instrukcija u sekundi -> ovim je odnos cijena/performance uvećan za vrtoglavih 1011 puta.
Razvoj računalnih mreža • LAN i WLAN mreže omogućavaju razmatranje umreženih računala kao “komadića” jednog šireg konteksta koji teži prema sintagmi “mreža je računalo!”
Prvi pogled! Računala koja obavljaju zajednički zadatak i koja međusobno komuniciraju računalnom mrežom -> raspodijeljeni sustav! (početna definicija) Programska podrška – kritični element -> Raspodijeljeni sustavi zahtjevaju bitno drugačiju programsku podršku od centraliziranih sustava.
Bolja definicija Raspodijeljeni sustav je kolekcija neovisnih računala koji zajednički obavljaju zadatke na način da ih korisnik može razmatrati kao jedinstveni sustav. Alternativno: Raspodijeljeni sustav je kolekcija neovisnih sustava koji zajednički obavljaju postavljene zadatke.
Još jedna definicija Raspodijeljeni sustav je kolekcija neovisnih procesa koji zajedničkim radom ostvaruju postavljeni cilj. Kako procesi komuniciraju → porukama
Raspodijeljeni sustav je skup neovisnih računala prezentiran korisniku kao jedan koherentan sustav.
Prednosti nad centraliziranim sustavima • Često ekonomska pozadina prednosti: • Do osamdesetih godina prošlog stoljeća vrijedilo je pravilo (Grosch-ovo) pravilo da je “moć (broj instrukcija u jedinici vremena) procesora proporcionalna kvadratu njegove cijene”. Ili: ako biste izdvojili duplo više novca dobili biste 4 puta bolje performance. • Razvojem mikroprocesora Grosch-ovo pravilo više ne vrijedi. Ulaganjem duplo više novca često se može se dobiti samo isti procesor koji radi na nešto većoj frekvenciji.
Prednosti nad centraliziranim sustavima • Rezultat ovakvog razvoja je da se ne isplati raditi veliko računalo sa snažnim procesorom već treba pronaći način kako zajednički upogoniti više jeftinijih procesora. • Računalom podržani suradni rad je prirodno okruženje za realizaciju kroz neku tehnologiju raspodijeljenog sustava • Veća robustnost – Kvar dijela sustava najčešće samo usporava a ne zaustavlja rad sustava.
Prednosti nad centraliziranim sustavima • Veća mogućnost nadogradnje u komparaciji sa centraliziranim sustavima. • Mogućnost nadogradnje malim koracima (dodavanjem novih procesora prema potrebi). • Brzina: dovoljnim multipliciranjem procesora postići će se uvijek veća brzina u usporedbi s bilo kojim jednoprocesorskim sustavom. • Ravnomjerno opterećenje računalne mreže – opterećena računala se rasterećuju prijenosom obrade na računala sa manjim opterećenjem.
Prednosti nad centraliziranim sustavima • Smanjeni zahtjevi za hardverom – dovoljno je imati nekoliko računala sa nadprosječno kvalitetnih hardverskim osobinama, a zatim se sve hardverski zahtjevnije obrade preusmjeravaju na ta računala. • Smanjene zahtjeva za programskom podrškom – skupi programski 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 programske podrške.
Nedostatci raspodijeljenih sustava • Programska podrška: složeniji razvoj programske podrške • Problemi računalne mreže • Sigurnost podataka
Osnovne karakteristike • Dijeljenje resursa • Otvorenost • Istovremenost • Otpornost na pogreške • Transparentnost
Dijeljenje resursa • Resursi: • Diskovi velikog kapaciteta, pisaći, • Alati za razvoj, biblioteke objekata ili potprograma • Baze podataka Novi pojmovi: upravitelj resursa i korisnik resursa Upravitelj resursa – programski modul koji upravlja određenim resursom Korisnik resursa – proces koji traži korištenje resursa
Dijeljenje resursa • Korisnici resursa komuniciraju s upraviteljem resursa da bi osigurali korištenje resursa. • Modeli komunikacije • Klijent-poslužitelj • Objektni model • Partnerski model
Otvorenost • Otvorenost (općenita definicija) – mogućnost proširivanja • Razine otvorenosti: • Sklopovska razina (npr. dodavanje novih uređaja, memorije, komunikacijskih uređaja...) • Programska razina (npr. proširivanje funkcionalnosti, dodavanje novih djeljivih resursa, novih komunikacijskih protokola...)
Otvorenost • Općenita pretpostavka otvorenosti je poštivanje normi koje definiraju sustav na način da se može proširivati neovisno o proizvođaču opreme ili programske podrške. • Otvorenost raspodijeljenih sustava: mogućnost dodavanja novih usluga bez ugrožavanja dijeljenja postojećih resursa.
Istovremenost • Razlikovati “istovremenost” i istovremenost! • Jednoprocesorsko računalo postiže “istovremenost”: naizmjenično izvršavanje procesa • Ukoliko imamo N procesa i N procesora moguće je postići pravu istovremenost. U idealnom slučaju time postižemo N-terostruko poboljšanje učinkovitosti.
Istovremenost • Prirodna karakteristika raspodjeljenog sustava koja je posljedica posjedovanja više procesora (na više računala) u sustavu. • Ovakva podjela rada rezultira paralelnim izvršavanjem procesa. • Problem: kako uskladiti paralelne procese?
Transparentnost 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. Transparentnost lokacije (location) - korisnik nije upoznat sa fizičkom lokacijom resursa koji sadrži podatke koje korisnik upotrebljava.
Transparentnost Transparentnost migracije (migration) – promjena fizičke lokacije resursa ne utječe na način pristupa resursima. Transparentnost relokacije (realocation) – ukoliko je omogućena promjena lokacije resursa u trenutku kada se resurs koristi.
Transparentnost Transparentnost replikacije (replication) – mogućnost postojanja više kopija originalnih podataka sa čim korisnik ne mora biti upoznat. Transparentnost konkurentnosti (concurrency) – mogućnost korištenja skupa podataka za više korisnika istovremeno pri čemu to korisnici ne opažaju.
Transparentnost Transparentnost pogreške (failure) – korisnici ne opažaju nefunkcionalnost određenog resursa kao ni postupak oporavka sustava u slučaju kvara. 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, obranuju i rezultat se pohranjuje u bazu podataka dok korisnik taj postupak vidi kao izravnu operaciju u bazi podataka).
Otpornost na pogreške • Udvajanje sklopovlja (jednostavni načini korištenja): • Identični sustavi gdje dio služi kao rezerva u slučaju kvara onih koji izvršavaju procese • Istovremeno izvršavanje istih procesa → ukoliko nije isti izlaz dogodila se pogreška Kritičan faktor su i pogreške mreže → oblikovanje računalnih mreža otpornih na ispade.
Sklopovske postavke raspodijeljenih sustava Raspodijeljeni sustavi mogu se koristiti za različite vrste računala spojenih u računalnu mrežu. Različitosti računala uvjetuju razinu složenosti raspodijeljenog sustava. Za potrebe ovih razmatranja razlikujemo: 1. Multiprocesorske računalne sustave 2. Multiračunale računalne sustave.
Sklopovske postavke raspodijeljenih sustava • Multiprocesorski sustavi imaju jedan memorijski adresni prostor koji koristi više procesora, dok za multiračunalni sustavi svaki procesor koristi svoj zasebni adresni prostor. Arhitektura sustava može se zasnivati na sabirnicama (bus) i na prekidačima (switch).
Sklopovske postavke raspodijeljenih sustava 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.
Sklopovske postavke raspodijeljenih sustava Razlika multiprocesorskih i multiračunalnih sustava
Sklopovske postavke raspodijeljenih sustava Multiprocesorski računalni sustavi Svi procesori koriste jedan adresni prostor. Ukoliko se promjena vrijednosti memorijske lokacije od jednog procesora može u 1 mikrosekundi prikazati na drugom procesoru kažemo da imamo koherentan sustav. Također se koristi cache memorija. Svaki proces ima malu brzu cache memoriju za pohranu vrijednosti koje trenutno obrađuje. Cache memorijom se rasterećuje sabirnica, ali se pojavljuje problem ažuriranja vrijednosti cache memorije ukoliko dva procesora pohranjuju vrijednost na istoj memorijskoj lokaciji.
Sklopovske postavke raspodijeljenih sustava 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.
Sklopovske postavke raspodijeljenih sustava Homogeni multiračunalni sustavi Kako sva računala imaju istu strukturu jednostavnija je njihova upotreba u RS-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).
Sklopovske postavke raspodijeljenih sustava Homogeni multiračunalni sustavi grid hiperkocka
Sklopovske postavke raspodijeljenih sustava 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 RS-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.
Operacijski sustavi raspodijeljenih sustava Razlikujemo sljedeće tipove raspodijeljenih sustava: • Raspodijeljeni sustavi zasnovani na raspodijeljenom operacijskom sustavu • Raspodijeljeni sustavi zasnovani na mrežnom operacijskom sustavu • Raspodijeljeni sustavi zasnovani na middleware-u
Operacijski sustavi raspodijeljenih sustava Raspodijeljeni sustavi zasnovani na raspodijeljenom operacijskom sustavu Multiprocesorski RS 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.
Operacijski sustavi raspodijeljenih sustava Raspodijeljeni sustavi zasnovani na raspodijeljenom operacijskom sustavu Multiračunalni raspodijeljeni sustavi omogućuju rad potpuno različitih računalnih sustava, pa je i njihova kompleksnost znatno veća u odnosu na multiprocesorske raspodijeljene sustave.
Operacijski sustavi raspodijeljenih sustava Raspodijeljeni sustavi zasnovani na raspodijeljenom operacijskom sustavu
Operacijski sustavi raspodijeljenih sustava Mrežni operacijski sustavi Mrežni operacijski sustavi se prilagođavaju operacijskom sustavu svakog računala i ne stvaraju sliku jedinstvenog sustava. Mrežni operacijski sustavi svako računalo vide posebno i pružaju mrežne servise operacijskom sustavu na svakom mrežnom računalu. Komunikacija u mrežnim operacijskim sustavima usmjerena je na prijenos poruka između klijent računala i računala namijenjenih pružanju usluga drugim računalima (npr. data server).
Operacijski sustavi raspodijeljenih sustava Mrežni operacijski sustavi
Operacijski sustavi raspodijeljenih sustava Middleware Middleware je dodatni sloj programske podrške koji se pozicionira između raspodijeljenih aplikacija i mrežnih operacijskih sustava. Middleware je namijenjen usklađivanju različitosti između mrežnih operacijskih sustava. Middleware se primjenjuje u raspodijeljenom datotečnom sustavu, zatim pri izvedbi poziva na udaljenom računalu (Remote Procedure Call – RPC) ili za rad raspodijeljenih objekata.
Operacijski sustavi raspodijeljenih sustava Usluge middleware-a su: 1. Komunikacijske usluge – maskiranje prijenosa podataka niske razine. 2. Imenovanje – omogućavanje pristupa i dijeljenje resursa. 3. Postojanost podataka. 4. Raspodijeljene transakcije – izvođenje više zasebnih operacija koje se moraju kompletno izvesti da bi se završila raspodijeljena transakcija. 5. Sigurnost.
Operacijski sustavi raspodijeljenih sustava Opća struktura middleware-a
Komunikacije u raspodijeljenim sustavima Osnovna razlika raspodijeljenih sustava i lokalnog sustava je komunikacija među procesima. Zasniva se na primjeni poruka niskog nivoa (bliskom sklopovlju 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.
Komunikacije u raspodijeljenim sustavima Slojevi i konektori: • Slojevi: različite razine apstrakcije koje rješavaju neovisne zadatke • Konektori: protokoli interakcije susjednih slojeva Interakcija se odvija samo između susjednih čvorova!
Komunikacije u raspodijeljenim sustavima Različiti pogledi na koncepciju slojevi/konektori Klasična arhitektura aplikacije Slojevi: • Korisničko sučelje • Sloj aplikacijske logike • Sloj podataka Konektori: mehanizmi komunikacije korisničko sučelje <-> sloj aplikacijske logike i sloj aplikacijske logike <-> sloj podataka