Feladatok (task) együttműködése

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

Dr. Schuster György február 21. Real-time operációs rendszerek RTOS

Rendszerintegráció és -felügyelet

Adatok ábrázolása, adattípusok. Összefoglalás

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

Web fejlesztés II. Illés Zoltán ELTE Informatikai Kar I n f o r m a t i k a

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

... ahol l 0. Minden tranzakcióhoz létezik. = f(σ i. A sorozat nem bővíthető. Ha véges, akkor az utolsó konfigurációnak nincs rákövetkezője.


Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

HÁLÓZATSEMLEGESSÉG - EGYSÉGES INTERNET SZOLGÁLTATÁS-LEÍRÓ TÁBLÁZAT

Fábián Zoltán Hálózatok elmélet

Digitális technika (VIMIAA01) Laboratórium 1

Shared IMAP beállítása magyar nyelvű webmailes felületen

Többfelhasználós adatbázis környezetek, tranzakciók, internetes megoldások

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

MOBIL CROWDSENSING ÉS BIG DATA TÁVKÖZLÉSI ÉS MÉDIAINFORMATIKAI TANSZÉK BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM

Számítógép-hálózatok Egyéni Feladat

Osztott rendszerek (Distributed

UNIX operációs rendszer rövid története és jellemzői

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

Kivétel kezelés. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

UNIX folyamatok kommunikációja

OmniTouch 8400 Instant Communications Suite 4980 Softphone

Vodafone ReadyPay. Használati útmutató

Vonat által vezérelt térvilágítás lehetőségei és megtakarítási potenciálja

ONLINE VIDEÓ MÉRÉSE. a tévével együtt. GfK 2016 Online videó mérése tévével együtt Média Hungary Bacher János 1

Programozás alapjai Bevezetés

A Budavár Tours ajándékutalvány megvételének szabályzata

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

Webszolgáltatások kommunikációs overhead-jének becslése

Mobiltelefónia & biztonság

Programozás I gyakorlat

Korszerű geodéziai adatfeldolgozás Kulcsár Attila

E-ADÓ RENSZER HASZNÁLATI ÚTMUTATÓ

BEVEZETÉS A PSZICHOLÓGIÁBA

A Justh Zsigmond Városi Könyvtár panaszkezelési szabályzata

Az első lépések. A Start menüből válasszuk ki a Minden program parancsot. A megjelenő listában kattintsunk rá az indítandó program nevére.

Hálózat és rendszermenedzsmen ZABBIX

Egyre nagyobb profitot generálnak a mobiltelefonnal végzett vásárlások, és egyre többet hezitálunk vásárlás előtt

A Felhasználónév és Jelszó mezőkbe írjuk be az adatainkat, majd kattintsunk a Bejelentkezés gombra, vagy üssük le az Enter billentyűt.

FTP-kapcsolat létrehozása FlashFXP alatt

SZAKÁLL SÁNDOR, ÁsVÁNY- És kőzettan ALAPJAI

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

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar január 4.

Programozás. A programkészítés lépései. Program = egy feladat megoldására szolgáló, a számítógép számára értelmezhető utasítássorozat.

A szerzõrõl... xi Bevezetés... xiii

Belépési útmutató a MIAG weboldalra

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

Mikrokontrollerek. Tihanyi Attila május 8

A SZOFTVERTECHNOLÓGIA ALAPJAI

Book Template Title. Author Last Name, Author First Name

Operációs rendszerek. A Windows NT felépítése

Autóipari beágyazott rendszerek. Fedélzeti elektromos rendszer

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

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

Vezetékes gyorsjelentés március

3. HÉT: CRM RENDSZEREK A GYAKORLATBAN FUNKCIONALITÁSOK

Magyar. Biztonsági információk. Magyar

Osztály szint tagok. Krizsán Zoltán 1 [2012. március 12.] Objektumorientált programozás C# alapokon tananyag

Árverés kezelés ECP WEBSHOP BEÉPÜLŐ MODUL ÁRVERÉS KEZELŐ KIEGÉSZÍTÉS. v ECP WEBSHOP V1.8 WEBÁRUHÁZ MODULHOZ

Számítógépes vírusok

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

webalkalmazások fejlesztése elosztott alapon

Az informatika oktatás téveszméi

Lemezkezelés, RAID, partícionálás, formázás, defragmentálás.

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

A közbeszerzési eljárások egyszerősítése - a lengyel tapasztalatok

Kissné dr. Akli Mária és Ferencz Zsolt

Egységes Mezőgazdasági Ügyfél-nyilvántartási Rendszer. Kérjük, a kérelmet olvashatóan, nyomtatott nagy betűkkel töltse ki! I. rész: Azonosító adatok

Gépjármű finanszírozással kapcsolatos szabályozási stratégia elemei

Számítógép hálózatok gyakorlat

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Tanúsítvány és hozzá tartozó kulcsok feltöltése Oberthur kártyára és Oberthur SIM termékre

Sz ekelyhidi L aszl o Val osz ın us egsz am ıt as es matematikai statisztika *************** Budapest, 1998

Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M)

TANTÁRGYI ÚTMUTATÓ. Pénzügyi-számviteli informatika 2. tanulmányokhoz

Adattípusok. Szám: pozitív egész, egész, valós, dátum + idő,... Szöveg, Formázott szöveg Kép Hang Mozgókép+Hang

xdsl Optika Kábelnet Mért érték (2012. II. félév): SL24: 79,12% SL72: 98,78%

ARM Cortex magú mikrovezérlők

Dr. Illés Zoltán

IKT FEJLESZTŐ MŰHELY KONTAKTUS Dél-dunántúli Regionális Közoktatási Hálózat Koordinációs Központ

FALON KÍVÜLI ÉS SÜLLYESZTETT KISELOSZTÓK dinbox. verzió 2.2 TERMÉKKATALÓGUS MŰSZAKI RÉSZ

Kiszombor Nagyközség Polgármesterétől 6775 Kiszombor, Nagyszentmiklósi u. 8. Tel/Fax: 62/

Gy.I.K. K3565, K3520, K3715 USB stickekhez

Bank: minden tranzakciónál. Egyetemek: regisztráci. Emberi erőforr. források: alkalmazottak adatainak rögzr

Junior Szoftvertesztelő mérnök

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

Növelhető-e a hazai szélerőmű kapacitás energiatárolás alkalmazása esetén?

Tartalom. Szállítási réteg

Fókuszban a formahibák. Konzultációs nap Minőségfejlesztési Iroda szeptember 18. Fekete Krisztina

Operációs rendszerek 1. kidolgozott tételsor Verzió: 1.0 (Build: )

DSP architektúrák Texas Instruments DSP architektúrák

My Hipernet Home üzembehelyezési útmutató

.NET Microsoft.Net Framework

UNIX: folyamatok kommunikációja

Útmutató az EPER-ben már regisztrált szervezetek elektori jelentkezéséhez

Introduction. Szolgáltatásorientált rendszerintegráció Service-Oriented System Integration. Dr. Balázs Simon BME, IIT

Átírás:

Operációs rendszerek (vimia219) Feladatok (task) együttműködése dr. Kovácsházy Tamás 6. anyagrész Üzenet alapú kommunikáció Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Visszatekintés, kommunikációs módszerek Közös memórián keresztül (RAM v. PRAM modell): o Egy folyamaton belül futó szálak esetén (közös memória). Üzenetekkel: o Nincs közös memória. Folyamatok kommunikálnak egy operációs rendszeren belül. Elosztott rendszer. o Vagy pl. mikrokernel alapú az operációs rendszer. Folyamatok közötti kommunikáció (Inter Process Communication, IPC) BME-MIT 2013, Minden jog fenntartva 2. lap

Üzenetek Nem azonos a számítógép hálózatokban küldött üzenetekkel, annál általánosabb fogalom. Üzenet továbbítás (Message passing) Lehet például: o Rendszerhívás. o TCP/IP kapcsolat (TCP) vagy üzenet (UDP) gépen belül (localhost) vagy akár gépek között. Többnyire az alkalmazás kódjában OS API függvény/metódus hívásként jelenik meg. Az operációs rendszer valósítja meg szolgáltatásaival. BME-MIT 2013, Minden jog fenntartva 3. lap

Kitérő... Szemafor, Kritikus szakasz objektum, Mutex is OSben kerül megvalósításra. o Egy folyamaton belül futó szálak kommunikációja közös memórián keresztül (gyors, alacsony erőforrás igény). o Kölcsönös kizárás és szinkronizáció üzenetekkel (rendszerhívással, ritka, főleg a várakozás). o Van overhead-je: Próbálkozások: Lockless programming, transactional memory etc. Nincs jó megoldás, csak kevésbé rossz (Churchill mondása alkalmazható). Alkalmazás és SW architektúra függő az optimum. BME-MIT 2013, Minden jog fenntartva 4. lap

Üzenettovábbítás tulajdonságai A közös memóriához képest: o Nagyobb késleltetés. o Kisebb sávszélesség. o A csatorna nem megbízható elosztott rendszerek esetén. Közös memóriát 1 valószínűséggel megbízhatónak tartjuk. RAM, PRAM modell. Az operációs rendszeren belül történő üzenetküldésre ez már nem igaz. Túlterhelés! A számítógép hálózaton történő üzenetküldés definíció szerűen nem megbízható (véletlen és szándékos hibák). BME-MIT 2013, Minden jog fenntartva 5. lap

Számítógép hálózatok... Üzenetek címzése Egy adott folyamat (unicast cím). Minden folyamat (broadcast cím). o Pl. teljesítmény menedzsment események. Standby, Hibernate, PowerOff, stb. Folyamatok csoportja (multicast cím). Egy folyamat (anycast cím). o Pl. Egy alkalmas folyamat, ami a kérést ki tudja szolgálni. BME-MIT 2013, Minden jog fenntartva 6. lap

Direkt kommunikáció Szimmetrikus üzenet alapú kommunikáció. o send(p, message) o receive(q, message) o P, Q folyamat azonosítók. A vevő megadja az adót Q-t meg kell adni a receive() hívásakor! o A message egy adatstruktúra, ami az üzenetet tartalmazza. Aszimmetrikus üzenet alapú kommunikáció. o send(p, message) o receive(id, message) o P folyamat azonosító, id a küldő azonosítója. A vevő bárkitől fogad üzenetet! Az id is visszatérési érték, bárki küldhet o A message egy adatstruktúra, ami az üzenetet tartalmazza. A kódban direkt hivatkozás van a másik félre. o Nem szerencsés... BME-MIT 2013, Minden jog fenntartva 7. lap

Indirekt kommunikáció Egy köztes szereplőn keresztül történik a kommunikáció o Proxy tervezési minta. Ez a szereplő pl. lehet: Postaláda (Mailbox), Üzenetsor (MesssageQueue), Port, stb. Interface: létrehozás és megszüntetés + o send(a, message) o receive(a, message) Az A a postaláda azonosítója o Elosztott rendszerben ennek része a node (számítógép) azonosító is. P A (Postaláda) Q BME-MIT 2013, Minden jog fenntartva 8. lap

További tulajdonságok Minimum egy küldő folyamat. Minimum egy vevő folyamat: o 1. Vétel után törlődik (egyszer olvasható). o 2. Vétel után megmarad (RAM-szerű működés). Osztott memória üzeneteken keresztül (Pl. SystemV Shared Memory). Lehet tulajdonosa: o Operációs rendszer. Az őt használó folyamatoktól függetlenül létezhet. o Folyamat (annak a memória területén van). A folyamattal együtt létezhet csak. BME-MIT 2013, Minden jog fenntartva 9. lap

Blokkolás Nem blokkoló hívás = aszinkron o Az eredmények és mellékhatások a visszatéréskor még nem jelentkeznek (nem történtek meg). o Csak a végrehajtás kezdődik el a hívásra. o A visszatérési érték kezelése, és az eredmények és mellékhatások kezelése csak más értesítés után lehetséges: Pl. esemény, jelzés (signal), callback függvény, stb. Blokkoló hívás = szinkron o Az eredmény és mellékhatások a visszatérés után jelentkeznek (megtörtént). o Visszatérési érték kezelés egyszerű... BME-MIT 2013, Minden jog fenntartva 10. lap

Blokkolás a küldő oldalon Blokkoló send(): o A send() hívás nem tér vissza, amíg az üzenetet nem vették (direkt) vagy az nem került be a postaládába. o Mi történik kommunikációs hiba esetén? Pl. Egy hibakezelő callback függvény kerül meghívásra vagy időtúllépés történik és a send() hibával tér vissza. Nem blokkoló send(): o Az üzenet lokális elküldésének indítása után azonnal visszatér. o Vagy nincs hibakezelés, vagy callback függvény útján értesül róla a küldő folyamat (pl. egy hibakezelő szálban). BME-MIT 2013, Minden jog fenntartva 11. lap

Blokkolás a fogadó oldalon Blokkoló receive(): o A receive() nem tér vissza addig, amíg nem érkezik üzenet. o Klasszikus példa: TCP/UDP socket listen(). Nem blokkoló receive(): o A receive() azonnal visszatér: Ha van üzenet akkor azzal. Ha nincs üzenet, akkor azt jelzi (pl. üres üzenet, null referencia, stb.). Ha nincs üzenet, akkor a végtelen ciklusban az üzenetre várás busy waiting-et eredményez (zabálja a CPU időt). BME-MIT 2013, Minden jog fenntartva 12. lap

Implementációk 1. Mailbox: o Indirekt kommunkáció. o Egy vagy több üzenet tárolása, de többnyire véges számú. o Operációs rendszer szintű támogatás. MessageQueue: o Indirekt kommunkáció. o Többnyire végtelen számú üzenet tárolására alkalmas. Természetesen a rendszer erőforrásai korlátozzák. o Üzenet alapú middleware-ek MSMQ, IBM's WebSphere MQ, Oracle Advanced Queuing (AQ), JBoss Messaging, Apache Qpid. Beágyazott OS-ek is jellegzetesen a Mailbox/MessageQueue megoldásokat erőltetik BME-MIT 2013, Minden jog fenntartva 13. lap

Implementációk 2. TCP/IP TCP vagy UDP port: o Direkt kommunikáció. o Socket interface. o Gépen belül a localhost-on (127.0.0.1/8). o Alacsony szintű, számos más middleware alapul rajta: Távoli eljárás hívás (Remote Procedure Call, RPC). Távoli metódus hívás: CORBA (Common Request Broker Architecture), JAVA RMI (Remote Method Invocation), DCOM/.NET Remoting, SOAP (Simple Object Access Protocol). Üzenet alapú middleware-ek (korábban volt szó). BME-MIT 2013, Minden jog fenntartva 14. lap

Implementációk 3. Különböző folyamok és csővezetékek: o Többnyire direkt. o Pl. UNIX pipe, Windows Named Pipe, RTLinux FIFO System V Shared Memory (UNIX, Linux) o Direkt. o Memóriaszerű interfész. o Később lesz szó róla a UNIX-os részben. o A megosztott memóriában tárolt (kommunikációra használt) adatstruktúrákra a kölcsönös kizárást a korábban tanult módokon biztosítani kell. BME-MIT 2013, Minden jog fenntartva 15. lap

Távoli eljárás hívás Részletesen megbeszéljük, mivel: o Egyrészt alapja a napjainkban használt távoli metódus hívást alkalmazó megoldásoknak. o Nagyon tanulságos... Távoli eljárás hívás (Remote Procedure Call, RPC): o Egy másik folyamat kód memóriaterületén elhelyezkedő függvény meghívása a hívó folyamatból üzenetek felhasználásával. o A hívó fél blokkolva vár a távoli hívás lefutására. o A meghívott függvény az őt tartalmazó folyamat egyik vezérlési szálában fut le. BME-MIT 2013, Minden jog fenntartva 16. lap

Távoli eljárás hívás architektúrája P folyamat (kliens) Q folyamat (szerver) Verem (stack) Verem (stack) Szabad memória (free memory) Halom (Heap) Adat Kód P oldali operációs rendszer P oldali HW Számítógép hálózat Q oldali HW Q oldali operációs rendszer Szabad memória (free memory) Halom (Heap) Adat Kód Eljárás Hívó kódrészlet Hívott kódrészlet BME-MIT 2013, Minden jog fenntartva 17. lap

Az RPC a programozó számára Hívása lényegében azonos egy lokális függvény hívásával. o Az lényegében egy programkönyvtárban található függvény. o Nem kell tudnia, és figyelembe vennie milyen platformon fut le. A ténylegesen végrehajtott függvény megírása sem különbözik egy lokálisan végrehajtható függvény megírásától. o Kapunk egy függvény deklarációt (interface-t), és azt meg kell valósítanunk. o Nem kell törődnünk azzal, hogy milyen platformról érkezik a kérés. BME-MIT 2013, Minden jog fenntartva 18. lap

RPC működése 1. Típusos a hívás és a visszatérési érték is. o Strukturált adatküldés. o Platform függetlenség megvalósítása az operációs rendszer és a környezet (fordító vagy interpreter) feladata. Szabványos formátumra konvertál minden fél, pl. Binary Encoding Rules (BER), XML, stb. A kliens program egy teljesen normális lokális függvényt hív meg. o Ez egy automatikusan generált csonk (stub) valójában. o Feladata a kommunikáció részleteinek elrejtése a hívó fél elől. o A szerver megtalálásáról nem beszélünk most, tételezzük fel, hogy a hívó fél tudja. BME-MIT 2013, Minden jog fenntartva 19. lap

RPC működése 2. A kliens oldali csonk feladata a hívás során. o Feladata a hívási paraméterek összecsomagolása platform független formára és elküldése a végrehajtó folyamatnak. o Ehhez felhasználja a lokális operációs rendszer és a hálózat szolgáltatásait. A szerver oldalon az RPC-t használó szolgáltatás megkapja a szabványos formátumban megérkező hívást. o Platform független formáról lokális formára hozás. o A lokális függvény hívása. o Visszatéréskor a visszatérési érték platform független formára hozása. o A visszatérési érték küldése a kliensnek. BME-MIT 2013, Minden jog fenntartva 20. lap

RPC működése 3. A kliens oldali csonk feladata a hívás visszatérése során. o Feladata a szervertől megkapott visszatérési érték konvertálása platform független formáról lokális formára. o Visszatérés a lokális csonkból a lokális formátumra hozott visszatérési értékkel. A kliens szál az RPC hívás során várakozik. o Eseményre várakozik a hívás során. A szerver szál vár a beérkező hívásokra, és amikor van kiszolgálandó hívás, akkor fut. o Eseményre várakozik a hívás beérkezéséig. BME-MIT 2013, Minden jog fenntartva 21. lap