1. előadás. Elosztott rendszerek. 1. Bevezetés

Hasonló dokumentumok
Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Elnevezési rendszerek. 7. előadás

Elnevezési rendszerek. A névtér elosztása (2) 4. előadás. A névfeloldás implementálása (1) A névfeloldás implementálása (2)

Kommunikáció. Kommunikáció. Folyamatok. Adatfolyam-orientált kommunikáció. Kommunikáció típusok (1) Kommunikáció típusok (2) Média. Folyamok (Streams)

Elnevezési rendszerek. Szinkronizálás

Szinkronizálás. 9. előadás

Kommunikáció. 3. előadás

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Folyamatok. 6. előadás

Konzisztencia és többszörözés. 10. kurzus

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer. Célok

Lineáris. Soros. Okozati FIFO. Belépő

UNIX: folyamatok kommunikációja

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Hálózati ismeretek. Az együttműködés szükségessége:

Bevezetés a párhuzamos programozási koncepciókba

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 5. rész: Elnevezési rendszerek

S04-2 Elosztott alkalmazások készítése

Hálózati architektúrák laborgyakorlat

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Autóipari beágyazott rendszerek. A kommunikáció alapjai

Transzport Réteg. Transzport réteg protokollok

Adatátviteli rendszerek Mobil IP. Dr. habil Wührl Tibor Óbudai Egyetem, KVK Híradástechnika Intézet

Elosztott rendszer architektúrák

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

SzIP kompatibilis sávszélesség mérések

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

2. fejezet Hálózati szoftver

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Hálózati architektúrák és Protokollok GI - 9. Kocsis Gergely

Számítógépes munkakörnyezet II. Szoftver

Elosztott rendszerek

Osztott alkalmazások fejlesztési technológiái Áttekintés

ECDL Információ és kommunikáció

Hálózati operációs rendszerek II.

Tartalomjegyzék. Előszó... 10

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

4. Hivatkozási modellek

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Névfeloldás hosts, nsswitch, DNS

Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek

Operációs rendszerek. UNIX/Linux fájlrendszerek

Osztott rendszerek (Distributed

Információ és kommunikáció

Számítógépes Hálózatok. 5. gyakorlat

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

2. fejezet Hálózati szoftver

Alapszintű formalizmusok

Kommunikációs rendszerek programozása. Voice over IP (VoIP)

Hálózati architektúrák laborgyakorlat

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

SZAKDOLGOZAT ÓBUDAI EGYETEM. Neumann János Informatikai kar Alba Regia Egyetemi Központ

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

11. Elosztott állománykezelés. Operációs rendszerek. Elosztott állománykezelés. Teljesítmény növelése. Az állományokra hivatkozás. Az állományok nevei

Operációs rendszerek. Bemutatkozás

Operációs rendszerek. UNIX fájlrendszer

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Információ és kommunikáció

A SZOFTVERTECHNOLÓGIA ALAPJAI

Számítógépes Hálózatok. 7. gyakorlat

ELTE, IK, Információs Rendszerek Tanszék

9. MPI

Járműinformatika Multimédiás buszrendszerek (MOST, D2B és Bluetooth) 4. Óra

Párhuzamos programozási platformok

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

III. előadás. Kovács Róbert

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

BEÁGYAZOTT RENDSZEREK TERVEZÉSE UDP csomag küldése és fogadása beágyazott rendszerrel példa

Az Internet működésének alapjai

Elosztott rendszerek

INTERNET. internetwork röviden Internet /hálózatok hálózata/ 2010/2011. őszi félév

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 3. óra. Kocsis Gergely, Kelenföldi Szilárd

VIII. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Komponens modellek. 3. Előadás (első fele)

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

TELE-OPERATOR UTS v.14 Field IPTV műszer. Adatlap

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

The Flooding Time Synchronization Protocol

Dr. Mileff Péter

Non-stop hozzáférés az üzleti információkhoz bárhol, bármikor és bármilyen eszközzel

Operációs rendszerek III.

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Operációs rendszerek. Az X Window rendszer

Számítógépes Hálózatok 2010

Operációs rendszerek. Az NT memóriakezelése

Hálózati réteg. WSN topológia. Útvonalválasztás.

Erőforrás gazdálkodás a bevetésirányításban

Elosztott adatbázis-kezelő formális elemzése

Az adott eszköz IP címét viszont az adott hálózat üzemeltetői határozzákmeg.

RPC Remote Procedure Call Távoli eljárás hívás

Tartalom. Hálózati kapcsolatok felépítése és tesztelése. Rétegek használata az adatok továbbításának leírására. OSI modell. Az OSI modell rétegei

Párhuzamos programozási platformok

Adatszerkezetek 1. előadás

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Számítógépes hálózatok

Komponens alapú fejlesztés

Átírás:

1. előadás Elosztott rendszerek 1. Bevezetés

Az előadás Tankönyv: Andrew S. Tanenbaum Maarten van Steen: Elosztott Rendszerek Alapelvek és Paradigmák http://people.inf.elte.hu/bonnie bonnie@inf.elte.hu

Az elosztott rendszer definíciója Az elosztott rendszer az önálló számítógépek olyan összessége, amely kezelői számára egyetlen koherens rendszernek tűnik.

Köztesrétegként felépülő elosztott rendszer 1.1

Célok Felhasználók és erőforrások összekapcsolása Átlátszóság Nyitottság Átméretezhetőség

Felhasználók és erőforrások összekapcsolása Távoli erőforrások elérése Más felhasználókkal ellenőrzött módon való megosztás

Átlátszóság az elosztott rendszerekben Átlátszóság Hozzáférhetőség (Access) Elhelyezkedés (Location) Áthelyezhetőség (Migration) Mozgathatóság (Relocation) Többszörözhetős ég (Replication) Egyidejűség (Concurrency) Meghibásodás (Failure) Állandóság (Persistence) Leírás Elrejti az erőforrás elérésének mikéntjét és az adatábrázolási különbözőségeket. Elrejti az erőforrás fizikai elhelyezkedését. Elrejti az erőforrás más helyre való áthelyezhetőségét. Elrejti a használatban lévő erőforrás más helyre való mozgathatóságát. Elrejti az erőforrás többszörözöttségét. Elrejti az erőforrás több versenyhelyzetű felhasználó közötti megoszthatóságát. Elrejti az erőforrás meghibásodását és újbóli üzembe helyezését. Elrejti, hogy a (szoftver) erőforrás a memóriában vagy a háttértárolón van-e.

Nyitottság Szolgáltatások jól definiált szintaktikai és szemantikai szabályoknak megfelelően Együttműködés Hordozhatóság A megvalósítás és a módszer szétválasztása

Átméretezhetőségi problémák Koncepció Központosított szolgáltatás Központosított adat Központosított algoritmus Példa Egy kiszolgáló minden felhasználó számára Egyetlen on-line telefonkönyv adatbázis A teljes információn alapuló útválasztás Mintapéldák az átméretezhetőség korlátaira

Decentralizált algoritmusok Egyetlen gépnek sincs teljes információja a rendszer állapotáról. A gépek kizárólag helyi információk alapján hoznak döntéseket. Egyetlen gép meghibásodása sem okozza az algoritmus leállását. Még közvetett módon sem feltételezi bármiféle globális óra meglétét.

Az átméretezés technikája (1) 1.4 Miként különbözik a) a szerver, vagy b) a kliens által végzett űrlap ellenőrzés az űrlap kitöltése közben

Az átméretezés technikája (2) 1.5 Példa a DNS-névtér zónákra osztása

Szoftverkoncepciók Rendszer Leírás Fő cél DOS (Distributed Operating Systems) NOS (Network Operating Systems) Köztesréte g Többprocesszoros és homogén multiszámítógépek szorosan csatolt operációs rendszere Heterogén multiszámítógépek (LAN és WAN) gyengén csatolt operációs rendszere A NOS fölötti, általános célú szolgáltatásokat implementáló újabb réteg Hardvererőforráso k elrejtése és kezelése Helyi szolgáltatások távoli kliensek számára elérhetővé tétele Elosztottsági átlátszóság biztosítása

Egyprocesszoros operációs rendszerek Az operációs rendszer és az alkalmazások elválasztása a mikrokernel használatával

Többprocesszoros operációs rendszerek (1) monitor Counter { private: int count = 0; public: int value() { return count;} void incr () { count = count + 1;} void decr() { count = count 1;} } Az egész számot az egyidejű eléréstől megvédő monitor

Többprocesszoros operációs rendszerek (2) monitor Counter { private: int count = 0; int blocked_procs = 0; condition unblocked; public: int value () { return count;} 0) } void incr () { if (blocked_procs == void decr() { if (count ==0) { blocked_procs = blocked_procs + 1; wait (unblocked); blocked_procs = blocked_procs 1; count = count + 1; count = count 1; else } signal (unblocked); } Egyidejű elérés ellen védett egész számot megvalósitó monitor, amely képes blokkolni a hívó folyamatokat } else

Multiszámítógépes operációs rendszerek (1)

Multiszámítógépes operációs rendszerek (2) A blokkolás és a pufferelés lehetséges esetei üzenetátadáskor

Multiszámítógépes operációs rendszerek (3) Szinkronizációs pont Küldő puffer Megbízható-e a kommunikáció? Küldő blokkolása amíg a puffer tele Van Nem feltétlenül Küldő blokkolása az üzenet elküldéséig Küldő blokkolása az üzenet megérkezéséig Küldő blokkolása az üzenet kézbesítéséig Nincs Nincs Nincs Nem feltétlenül Kötelezően Kötelezően A blokkolás a pufferelés és a megbízható kommunikáció összefüggése

Elosztott, közös memóriájú rendszerek a) A címtartomány lapjainak elosztása négy gép között b) A kialakult helyzet, miután CPU 1 a 10. lapra hivatkozott c) A kialakult helyzet, ha a 10. lap csak olvasható, és többszörözést is használunk

Hálózati operációs rendszerek (1) A hálózati operációs rendszer általános felépítése

Hálózati operációs rendszerek (2) Egy szerver és két kliens a hálózati operációs rendszerben.

Hálózati operációs rendszerek (3) A különböző kliensek a szervereket különböző helyre Szerelhetik fel.

A köztesréteg helyének kiválasztása A köztesrétegként megvalósított elosztott rendszer általános felépítése.

A köztesréteg és a nyitottság A nyitott köztesréteg alapú elosztott rendszerben mind a köztesrétegek által használt protokollnak, mind pedig az alkalmazásokhoz kapcsolható interfészüknek meg kell egyeznie.

A rendszerek összehasonlítása Szempont Átlátszóság foka Azonos operációs rendszer minden csomóponton? Operációs rendszer másolatok száma Kommunikáció alapja Erőforráskezelés Elosztott operációs rendszer Többpro - cesszoro s Nagyon magas Multiszámí -tógépes Hálózati operációs rendszer Köztesréteg alapú elosztott rendszer Magas Alacsony Magas Igen Igen Nem Nem 1 N N N Közös memória Globális, központi Üzenetek Állományok Modellfüggő Globális, elosztott Csomópontonként Csomópontonként Átméretezhetőség Nincs Közepes Igen Változó Nyitottság Zárt Zárt Nyitott Nyitott

2. előadás Kommunikáció 1. rész

Kommunikáció A és B folyamatnak meg kell egyeznie a bitek jelentésében Szabályok protokollok ISO OSI Többrétegű protokollok előnyei Kapcsolat-orientált / kapcsolat nélküli

Protokollrétegek (1) Az OSI-modell szintjei, interfészei és protokolljai.

Protokollrétegek (2) A hálózaton megjelenő tipikus üzenet szerkezete.

Fizikai réteg 0/1 átvitelének módjai Feszültség, küldés sebessége, stb. Adatkapcsolati réteg Meghibásodást fedi el Adatkeretek Ellenőrző összeg

Adatkapcsolati réteg (2) A küldő és a fogadó közötti párbeszéd az adatátviteli rétegben.

Útvonalválasztás IP Internet Protocol Hálózati réteg Szállítás Csomagok elveszhetnek Megbízható kapcsolatot épít TCP Transmission Control Protocol UDP Universal Datagram Protocol RTP Real-time Transport Protocol

Kliens-szerver TCP a) A TCP normál működése b) Tranzakciós TCP

Viszony- és megjelenítési rétegek Párbeszéd vezérlése Bitek jelentése Alkalmazási réteg FTP File Transfer Protokoll vs. ftp-program Köztesréteg-protokoll

Köztesréteg protokoll (1) Logikailag az alkalmazási rétegbe tartozik, de tartalmaz általános célú protokollokat Köztesréteg szolgáltatásait támogató protokollok Azonosító Jogosultságok Véglegesítő protokoll Elosztott zárolási protokoll Magas szintű kommunikációs szolgáltatások: RPC, RMI

Köztesréteg protokoll (2) A hálózatos kommunikáció módosított hivatkozási modellje.

RPC Remote Procedure Call Elrejti a kommunikáció tényét Hagyományos eljáráshívás count = read(fd, buf, nbytes); Érték szerinti / hivatkozás szerinti paraméterátadás

Hagyományos eljáráshívás a) Paraméter-átadás helyi eljáráshívás esetén: a verem állapota a read függvény meghívása előtt b) A verem állapota a hívott eljárás futása közben

Kliens- és szerveroldali eljáráscsonkok A kliens és a szerver közötti távoli eljárás hívásának (RPC) alapelve.

Távoli eljárás hívása során végrehajtandó lépések 1. A kliensfolyamat hagyományos módon meghívja a kliensoldali eljáráscsonkot. 2. A csonk felépíti az üzenetet, és meghívja a helyi op. rsz.-t. 3. A kliensoldali op. rsz. elküldi az üzenetet a távoli op. rsz.-nek. 4. A távoli op. rsz. átadja az üzenetet a szerveroldali eljáráscsonknak. 5. A csonk kicsomagolja a paramétereket és meghívja a szervert. 6. A szerver elvégzi a feladatát, és visszaadja az eredményt a csonknak. 7. A csonk becsomagolja az eredményt, és meghívja a helyi (szerveroldali) op. rsz.-t. 8. A szerveroldali op. rsz. elküldi az üzenetet a kliensoldali op. rsz.-nek. 9. A kliensoldali op. rsz. átadja az üzenetet a kliensoldali csonknak. 10. A csonk kicsomagolja az eredményt, és visszatér a hívó kliensfolyamathoz

Paraméterek átadása (1) Az RPC útján történő távoli feladatvégzés során szükséges lépések.

Paraméterek átadása (2) a) Az eredeti üzenet a Pentium gépen. b) Az üzenet, miután megérkezik a SPARC gépre. c) Az invertált üzenet (a dobozok felső sarkában látható kis számok a bájt sorszámát jelentik).

A paraméterek leírása és a csonk generálása

Elosztott objektumok A távoli objektum elterjedt kialakítása a kliensoldali helyettes (proxy) alkalmazásával

3. előadás Kommunikáció 2. rész

Protokollok RPC (Remote Procedure Call) távoli eljáráshívás RMI (Remote Method Invocation) távoli metódushívás MOM (Message-Oriented Middleware) üzenetorientált köztesréteg Streams folyamatok

Távoli eljáráshívás - Üzenetküldés elrejtése - Hozzáférési átlátszóság

RPC kommunikáció menete 2-8

RPC - paraméterátadás Probléma: különböző gépek, különböző adatábrázolással Mutatók Komplex adatszerkezetek => protokoll: Üzenet formátumának definiálása Egyszerű adatszerkezetek ábrázolása Üzenettovábbítás módja IDL (Interface Definition Language)

DCE RPC (1) Distributed Computing Environment Konverzió IDL Eljáráshívás szintaxisa Konstans deklaráció Típusdefiníció konvertálási információ Azonosítók

DCE RPC (2) Kliens és a szerver megírásának lépései a DCE RPC esetén.

DCE RPC (3) Kliens csatlakozása a szolgáltatáshoz

Ajtók - Doors

Aszinkron RPC a) A kliens és a szerver együttműködése hagyományos RPC során b) Együttműködés aszinkron RPC esetén

Késleltetett szinkronizált RPC Kliens és szerver együttműködése két aszinkron RPC segítségével.

RMI elosztott objektumok Modell kliensoldali helyettessel és szerveroldali vázzal.

RMI Elosztott objektum Távoli objektum Fordítási idejű objektum Futási idejű objektum Állandó objektum Nem állandó objektum

Kliens csatlakozása az objektumhoz Distr_object* obj_ref; obj_ref = ; obj_ref-> do_something(); (a) Distr_object objpref; Local_object* obj_ptr; obj_ref = ; obj_ptr = bind(obj_ref); obj_ptr -> do_something(); (b) // Deklarálja az objektumhivatkozást // Inicializálja az objektumhivatkozást // Implicit csatlakozás és metódushívás // Deklarálja az objektumhivatkozást // Deklarálja a helyettes mutatóját // Inicializálja az objektumhivatkozást // Explicit csatlakozás (helyettes mutatója) // Helyetes metódusának meghívása a) Implicit csatlakozás b) Explicit csatlakozás

RMI távoli művelet hívása Statikus hívás - IDL -> csonk fobject.append(number); Dinamikus hívás - futás közbeni összeállítás invoke(fobject, id(append), number); [ általánosan: invoke(objektum, metódus, input_paraméterek, output_paraméterek); ]

Java RMI Csak távoli objektum Objektumok zárolása synchronized kliensen blokkol Helyettes szerializálható

Üzenetorientált kommunikáció RPC, RMI nem mindig használható: Szerver nem biztos, hogy üzemel a kérés elküldésekor Nem mindig hatékony a nagyfokú szinkronitás => üzenetcsere

Korábbi kommunikációs modell Pufferelés és a küldő blokkolásának lehetséges helyei

Új kommunikációs modell

Üzenetküldés Megtartó kommunikáció Időleges kommunikáció Szinkron kommunikáció Aszinkron kommunikáció Ezek kombinációja is lehetséges

Kommunikáció fajtái 1. a) Megtartó aszinkron kommunikáció b) Megtartó szinkron kommunikáció

Kommunikáció fajtái 2. c) Időleges aszinkron kommunikáció d) Nyugta alapú időleges szinkron kommunikáció

Kommunikáció fajtái 3. e) Kézbesítés alapú időleges szinkron kommunikáció f) Válasz alapú időleges szinkron kommunikáció

Üzenetorientált időleges kommunikáció Szállítási réteg által biztosított modell Kommunikációs csatlakozópont (socket) TCP primitívek

Berkeley kommunikációs csatlakozópontok Primitív Csatlakozópont (Socket) Kötés (Bind) Figyel (Listen) Elfogad (Accept) Csatlakozik (Connect) Küld (Send) Fogad (Receive) Lezár (Close) Jelentése Új kommunikációs végpont létrehozása A csatlakozóponthoz hozzárendel egy helyi címet Meghirdeti a kommunikációra való képességet Blokkolja a hívót a kapcsolatfelvételi kérés megérkezéséig Aktívan megkísérli a kapcsolat felépítését Adatot küld a kapcsolaton keresztül Adatot fogad a kapcsolaton keresztül Bontja a kapcsolatot

Berkeley kommunikációs csatlakozópontok

MPI Üzenetátadó interfész Message-Passing Interface Csatlakozóponos megoldás nem eléggé magas szintű => kommunkációs könyvtárak inkompatibilitás => MPI (szabványosítás) Időleges kommunikáció Azonosító (csoport, folyamat)

MPI Üzenetátadó interfész Primitív MPI_bsend MPI_send MPI_ssend MPI_sendrecv MPI_isend MPI_issend MPI_recv MPI_irecv Jelentése A helyi küldőpuffer végéhez hozzáadja a kimenő üzenetet Üzenetet küld, és vár annak helyi vagy távoli pufferbe történő másolásáig Üzenetet küld, és vár a nyugta megérkezéséig Üzenetet küld, és vár a válasz megérkezéséig Átad egy kimenő üzenetre mutató hivatkozást, és továbbmegy Átad egy kimenő üzenetre mutató hivatkozást, és várja ennek nyugtázását Üzenet fogadása; blokkolódik, ha nincs üzenet Ellenőrzi, hogy van-e beérkező üzenet, de nem blokkolja a hívót

Üzenetorientált megtartó kommunikáció Üzenetorientált köztesréteg MOM Megtartó aszinkron kommunikáció Üzenetek köztes szinten való tárolása (várakozási sorok)

Üzenetsor-kezelő modell Várakozási sort használó gyengén csatolt kommunikáció 4 lehetősége

Üzenetsor-kezelő modell Primitív Betesz (Put) Kivesz (Get) Lekérdez (Poll) Értesít (Notify) Jelentése A megadott várakozási sor végére helyez egy üzenetet Mindaddig blokkol, amíg üres a várakozási sor, majd kiveszi a legelső üzenetet Megvizsgálja, a megadott várakozási sort, és kiveszi a legelső üzenetet, nem blokkol Egy kezelő rutint installál, amely mindannyiszor meghívásra kerül, ha üzenet kerül a várakozási sorba Az üzenetsor-kezelő rendszer várakozási sorát kezelő alapinterfész

Az üzenetsor-kezelő rendszer általános felépítése Az üzenetsor-kezelő szint szerinti és szállítási szint szerinti cím összefüggése

Az üzenetsor-kezelő rendszer általános felépítése Az útválasztókkal kiépített üzenetsor-kezelő rendszer általános felépítése

Üzenetközvetítők Az üzenetközvetítőt használó üzenetsor-kezelő rendszer általános felépítése

4. előadás Kommunikáció 3. rész Folyamatok 1. rész

Kommunikáció 3. rész Adatfolyam-orientált kommunikáció

Kommunikáció típusok (1) Diszkrét interakció A B idő Folyamatos interakció A < B idő

Kommunikáció típusok (2) Eddig: egymástól független, teljes információegységek cseréje kommunikáció lezajlásának pillanata nem fontos Most: időzítés pontossága alapvető fontosságú folyamatos média támogatása Hogyan támogatja ezt az elosztott rendszer?

Média Diszkrét (ábrázolású) média pl. szöveg, kép Folyamatos (ábrázolású) média: pl. hang, videó Multimédia Folyamatos képsor biztosítása Quality of Service Átlátszóság Standardok

Folyamok (Streams) Adategységek sorozatának átviteli módjai: aszinkron szinkron izoszinkron Folyam Egyszerű folyam (Simple Stream) Összetett folyam (Complex Stream) több egymással kapcsolatban álló egyszerű folyam alfolyamok közötti kapcsolat szintén időfüggő

Movie, mint összetett folyam

Adatfolyam (1) Két folyamat között a hálózaton keresztül létesített folyam.

Adatfolyam (2) Közvetlenül két eszközt összekötő folyam.

Adatfolyam (3) Példa egy műsorszóró folyam több fogadó felé való küldésére.

Multimedia Rendszer-környezet (Multimedia System Environment)

Technológiai adatok Multimédia forrás Mbit/s GB/h Telefon (PCM) 0.064 0.003 MP3 0.14 0.06 Audió CD 1.4 0.62 MPEG-1 videó 1 1.5 0.66 MPEG-2 videó 4 1.76 Digitális kamera (720*480) 25 11 Tömörítetlen TV (640*480) 221 97 Eszköz Mbit/s Fast Ethernet 100 EIDE Disk 133 ATM OC-3 156 SCSI Ultra wide disc 320 IEEE 1394 (FireWire) 400 Gigabit Ethernet 1 000 SCSI Ultra-160 1 280 Tömörítetlen HDTV (1280*720) 648 288

A szolgáltatás minősége QoS Quality of Service Időfüggő követelmények mit várunk el a hálózattól Folytonos adatfolyamok esetén időzítési mennyiségi és megbízhatósági kérdések

QoS kategóriák Időbeliség (timeliness) adatnak időben kell megérkeznie Mennyiség (volume) áteresztőképesség (throughput) Megbízhatóság (reliability) adatvesztés mértéke Költség (cost) Kritikusság (criticality) Érzékelés minősége (quality of perception)

QoS dimenziók Időbeliség dimenziói Késleltetés (latency) Kezdeti késleltetés (start-up latency) Remegés (jitter) Mennyiség dimenziói sávszélesség frames/s vagy bits/s vagy bytes/s Megbízhatóság dimenziói MTBF (Mean Time Between Faliure) MTTR (Mean Time To Repair) Telekommunikációs vonalak esetén a hiba-ráta

Qos követelmények megadása Determinisztikus - folyamspecifikáció precíz értékek, értékhatárok Valószínűségi (probabilistic) valószínűségi értékek a QoS-re Eloszláson alapuló (stochastic distributions) Minőségi osztályok

Tipikus QoS követelmények QoS Max késleltetés (s) Max remegés (ms) Sávszélesség (Mbit/s) Bit hiba-ráta Csomag hiba-ráta Hang 0.25 10 0.054 < 10-3 < 10-4 Videó (TV) 0.25 100 100 < 10-2 < 10-3 Tömörített videó 0.25 100 2 10 < 10-6 < 10-9 Kép 1-2 10 < 10-4 < 10-9 Adat (file-átvitel) 1-2 100 0 0 Valós-idejű adat 0.001 1 - < 10 0 0

A QoS meghatározása zsetontartály algoritmus (1) A zsetontartály-algoritmus elve.

A QoS meghatározása zsetontartály algoritmus (2) Bemeneti adatok jellemzői Adategység maximális mérete (bájt) Zsetontartály időegységráta (bájt/s) Zsetontartály mérete (bájt) Maximális átviteli adatráta (bájt/s) Megkövetelt szolgáltatások Veszteségi érzékenység (bájt) Veszteségi időtartam (µs) Löketveszteségi érzékenység (adategység) Legkisebb észlelt készleltetés (µs) Legnagyobb késleltetési eltérés (µs) Szavatolt minőség Folyamspecifikáció.

QoS függőségek Egy komponens által nyújtott QoS függhet egy másik komponens által nyújtott QoS-től pl. rétegelt rendszerekben QoS igények megfogalmazásának egy rendszere

QoS működtetése Specifikáció Tárgyalás (negotiation) az alkalmazás kevesebbet is elfogadhat kevesebb költségért Beléptetés (admission control) ha belépett, a rendszer garantálja a QoS-t Erőforrás-lefoglalás ha szükséges a QoS betartásához

A folyam megindítása QoS-nek megfelelő erőforrások lefoglalása sávszélesség puffer feldolgozási kapacitás Erőforrás lefoglaló protokoll (RSVP Resource reservation Protocol) QoS fogadó által kezdeményezett beléptetés, lefoglalás multicast üzenetküldés támogatása

A folyam megindítása Az RSVP-módszerrel történő erőforrás-lefoglalás általános vázlata az elosztott rendszerben.

Szinkronizálási mechanizmusok (1) Az adategység szintjén történő explicit szinkroniálás elve.

Szinkronizálási mechanizmusok (2) A magas szintű interfészek által támogatott szinkronizáció elvi vázlata.

Folyamatok 1. rész

Folyamatok Folyamat kezelése, ütemezése folyamattábla új folyamat létrehozása átkpcsolás folyamatok elválasztása egymástól átlátszó Szál szálkezelő rendszer szálak védése egymástól a programozó feladata

Szálak használata a nem elosztott rendszerekben Az IPC hatására bekövetkező állapotváltozások

Szálak implementációja Száltámogató csomagok létrehozás, megsemmisítés szinkronizálás Szálkönyvtár futhat felhasználói módban kernel módban hibrid megoldás: könnyűsúlyú folyamatok (LWP LightWeight Process) LWP: száltámogató csomag felhasználói módban blokkoló rendszerhívás nem blokkolja az egész folyamatot átlátszó

Szálak implementációja A felhasználói szintű szálak és a kernel szintű könnyűsúlyú folyamatok kombinációja.

Többszálú szerverek (1) A diszpécser/dolgozó modell szerinti többszálú szerver felépítése.

Többszálú szerverek (2) Modell Szálak Egyszálú folyamat Véges állapotú gép Jellemzője Párhuzamos végrehajtás, blokkoló rendszerhívások Nincs párhuzamos végrehajtás, blokkoló rendszerhívások Párhuzamos végrehajtás, nem blokkoló rendszerhívások A szerver felépítésének három módja.

5. előadás Folyamatok 2. rész Elnevezési rendszerek 1. rész

Folyamatok 2. rész

Emlékeztető Folyamatok Szálak Könnyűsúlyú folyamatok Szálak nem elosztott rendszerekben rendszerhívásra várakozás alatt hasznos munka többprocesszoros rendszerek kihasználása implementációs okok

Többszálú kliens Előnyök: elosztottsági átlátszóság hatékonyság Kliens (tipikus) feladatai: felhasználói felület helyi feldolgozó rész kommunikációs rész + elosztottsági átlátszóság eléréséhez szükséges elemek

Kliensoldali szoftver és az átlátszóság Hozzáférhetőségi átlátszóság Elhelyezkedési, áthelyezhetőségi és mozgathatsági átlátszóság Meghibásodási átlátszóság Többszörözhetőségi átlátszóság

Többszörözhetőségi átlátszóság megvalósítása kliens-oldalon A távoli objektumtöbbszörözés átlátszóvá tételének egyik lehetséges módja a kliensoldali megoldás használata.

Többszálú szerver (1) Előnyök: egyszerűbb kód párhuzamos végrehajtás lehetősége blokkoló rendszerhívás idejének kihasználása Szerver feladatai: várakozik a beérkező kérésekre kezeli a kérést

Többszálú szerver (2) A diszpécser/dolgozó modell szerinti többszálú szerver felépítése.

Többszálú szerver általános tervezési szempontok Ismétlőszerver <-> konkurens szerver Lehet-e megszakítást küldeni a szervernek Állapot nélküli szerver <-> állapotteljes Hogyan találják meg a kliensek a szervert

Hogyan találják meg a kliensek a szervert a) démon használatával (mint a DCE esetén szokásos) b) szuperszerver használatával (mint a Unix-rendszerekben szokásos)

Kód áthelyezése A kód áthelyezésének okai: teljesítménynövelés terhelésmegosztási algoritmusok kommunikáció leszorítása adatot ott dolgozzuk fel, ahol van párhuzamos végrehajtás kihasználása rugalmasság

A kód áthelyezésének okai A kliens szerverrel folytatott kommunikációjának dinamikus konfigurálási elve. A kliens először letölti a szükséges szoftvert, majd meghívja a szervert.

A folyamat szegmensei Kódszegmens végrehajtott program Erőforrásszegmens igényelt külső erőforráshivatkozások Végrehajtási szegmens futási állapot

Kódáthelyezési modellek (1) Gyenge mobilitás Erős mobilitás Küldő által kezdeményezett Fogadó által kezdeményezett Gyenge mobilitásnál Célfolyamatban fut Külön folyamatban fut Erős mobilitásnál Áthelyezett folyamat Klónozott folyamat

Kódáthelyezési modellek (2) A kódáthelyezés lehetőségei.

Az áthelyezés és a helyi erőforrások (1) Folyamat-erőforrás kötés azonosítókapcsolt kizárólag az adott erőforrás kell tartalomkapcsolt az adott erőforrás tartalma kell típuskapcsolt adott típusú erőforrás kell Erőforrás-gép kötés csatolatlan könnyen áthelyezhető rögzített áthelyezhető, de költséges mozdíthatatlan nem helyezhető át

Erőforrás-gép kötés Folyamat-erőforrás kötés Azonosítókapcsolt Tartalomkapcsolt Típuskapcsolt Csatolatlan Rögzített Mozdíthatatlan erőforrás áthelyezése (vagy globális hivatkozás létesítése) tartalom másolása (vagy erőforrás áthelyezése vagy globális hivatkozás létesítése) újrakapcsolódás helyileg elérhetőhöz (vagy erőforrás áthelyezése vagy tartalom másolása) globális hivatkozás létesítése (vagy erőforrás áthelyezése) globális hivatkozás létesítése (vagy tartalom másolása) újrakapcsolódás helyileg elérhetőhöz (vagy globális hivatkozás létesítése vagy tartalom másolása) globális hivatkozás létesítése globális hivatkozás létesítése újrakapcsolódás helyileg elérhetőhöz (vagy globális hivatkozás létesítése) Másik gépre való kódáthelyezés során a helyi erőforrásokra való hivatkozásokkal kapcsolatos műveletek.

Kód áthelyezése heterogén rendszerben Szükséges az összes platform támogatottsága újrafordítás Erős mobilitásnál végrehajtási szegmens áthelyezhetősége Végrehajtási szegmens tartalma: folyamat által elérhető védett adatok programszámláló értéke folyamat vermének tartalma Lehetséges megoldás: kódáthelyezés csak meghatározott pontokon programvermem másolatának (áthelyezési verem) tárolása gépfüggetlen módon kódáthelyezéskor kód és áthelyezési verem átküldése

Kód áthelyezése heterogén rendszerben A végrehajtási szegmens áthelyezhetőségének támogatásához szükséges áthelyezési verem kezelésének elvi vázlata heterogén környezetben.

Programozási nyelv által támogatott mobilitás JoCaml Szerver: let def f x = reply x*x in Ns.register "square" f vartype;; Kliens: let loc here do {};; Ns.register "here" here vartype; Join.server ();; let loc mobile do { let here = Ns.lookup "here" vartype in go here; } let sqr = Ns.lookup "square" vartype in let result = sqr 5 in print_string ("square of 5 = "^string_of_int result^"\n"); flush stdout;

Elnevezési rendszerek 1. rész

Nevek, azonosítók és címek Nevek erőforrások megosztása, entitások egyértelmű azonosítása, helyek megjelölése, stb. Nevek feloldása névszolgáltató rendszer Kapcsolódási pont Helyfüggetlen név Azonosító Emberközeli nevek

Névterek (1) Elnevezési gráfok csomópontok gyökér globális név helyi név

Névterek (2) Általános elnevezési gráf egyetlen gyökércsomóponttal.

Névfeloldás Név visszakeresése Csomópontról csomópontra Kiválasztási mechanizmus

Csatolás és felszerelés (1) Az elnevezési gráfban lévő szimbolikus hivatkozás elvének magyarázata.

Csatolás és felszerelés (2) Távoli névtér felszerelése adott hozzáférési protokoll segítségével.

Csatolás és felszerelés (3) A DEC globális névszolgáltatásának felépítése.

6. előadás Elnevezési rendszerek 2. rész

A névtér elosztása (1) A DNS-névtér felosztása (három rétegre), amely az interneten keresztül elérhető állományokat is tartalmaz.

A névtér elosztása (2) Egység Globális Szervezeti Kezelői Földrajzi átméretezhetőség Világméretű Vállalat szintű Osztály szintű Csomópontok száma Kevés Sok Rendkívül sok Visszakeresés elvárt válaszideje Másodpercek Milliszekundumok Azonnal Frissítési terjedés Ráérősen Azonnal Azonnal Másolatok száma Sok Nincs vagy kevés Nincs Kliensoldali gyorsítótárat használunk? Igen Igen Néha A globális, szervezeti és kezelői rétegbe szervezett nagyméretű névtérben található, csomópontokat implementáló névszerverek összehasonlítása.

A névfeloldás implementálása (1) Tegyük fel, hogy a névszervereket nem többszörözzük és nem használunk kliensoldali gyorsítótárat Iteratív névfeloldás kliens több névszerverrel is felveszi a kapcsolatot Rekurzív névfeloldás kliens csak a gyökér-névszerverrel tartja a kapcsolatot root:<nl, vu, cs, ftp, pub, globe, index.txt> (ftp://ftp.cs.vu.nl/pub/globe/index.txt)

A névfeloldás implementálása (2) Az iteratív névfeloldás elve.

A névfeloldás implementálása (3) A rekurzív névfeloldás elve.

A névfeloldás implementálása (4) Feloldandó Átadja a gyereknek Csomópontszerver Visszakeresendő Visszakapja és tárolja cs <ftp> #<ftp> -- -- #<ftp> Visszatér az igénylőhöz vu <cs,ftp> #<cs> <ftp> #<ftp> #<cs> #<cs, ftp> nl <vu,cs,ftp> #<vu> <cs,ftp> #<cs> #<cs,ftp> gyökér <nl,vu,cs,ftp> #<nl> <vu,cs,ftp> #<vu> #<vu,cs> #<vu,cs,ftp> #<vu> #<vu,cs> #<vu,cs,ftp> #<nl> #<nl,vu> #<nl,vu,cs> #<nl,vu,cs,ftp> Az <nl, vu, cs, ftp> rekurzív névfeloldása. A névszerverek gyorsítótárba helyezik a köztes eredményeket a későbbi visszakeresés gyorsítása érdekében.

A névfeloldás implementálása (5) A rekurzív és az ismétlő névfeloldás során szükséges kommunikáció összehasonlítása.

A DNS-névtér (1) Tartományi névszolgáltató rendszer (Domain Name System) Levelezőszerverek és gazdagépek nevének lekérdezése DNS névtér fa címke, teljes név tartomány, tartománynév erőforrásrekordok

A DNS-névtér (2) Rekord típusa Kapcsolódó entitás Leírás SOA Zóna A hozzá tartozó zónáról tartalmaz információt A Gazdagép A csomópont által képviselt gazdagép IP-címét tartalmazza MX Tartomány A csomópontnak címzett levelet kezelő szerverre való hivatkozás SRV Tartomány Adott szolgáltatást nyújtó szerverre való hivatkozás NS Zóna A kapcsolódó zónát implementáló névszerverre való hivatkozás CNAME Csomópont Szimbolikus hivatkozás a kapcsolódó csomópont elsődleges nevére PTR Gazdagép A gazdagép teljes nevét tartalmazza HINFO Gazdagép A csomópont által képviselt gazdagépről tartalmaz információt TXT Bármi Hasznosnak gondolt entitásspecifikus információt tartalmaz A DNS-névtér csomópontjainak tartalmát alkotó erőforrásrekordok legfontosabb típusai.

A DNS megvalósítása (1) A kezelői réteg nem a DNS része Minden zónát névszerver valósít meg A névszerverek többszörözöttek A zóna frissítését az elsődleges névszerver végzi Zónaátvitel Erőforrás-rekordok

A cs.vu.nl zóna DNSadatbázisának részlete A DNS megvalósítása (2)

A DNS megvalósítása (3) Név Rekord típusa Rekord értéke cs.vu.nl NS solo.cs.vu.nl solo.cs.vu.nl A 130.37.21.1 A vu.nl tartomány leírásának a cs.vu.nl altartományt meghatározó részlete.

OSI X.500 (1) Katalógusszolgáltatás Tulajdonság alapú keresés Katalógusbejegyzések Rekord tulajdonság-érték párok

X.500 (2) Tulajdonság Rövidítés Érték Country C NL Locality L Amsterdam Organization L Vrije Universiteit OrganizationalUnit OU Math. & Comp. Sc. CommonName CN Main server Mail_Servers -- 130.37.24.6, 192.31.231,192.31.231.66 FTP_Server -- 130.37.21.11 WWW_Server -- 130.37.21.11 X.500-as elnevezési konvenciókat használó egyszerű példa az X.500-as katalógusbejegyzéseire

Katalógus információs fa részlete X.500 (3)

The X.500 Name Space (3) Jellemző Érték Jellemző Érték Country NL Country NL Locality Amsterdam Locality Amsterdam Organization Vrije Universiteit Organization Vrije Universiteit OrganizationalUnit Math. & Comp. Sc. OrganizationalUnit Math. & Comp. Sc. CommonName Main server CommonName Main server Host_Name star Host_Name zephyr Host_Address 192.31.231.42 Host_Address 192.31.231.66 Két olyan katalógusbejegyzés, amelyeknél a Host_Name a relatív megkülönböztető név.

Mozgó entitások helyének meghatározása Cím megváltozik tartományon belül tartományon kívül Nevet nem szabad megváltoztatni gép új címe a DNS adatbázisba szimbolikus hivatkozás Nevek helyett azonosítók használata helymeghatározó szolgáltatás

Entitások elnevezése a helymeghatározással szemben a) Címek és nevek közötti közvetlen, egyszintű leképezés. b) Azonosítókat használó kétszintű leképezés.

Egyszerű megoldások Adatszórás és csoportcímzés kérés mindenkinek az érintett válaszol (cím) pl. ARP Továbbítómutatók az entitás hivatkozást hagy maga után pl. SSP lánc módszere

Továbbítómutatók (1) A (helyettes, váz) párokat használó továbbmutatók elve.

Továbbítómutatók (2) A továbbmutató átirányítása a rövidítő információ tárolásával.

Otthon alapú módszerek (1) Nagyméretű hálózaton Otthon entitás pillanatnyi helye pl. Mobile IP hazai ügynök (home agent) felügyeleti cím (care-of address)

Otthon alapú módszerek (2) A Mobile IP elve.

Hierarchikus módszerek (1) A helymeghatározó-szolgáltatás hierarchikus tartományokká szervezése, melyek mindegyikének van egy hozzá tartozó katalógus-csomópontja.

Hierarchikus módszerek (2) Különböző levéltartományokban elhelyezkedő, két címmel rendelkező entitásra vonatkozó információ tárolása.

Hierarchikus módszerek (3) Adott hely megkeresése a hierarchikusan szervezett helymeghatározó-szolgáltatással.

Hierarchikus módszerek (4) a) A kérés az első olyan csomópontig megy, amely ismeri E entitást. b) A levélcsomópontig vezető továbbítómutatók láncának létrehozása.

Mutatótárolás (1) Arra a katalógus-csomópontra hivatkozó mutató gyorsítótárba való helyezése, amely az entitás leggyakoribb tartózkodási helyét takarja.

Mutatótárolás (2) Érvénytelenítendő, gyorsítótárban lévő mutató, amely nem helyi címmel térne vissza, miközben helyi cím is elérhető lenne.

A méretezhetőség kérdései A helymeghatározó-szolgáltatás által fedett hálózat méretezhetőségi problémája, ha az alcsomópontokat egyenlően osztjuk el a hálózaton.

7. előadás Elnevezési rendszerek 3. rész Szinkronizálás 1. rész

Elnevezési rendszerek 3. rész A nem hivatkozott entitások eltávolítása

Motiváció A nem elérhető hivatkozást el kell távolítani => elosztott szemétgyűjtő

A nem hivatkozott objektumok problémája Példa az egymásra hivatkozó objektumokat ábrázoló gráfra.

Egyszerű hivatkozásszámlálás Objektumra mutató hivatkozások megszámolása Hivatkozás létrehozásakor növeljük Hivatkozás eltávolításakor csökkentjük Ha a számláló 0, az objektum törölhető

Probléma az egyszerű hivatkozásszámlálással (1) A hivatkozásszámláló helyes értékének beállítási problémája megbízhatatlan kommunikáció esetén.

Probléma az egyszerű hivatkozásszámlálással (2) a) A hivatkozás átmásolása egy másik folyamatnak és a hivatkozásszámláló elkésett növelése b) A megoldás

Fejlettebb hivatkozásszámlálás (1) Súlyozott hivatkozásszámlálás csak csökkentés Minden objektumnak előre meghatározott teljes súlya van. <-> részleges súly Új hivatkozáskor, másoláskor a súly felét átadjuk Törléskor: az objektum a teljes súlyát a törlendő részleges súlyával csökkenti Ha a teljes súly 0, az objektum törölhető

Fejlettebb hivatkozásszámlálás (2) a) A súlyok kezdeti hozzárendelése súlyozott hivatkozásnál. b) Súlyok hozzárendelése az új hivatkozás létrehozásakor.

Fejlettebb hivatkozásszámlálás (3) c) Súlyok hozzárendelése a hivatkozás másolásánál.

Fejlettebb hivatkozásszámlálás (4) Indirekció alkalmazása, amikor egy hivatkozás részleges súlya eléri az egyet.

Fejlettebb hivatkozásszámlálás (5) Távoli hivatkozás létrehozása és átmásolása nemzedéki hivatkozásszámlálás esetén.

Hivatkozáslista A váz nyilvántartja a rá hivatkozó helyetteseket (mutató) Létező elem hozzáadása, nem létező törlése idempotens művelet Létrehozáskor az új elküldi azonosítóját a váznak Másoláskor az új értesíti a vázat Pl. Java RMI

Elérhetetlen entitások azonosítása (1) Egyszerű nyomkövetés az elosztott rendszerben egyprocesszoros rendszerekben jelöl és takarít (mark and sweep) a jelölőszakasz a gyökérkészletből indulva megjelöli az entitásokat fehér minden entitás kezdetben szürke ami elérhető, de még nem dolgoztuk fel (a folyamat előrehaladása közben) fekete ami elérhető a gyökérből (a jelölő szakasz végére) a takarítószakasz törli a meg nem jelölteket

Elérhetetlen entitások azonosítása (2) Csoporton belüli nyomkövetés vázak megjelölése a jelölések kiterjesztése a vázakról a helyettesekre a jelölések kiterjesztése a helyettesekről a vázakra stabilizálás az előző két lépés megismétlésével szemét eltávolítása váz lehet: puha / kemény a helyettes lehet: puha / kemény / semmilyen

Csoporton belüli nyomkövetés (1) A vázak kezdeti jelölése.

Csoporton belüli nyomkövetés (2) A folyamatok helyi jelölésmásolásának befejezése utáni állapot.

Csoporton belüli nyomkövetés (3) Végső jelölések.

Szinkronizálás 1. rész

Az órák szinkronizálása Ha mindegyik gép a saját óráját használja, akkor az adott esemény után történt másik eseményhez az elsőnél korábbi idő társulhat.

Fizikai órák (1) A csillagidő és a szoláris idő összefüggése.

Fizikai órák (2) A TAI-másodperc a szolárissal ellentétben azonos hosszúságú. Szökőmásodperceket kell használnunk arra, hogy a TAI a Nappal szinkronban tartható legyen.

Óraszinkronizáló algoritmusok Az óra által mutatott idő és az UTC összefüggése az óra eltérése esetén.

Cristian algoritmusa A pontos idő lekérdezése az időszerverről.

A Berkeley-algoritmus a) Az idődémon lekérdezi a többi géptől az általuk nyilvántartott pontos időt b) A gépek válaszolnak c) Az idődémon mindegyiket utasítja, hogyan állítsa be az óráját

Átlagoló algoritmusok Decentralizált algoritmus Újraszinkronizálási időszakok minden gép kihirdeti a saját idejét elindít egy időmérőt a beérkezett hírdetéseket összegyűjti Többszörözött külső időforrások Több UTC-forrás vevő a rendszerben Ezek rendszeresen kihirdetik az idejüket

Szinkronizált órák használata Többször küldött üzenetek figyelmen kívül hagyására hogy ne kelljen a végtelenségig tárolni Logikai órák Elegendő, ha az összes gép órája ugyanazt az időt mutatja Az események sorrendje a fontos

Lamport időbélyege a). Három folyamat, mindegyik saját órával. Az órák különböző sebességgel futnak. b). Lamport algoritmusa az órák összehangolására.

Példa pontosan sorbarendezett csoportcímzés A többszörözött adatbázis frissítése és az inkonzisztens állapot kialakulása.

Időbélyeg vektor (1) C(a) és C(b) összehasonlítása semmit sem mond a és b kapcsolatáról Lamport időbélyegei nem foglalkoznak az oksági viszonyokkal Oksági viszony időbélyeg-vektorok alkalmazása Ha VT(a) < VT(b) => a b előzménye

Időbélyeg vektor (2) P i folyamat V i vektorának tulajdonságai: 1. V i [i] a P i folyamatban eddig bekövetkezett események száma 2. Ha V i [j] = k, akkor P i tudja, hogy a P j folyamatban eddig k esemény történt Okozatilag összefüggő üzenetek küldése r csak akkor kézbesíti az üzenetet, ha: 1. vt(r)[j] = V k [j] + 1 2. vt(r)[i] < / = V k [i] teljesül valamennyi i<>j

Szinkronizálás 2. rész

Globális állapot (1) a) Konzisztens metszet b) Inkonzisztens metszet

Globális állapot (2) a) A folyamat és csatornáinak szerkezete az elosztott pillanatfelvétel elkészítéséhez.

Globális állapot (3) b) Q folyamat a jelzést először kapja meg, ezért feljegyzi saját állapotát. c) Q valamennyi érkező üzenetét feljegyzi. d) Q megkapja a jelzést a bejövő csatornán és befejezi a csatorna állapotának rögzítését.

Szavazó algoritmusok - zsarnok (1) A zsarnok algoritmus A 4-es folyamat választást tart 5-ös és 6-os válaszol, megmondva 4-esnek, hogy álljon le a választással 5-ös és 6-os választást kezdeményez

Szavazó algoritmusok - zsarnok (2) d) 6-os szól 5-ösnek, hogy álljon le a választással e) 6-os megnyeri a választást és kihirdeti a győzelmét

Szavazó algoritmusok - gyűrű Kört használó szavazó algoritmus.

Kölcsönös kizárás: A központosított algoritmus a) Az 1-es folyamat engedélyt kér a koordinátortól, hogy beléphessen a kritikus területre. Az engedély megadva. b) A 2-es folyamat engedélyt kér ugyanerre a kritikus területre való belépéshez. A koordinátor nem válaszol. c) Amikor az 1-es folyamat elhagyja a kritikus területet, értesíti erről a koordinátort, aki ezután válaszol a 2-es folyamatnak.

Kölcsönös kizárás: Az elosztott algoritmus a) Két folyamat akar ugyanabban a pillanatban belépni ugyanarra a kritikus területre. b) A 0-ás folyamatnak alacsonyabb az időbélyege, így ő nyer. c) Amikor a 0-ás folyamat végzett, ő is elküldi az OK választ, így a 2-es folyamat már beléphet a kritikus területre.

Kölcsönös kizárás: A zsetongyűrű algoritmus a) A folyamatok rendezetlen csoportja a hálózaton. b) A szoftver által alkotott logikai gyűrű.

Kölcsönös kizárás: összehasonlítás Algoritmus Belépési / kilépési üzenetszám Belépés előtti késleltetés (üzenetidőben) Központosított 3 2 Elosztott 2 ( n 1 ) 2 ( n 1 ) Zsetongyűrű 1 to 0 to n 1 Problémák A koordinátor összeomlása Bármely folyamat összeomlása Elveszett zseton, a folyamat összeomlása A kölcsönös kizárást biztosító algoritmusok összehasonlítása.

Elosztott tranzakciók - tranzakciómodell (1) A mesterszalag frissítése hibatűrő folyamat.

Elosztott tranzakciók - tranzakciómodell (2) Primitív BEGIN_TRANSACTION END_TRANSACTION ABORT_TRANSACTION READ WRITE Leírása Tranzakció kezdetének jelzése Tranzakció végének jelzése A tranzakció félbeszakítása és az eredeti állapot visszaállítása Adat beolvasása állományból, táblából vagy bárhonnan Adat kiírása állományba, táblába vagy bárhová Néhány példa a tranzakció-primitívekre.

Elosztott tranzakciók - tranzakciómodell (3) BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi; END_TRANSACTION (a) BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi full => ABORT_TRANSACTION (b) a) 4 járat helyfoglalása egy tranzakcióként b) A tranzakció félbeszakad, amikor a negyedik járat nem elérhető

A tranzakciók tulajdonságai (ACID) 1. Oszthatatlan (elemi) - Atomic 2. Konzisztens - Consistent 3. Elkülönülő - Isolated 4. Maradandó - Durable

A tranzakciók osztályozása Az egységes tranzakciók korlátai Beágyazott tranzakciók Elosztott tranzakciók

Elosztott tranzakciók a) Beágyazott tranzakció b) Elosztott tranzakció

Implementáció saját munkaterület a) Egy három blokk hosszúságú állomány indexei és lemezblokkjai b) Az állomány 0-ás blokkjának módosítása a tranzakció során, és egy negyedik blokk hozzáfűzése után kialakult helyzet c) A tranzakció lezárása utáni helyzet

Implementáció munkatervnapló x = 0; y = 0; BEGIN_TRANSACTION; x = x + 1; y = y + 2 x = y * y; END_TRANSACTION; (a) Log [x = 0 / 1] (b) Log [x = 0 / 1] [y = 0/2] (c) Log [x = 0 / 1] [y = 0/2] [x = 1/4] (d) a) Egy tranzakció b) d) Az egyes utasítások végrehajtása előtt kiírt naplóbejegyzés

9. előadás Szinkronizálás 3. rész Konzisztencia és többszörözés 1. rész

Szinkronizálás 3. rész Konkurenciakontroll

A tranzakciók tulajdonságai (ACID) 1. Oszthatatlan (elemi) - Atomic 2. Konzisztens - Consistent 3. Elkülönülő Isolated [sorosítható serializable] 4. Maradandó - Durable

Konkurenciakontroll (1) A tranzakciókat megvalósító kezelők általános felépítése.

Konkurenciakontroll (2) Az elosztott tranzakciókat feldolgozó kezelők általános felépítése.

Sorosíthatóság (1) BEGIN_TRANSACTION x = 0; x = x + 1; END_TRANSACTION (a) BEGIN_TRANSACTION x = 0; x = x + 2; END_TRANSACTION (b) BEGIN_TRANSACTION x = 0; x = x + 3; END_TRANSACTION (c) 1. ütemterv x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3 Helyes 2. ütemterv x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3; Helyes 3. ütemterv x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3; Hibás (d) a) c) Három tranzakció: T 1, T 2, and T 3 d) Lehetséges ütemtervek

Sorosíthatóság (2) write(t i, x); read(t i, x); write(t i, x) ütköző műveletek szinkronizálás kölcsönös kizárás időbélyegek megközelítés pesszimista optimista

Kétfázisú zárolás (1) Kétfázisú zárolás

Kétfázisú zárolás (2) Szigorú kétfázisú zárolás

Pesszimista időbélyeg-rendezés (1) T tranzakció ts(t) kezdeti időbélyeg x adatelem ts RD (x), ts WR (x) utolsó olvasást / írást végző tranzakció időbélyege read(t, x), ahol ts(t) < ts WR (x) => T megszakad read(t, x), ahol ts(t) > ts WR (x) => OK [ts RD (x) <- max{ts(t), ts RD (x)}] write(t, x), ahol ts(t) < ts RD (x) => T megszakad write(t, x), ahol ts(t) > ts RD (x) => OK [ts WR (x) <- max{ts(t), ts WR (x)}]

Pesszimista időbélyeg-rendezés (2) Az időbélyeget használó konkurenciakontrol.

Optimista időbélyeg-rendezés Saját munkaterület Ha az ütközések ritkák Tranzakció közben nincs vizsgálat, csak nyilvántartás (írások, olvasások) Tranzakció lezárásakor az összes többi tranzakció vizsgálata megszakad, vagy lezárul Időbélyeg használata

Konzisztencia és többszörözés 1. rész

A többszörözés okai Megbízhatóság növekedése Teljesítmény növekedése Többszörözés ára konzisztencia Átméretezési technika frissítések gyakorisága konzisztencia Gyorsítótár (cache)

Többszörözhetőségi átlátszóság megvalósítása kliens-oldalon A távoli objektumtöbbszörözés átlátszóvá tételének egyik lehetséges módja a kliensoldali megoldás használata.

Objektumtöbbszörözés (1) Két különböző kliens által közösen használt elosztott távoli objektum szerkezete.

Objektumtöbbszörözés (2) a) A konkurens hívások kezelésére képes távoli objektum. b) A konkurens hívások kezelésének felelősségét az objektumadapterre átruházó távoli objektum.

Példa pontosan sorbarendezett csoportcímzés A többszörözött adatbázis frissítése és az inkonzisztens állapot kialakulása.

Objektumtöbbszörözés (3) a) Többszörözést támogató objektumok az elosztott rendszerben. b) Az elosztott rendszer felel a többszörözés kezeléséért.

Adatközpontú konzisztenciamodellek A fizikailag több folyamat között elosztott és többszörözött logikai adattár általános felépítése.

Szigorú konzisztencia Azonos adatelemen műveletet végző két folyamat viselkedése: a) szigorúan konzisztens adattár b) nem szigorúan konzisztens adattár

Lineáris és soros konzisztencia (1) a) A sorosan konzisztens adattár. b) A sorosan konzisztens kritériumot nem teljesítő adattár.

Lineáris és soros konzisztencia (2) Process P1 Process P2 Process P3 x = 1; print ( y, z); y = 1; print (x, z); z = 1; print (x, y); Három egyidejűleg végrehajtott folyamat.

Lineáris és soros konzisztencia (3) x = 1; print ((y, z); y = 1; print (x, z); z = 1; print (x, y); x = 1; y = 1; print (x,z); print(y, z); z = 1; print (x, y); y = 1; z = 1; print (x, y); print (x, z); x = 1; print (y, z); y = 1; x = 1; z = 1; print (x, z); print (y, z); print (x, y); Prints: 001011 Prints: 101011 Prints: 010111 Prints: 111111 Signature: 001011 (a) Signature: 101011 (b) Signature: 110101 (c) Signature: 111111 (d) Ez előző ábrán bemutatott folyamatok 4 lehetséges végrehajtási sorrendje.

Okozati konzisztencia (1) Szükséges feltétel: A potenciálisan okozatilag összefüggő írási műveleteket valamennyi folyamatnak ugyanabban a sorrendben kell látnia.

Okozati konzisztencia (2) Ez a sorrend megengedett az okozatilag konzisztens adattárban, de tiltott a sorosan vagy a szigorúan konzisztens rendszerben.

Okozati konzisztencia (3) a) Az okozati konzisztenciát megsértő műveleti sorrend. b) Az események konzisztens adattárban érvényes lehetséges sorrendje.

FIFO-konzisztencia (1) Szükséges feltétel: Egy adott folyamat által végrehajtott valamennyi írási művelet eredményét az összes többi folyamatnak az írást végző folyamat által meghatározott sorrendben kell látnia.

FIFO-konzisztencia (2) Az események lehetséges sorrendje a FIFO-konzisztenciamodell szerint.

FIFO-konzisztencia (3) x = 1; print (y, z); y = 1; print(x, z); z = 1; print (x, y); x = 1; y = 1; print(x, z); print ( y, z); z = 1; print (x, y); y = 1; print (x, z); z = 1; print (x, y); x = 1; print (y, z); Prints: 00 Prints: 10 Prints: 01 (a) (b) (c) A korábbi ábrán látható 3 folyamat utasításainak különböző végrehajtási sorrendje.

FIFO-konzisztencia (4) Process P1 x = 1; if (y == 0) kill (P2); Process P2 y = 1; if (x == 0) kill (P1); Két konkurens folyamat.

Gyenge konzisztencia (1) Tulajdonságok: Az adattárhoz tartozó szinkronizáló változók elérése sorosan konzisztens. A szinkronizáló változóval végzett újabb művelet mindaddig nem engedélyezett, amíg az összes korábbi írási művelet mindenütt be nem fejeződött. Az adatelemeken végzett egyetlen írási vagy olvasási művelet sem engedélyezett, amíg az összes szinkronizáló változó értelmezett művelet mindenütt be nem fejeződött.

Gyenge konzisztencia (2) int a, b, c, d, e, x, y; /* variables */ int *p, *q; /* pointers */ int f( int *p, int *q); /* function prototype */ a = x * x; /* a stored in register */ b = y * y; /* b as well */ c = a*a*a + b*b + a * b; /* used later */ d = a * a * c; /* used later */ p = &a; /* p gets address of a */ q = &b /* q gets address of b */ e = f(p, q) /* function call */ A program fragment in which some variables may be kept in registers.

Gyenge konzisztencia (3) a) Gyenge konzisztencia esetén megengedett eseménysorrend. b) Gyenge konzisztencia esetén tiltott eseménysorrend.

Feloldó konzisztencia (1) Az eseményeknek a feloldó konzisztenciamodellben megengedett lehetséges sorrendje.

Feloldó konzisztencia (2) Szabályok: Megosztott adaton bármely olvasási/írási művelet előtt minden korábbi igénylésnek be kell fejeződnie. Feloldási művelet előtt a folyamatnak az összes korábbi írási/olvasási műveletét be kell fejeznie. A szinkronizáló változók elérése FIFOkonzisztens.

Belépő konzisztencia (1) Feltételek: Szinkronizáló változó adott folyamat általi igénylése addig nem történhet, amíg az általa védett megosztott adat valamennyi frissítőművelete be nem fejeződött az adott folyamat számára. A folyamat csak akkor szerezheti meg a kizárólagos ellenőrzést a szinkronizáló változó felett, ha egyetlen más folyamat sem birtokolja. Miután egy folyamat megszerezte a kizárólagos ellenőrzést egy szinkronizáló változó felett, bármely más folyamat nem kizárólagos ellenőrzési kérelme addig nem teljesíthető, amíg a kizárólagos jogot az azt birtokló folyamat fel nem adja.

Belépő konzisztencia (2) A belépő konzisztenciában érvényes eseménysorrend.

10. előadás Konzisztencia és többszörözés 2. rész

Adatközpontú konziszteniamodellek összehasonlítása Konzisztencia Szigorú Lineáris Soros Okozati FIFO Leírás Valamennyi megosztott hozzáférés abszolút sorrendje. A megosztott hozzáféréseket valamennyi folyamat pontosan ugyanabban a sorrendben látja. A hozzáférések sorrendjét (nem egyedi) globális időbélyeg határozza meg. A megosztott hozzáféréseket valamennyi folyamat pontosan ugyanabban a sorrendben látja. A hozzáférések nincsenek idő szerint sorba rendezve. Az okozatilag összefüggő megosztott hozzáféréseket valamennyi folyamat pontosan ugyanabban a sorrendben látja. Valamennyi folyamat a többi írási műveleteit pontosan a kiadás sorrendjében fogja látni. A különböző folyamatok által végrehajtott írási műveletek sorrendje bármi lehet. (a) Konzisztencia Gyenge Feloldó Belépő Leírás A megosztott adat konzisztens voltára csak a szinkronizálás végrehajtása után lehet számítani. A megosztott adat konzisztensé válik a kritikus terület elhagyásakor. A kritikus területhez tartozó megosztott adat konzisztensé válik a kritikus területre való belépéskor. a) Szinkronizáló műveleteket nem igénylő konzisztenciamodellek. b) Szinkronizáló műveleteken alapuló konzisztenciamodellek. (b)

Gyenge konzisztencia (ismétlés) a) Gyenge konzisztencia esetén megengedett eseménysorrend. b) Gyenge konzisztencia esetén tiltott eseménysorrend.

Feloldó konzisztencia (ismétlés) Az eseményeknek a feloldó konzisztenciamodellben megengedett lehetséges sorrendje.

Belépő konzisztencia (ismétlés) A belépő konzisztenciában érvényes eseménysorrend.

Kliensközpontú konzisztenciamodellek Adattárak különleges csoportja: nincs párhuzamos módosítás a legtöbb művelet csak olvassa az adattárat Fokozatos konzisztencia (1) Frissítés hiányában valamennyi másolat lassan az összes többivel egyformává válik (a frissítéseket előbb-utóbb valamennyi másolathoz elküldjük)

Fokozatos konzisztencia (2) Az elosztott adatbázis különböző másolatait elérő mozgó felhasználó elve.

Fokozatos konzisztencia (3) Probléma: a felhasználó nem mindig ugyanahhoz a másolathoz csatlakozik Megoldás: kliensközpontú konzisztencia egy adott felhasználó számára nyújt biztosítékot arra nézve, hogy az általa látott adattár konzisztens lesz

Monoton olvasás (1) Ha a folyamat beolvassa x adatelemet, akkor x minden további olvasásának ugyanazt vagy frissebb értéket kell szolgáltatnia.

Monoton olvasás (2) Adott P folyamat által végzett olvasási műveletek az adattár két különböző helyi másolatán futnak. a) Monoton olvasási konzisztens adattár b) Monoton olvasás követelményét ki nem elégítő adattár

Monoton írás (1) Adott folyamat által végrehajtott x adatelemet módosító írási műveletnek be kell fejeződnie, mielőtt ugyanez a folyamat újabb írási műveletet hajtana végre ugyanezen az adatelemen.