1. elıadás Az elıadás Elosztott ek 1. Bevezeté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 definíciója Köztesrétegként felépülı elosztott Az elosztott az önálló számítógépek olyan összessége, amely kezelıi számára egyetlen koherens nek tőnik. 1.1 Célok Felhasználók és erıforrások összekapcsolása Átlátszóság Nyitottsá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 Átméretezhetıség 1
Átlátszóság az elosztott ekben Á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 Decentralizált algoritmusok 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 Egyetlen gépnek sincs teljes információja a á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) Az átméretezés technikája (2) 1.4 1.5 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 Példa a DNS-névtér zónákra osztása 2
Szoftverkoncepciók Egyprocesszoros operációs ek Rendszer Leírás Fı cél DOS (Distributed Operating Systems) NOS (Network Operating Systems) Köztesréteg Többprocesszoros és homogén multiszámítógépek szorosan csatolt operációs e Heterogén multiszámítógépek (LAN és WAN) gyengén csatolt operációs e A NOS fölötti, általános célú szolgáltatásokat implementáló újabb réteg Hardvererıforrások 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 Az operációs és az alkalmazások elválasztása a mikrokernel használatával Többprocesszoros operációs ek (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 ek (2) monitor Counter { private: int count = 0; int blocked_procs = 0; condition unblocked; public: int value () { return count; void incr () { if (blocked_procs == 0) count = count + 1; else signal (unblocked); void decr() { if (count ==0) { Egyidejő elérés ellen védett egész számot megvalósitó monitor, amely képes blokkolni a hívó folyamatokat blocked_procs = blocked_procs + 1; wait (unblocked); blocked_procs = blocked_procs 1; else count = count 1; ek (1) ek (2) A blokkolás és a pufferelés lehetséges esetei üzenetátadáskor 3
ek (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 Nincs Nem feltétlenül Küldı blokkolása az üzenet megérkezéséig Nincs Kötelezıen Küldı blokkolása az üzenet kézbesítéséig Nincs 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ú ek 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 ek (1) Hálózati operációs ek (2) A hálózati operációs általános felépítése Egy szerver és két kliens a hálózati operációs ben. Hálózati operációs ek (3) A köztesréteg helyének kiválasztása A különbözı kliensek a szervereket különbözı helyre Szerelhetik fel. A köztesrétegként megvalósított elosztott általános felépítése. 4
A köztesréteg és a nyitottság A nyitott köztesréteg alapú elosztott ben mind a köztesrétegek által használt protokollnak, mind pedig az alkalmazásokhoz kapcsolható interfészüknek meg kell egyeznie. A ek összehasonlítása Szempont Átlátszóság foka Azonos operációs minden csomóponton? Operációs másolatok száma Kommunikáció alapja Erıforráskezelés Elosztott operációs Nagyon magas Hálózati operációs Köztesréteg alapú elosztott 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 Többprocesszoros Multiszámítógépes Csomópontonként Csomópontonként Átméretezhetıség Nincs Közepes Igen Változó Nyitottság Zárt Zárt Nyitott Nyitott 5