UNIX: folyamatok kommunikációja

Hasonló dokumentumok
UNIX folyamatok kommunikációja

UNIX folyamatok kommunikációja

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

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

UNIX: fájlrendszerek

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

(kernel3d vizualizáció: kernel245_graph.mpg)

2. fejezet Hálózati szoftver

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

Operációs rendszerek. 6. gyakorlat: Processzusok közti kommunikáció (osztott memória, üzenetsor)

Operációs rendszerek. Az NT folyamatok kezelése

Folyamatok. 6. előadás

Kommunikációs middleware megoldások

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

Tartalomjegyzék. Előszó a második kiadáshoz... xv. 1. Bevezetés Betekintés a Linux-kernelbe... 11

Hálózati architektúrák laborgyakorlat

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

UNIX fájlrendszerek alapismeretei

UNIX / Linux rendszeradminisztráció III. előadás

... 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.

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

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

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

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

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

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.

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

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

Új generációs informatikai és kommunikációs megoldások ANMS. távközlési hálózatok informatikai hálózatok kutatás és fejlesztés gazdaságos üzemeltetés

Osztott rendszerek (Distributed

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

Dr. Varga Imre. Socket-programozás. C nyelven

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

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

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

Számítógépes Hálózatok GY 6.hét

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

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ő)

Intelligens biztonsági megoldások. Távfelügyelet

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

Az Internet. avagy a hálózatok hálózata

Verzió: PROCONTROL ELECTRONICS LTD

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

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

Előadás_#04. Előadás_04-1 -

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

Figyelem : a 3220 központosított beállítási struktúrával rendelkezik ami lehetővé teszi az összes profil egy helyről történő elérését.

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Elosztott rendszerek

Operációs rendszerek MINB240

Satel ETHM-1. Ethernet modul.

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

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

Utolsó módosítás:

Információ és kommunikáció

OE-NIK 2010/11 ősz OE-NIK ősz

Számítógép-hálózatok: 4. Labor. TCP kliens. A gyakorlat célja:

Dr. Varga Imre Debreceni Egyetem, Informatikai Kar. Socket-programozás. C nyelven, Linux alatt

SQUID. Forrás:

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

Számítógépes Hálózatok GY 3-4.hét

1.2. NFS kliens telepítése és beállítása

Operációs rendszerek. Windows NT. A Windows NT

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

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Györgyi Tamás. Szoba: A 131 Tanári.

Információ és kommunikáció

NIS + NFS+Automount. Összeállította: Sallai András

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

Kriptográfiai alapfogalmak

Yottacontrol I/O modulok beállítási segédlet

Az OpenScape Business rendszerek egységes architektúrára épülnek: Rugalmas, skálázható és megbízható

TRBOnet Térinformatikai terminál és diszpécseri konzol

4. Hivatkozási modellek

Operációs rendszerek. Bemutatkozás

Autóipari beágyazott rendszerek. Integrált és szétcsatolt rendszerek

Adatbázis kezelő szoftverek biztonsága. Vasi Sándor G-3S

Pager4 PRO - 3G.IN6.R1

Szolgáltatási szint megállapodás

Titkosítás NetWare környezetben

KAMIONIRÁNYÍTÓ RENDSZER

Intellio Video System 2. Csatlakozási útmutató a demószerverhez

Hálózati alapismeretek

Debreceni Egyetem Matematikai és Informatikai Intézet. 13. Védelem

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

Tisztelt Ügyfelünk! Nokia 6230i Beállítások. Személyes profil létrehozása és beállítása :

Biztonság a glite-ban

Serialization. RMI működése

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

HISCOM GOP

Operációs rendszerek. Az X Window rendszer

Az Operációs rendszerek tárgy tervezett tanterve

1. Kapcsolók konfigurálása

VL IT i n du s t ri al Kommunikációs vázlat

Bérprogram vásárlásakor az Ügyfélnek ben és levélben is megküldjük a termék letöltéséhez és aktiválásához szükséges termékszámot.

PROGRAMOZÓI MÓD SZERVIZ MÓD ÁLTALÁNOS BEÁLLÍTÁSOK

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

Infor PM10 Üzleti intelligencia megoldás

2. előadás. Radio Frequency IDentification (RFID)

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

Átírás:

UNIX: folyamatok kommunikációja kiegészítő fóliák az előadásokhoz Mészáros Tamás http://home.mit.bme.hu/~meszaros/ Budapesti Műszaki Egyetem Méréstechnika és Információs Rendszerek Tanszék 1

A kommunikáció (alap)csatornái Jelzések aszinkron események keltése és kezelése Csővezetékek FIFO kommunikáció a rokonságban Szemaforok a korábban megismert szinkronizációs megoldások Üzenetsorok diszkrét, típusos üzenetek folyamatok között Osztott memória azonos fizikai memóriaterület használata több folyamatban hálózati (socket) kommunikáció címzéssel és protokollokkal támogatott kommunikáció 2

UNIX jelzések Cél (feladat) értesítés a rendszer és más folyamatok eseményeiről szinkronizációs primitívként is használható (nem ideális) Jelzés típusok (SIGINT, SIGHUP, SIGCHLD, SIGFPE, SIGKILL,...) rendszer: kivételek (pl. hibák), kvóta, riasztás, értesítés (gyerek leállt) felhasználói: emberek (ctrl + c), folyamatok (tetszőleges céllal) A megvalósítás rendszerhívással jelzést keltünk (értesítjük a kernelt) a kernel értesíti a címzetteket a jelzésről a címzett egy jelzéskezelő eljárásában fogadja a jelzést Problémák a megvalósítással a létrehozás és a kézbesítés időben szétválik (akár elég messze is) sokféle implementáció, némelyik nem túl megbízható (elveszhet jelzés) 3

Cél folyamatok közötti adatátvitel UNIX csővezetékek: pipe() Jellemzők csak szülő-gyerek viszonylatban adatfolyam (nincs üzenethatár, tipizálás) több író és olvasó is lehet, de egy adat csak egy helyre érkezhet meg A megvalósítás egy folyamat létrehozhat egy csővezetéket (pipe()) a kernel létrehozza az adatstruktúrákat és olvasási/írási leírókat ad vissza a folyamat továbbadja a leírókat a gyerekének a leírók segítségével kommunikálnak a folyamatok (read(), write()) Korlátok, problémák nincs címzés, tipizálás egymástól független folyamatok esetében nem működik 4

UNIX elnevezett csővezetékek Az egyszerű csővezetékek legkomolyabb problémájának megoldása független folyamatok kommunikációja Jellemzők nem csak szülő-gyerek viszonylatban ugyanúgy működik, mint a csővezeték a létrehozás a fájlrendszer segítségével történik Példa: kommunikáció az init folyamattal a fájlrendszerben látható a csővezeték: prw------- 1 root root 0 Jan 1 12:38 /dev/initctl (a fájlrendszerrel kapcsolatos részletek később) 5

UNIX System V IPC Cél: folyamatok közötti szabványos kommunikáció adatátvitel szinkronizáció Közös alapok erőforrás (fogalom): a kommunikáció eszköze kulcs: azonosító az erőforrás eléréséhez jogosultsági rendszer (fájlrendszerhez hasonlatos) közös kezelőfüggvények: *ctl(), *get() Eszközök szemaforok üzenetsorok osztott memória 6

UNIX System V IPC: szemaforok Cél: folyamatok közötti szinkronizáció P() és V() operátorok szemaforcsoportok kezelése Használat sem_id = semget(kulcs, szám, opciók); adott számú szemaforhoz nyújt hozzáférést (adott kulccsal és opciókkal) a tényleges létrehozás és az egyszerű hivatkozás az opciókban válik szét status = semop(sem_id, ops, ops_méret); az ops struktúrában leírt műveletek végrehajtása (részletek: man semop) egyszerre több művelet, több szemaforon is végrehajtható blokkoló és nem blokkoló P() operáció is lehetséges egyszerű tranzakciókezelésre is van lehetőség 7

UNIX System V IPC: üzenetsorok Cél: folyamatok közötti adatátvitel diszkrét, tipizált üzenetek nincs címzés, üzenetszórás Használat msgq_id = msgget(kulcs, opciók); adott kulcsú üzenetsorhoz nyújt hozzáférést (adott opciókkal) a tényleges létrehozás és az egyszerű hivatkozás az opciókban válik szét üzenetküldés: msgsnd(msgq_id, msg, méret, opciók); vétel: msgrcv(msgq_id, msg, méret, típus, opciók); a típus (egész szám) beállításával szűrést valósíthatunk meg = 0 a következő üzenet (tetszőleges típusú) > 0 a következő adott típusú üzenet < 0 a következő üzenet, amelynek a típusa kisebb vagy egyenlő 8

UNIX System V IPC: osztott memória Cél: folyamatok közötti egyszerű és gyors adatátvitel a kernel helyett közvetlen adatátviteli csatorna a fizikai memória elkülönített része, amely közösen használható Használat shm_id = shmget(kulcs, méret, opciók); adott kulcsú osztott nyújt hozzáférést (adott opciókkal) a tényleges létrehozás és az egyszerű hivatkozás az opciókban válik szét hozzárendelés saját virtuális címtartományhoz: változó = (típus) shmat(...); az adott változót hozzákötjük a visszakapott címhez lecsatolás: shmdt(cím); a kölcsönös kizárást meg kell valósítani (pl. szemaforokkal) 9

UNIX: socket kommunikáció Cél: címzéssel és protokollokkal támogatott adatátvitel tetszőleges folyamatok között kliens szerver architektúrában sokféle protokoll (TCP/IP család) többféle címzés gépen belül és gépek között is Fogalmak socket: hálózati csatoló (azonosító) IP cím és portszám (l. hálózatok) Használat sfd = socket(domén, típus, protokoll); szerver: bind(sfd, cím,...); kliens: connect(sfd, cím,...); szerver: listen(sfd, sor_mérete); szerver: accept(sfd, cím,...); send(sfd, üzenet,...); recv(sfd, üzenet,...); shutdown(sfd); 10

Kliens és szerver programok váza Kliens program socket() connect() send() recv() close() Szerver program sfd1 = socket() bind(sfd1) listen(sfd1) while sfd2 = accept(sfd1) fork() szülő: vissza a ciklusba gyerek: recv(sfd2) send(sfd2) close(sfd2) exit() 11

(Sun) RPC (távoli eljáráshívás) A socket kommunikációra épülő elosztott rendszer infrastruktúra Cél: folyamatok közötti magas szintű kommunikáció távoli eljárások meghívása (másik folyamatban, akár másik gépen) programozói támogatás: interfész leírás + programgenerálás Fogalmak RPC nyelv: a hívható eljárások és típusaik (interfész) leírása azonosítók: a leírásban megadott egyedi számok (program, eljárás) portmapper: a programazonosítók és a hálózati portok összerendelése rpcgen: a leírásból C programkódot generáló program Ez a mai elosztott rendszerek (DCOM, CORBA, RMI, stb.) őse interfész leírás programgenerátor kommunikációs infrastruktúra 12