Komunikácia medzi procesmi

Komunikácia medzi procesmi alebo medziprocesná komunikácia (po angl. inter-process communication, skr. IPC) je súbor techník výmeny dát medzi dvomi či viacerými vláknami v rámci jedného alebo viacerých procesov.

Procesy môžu bežať na jednom alebo viacerých počítačoch spojených sieťou. IPC techniky sa delia ma metódy posielania správ, synchronizácie, zdieľanej pamäte a vzdialeného volania procedúr (RPC). Použitá metóda IPC sa môže meniť na základe šírky prenosového pásma a latencie spojenia medzi vláknami a typu dát, ktoré sa vymieňajú.

Všeobecne sa vychádza z toho, že je výrazne rýchlejšie implementovať IPC v prostredí mikrokernelu ako v klasických systémoch s monolitickým jadrom[1].

IPC sa môže používať aj vo význame komunikácia medzi vláknami alebo komunikácia medzi aplikáciami.

Implementácie

Existujú niekoľké API, ktoré umožňujú IPC. Medzi platformovo nezávislé API patria:

  • Anonymná rúra a pomenovaná rúra (pipe)
  • Socket
  • Distributed Computing Environment (DCE)
  • Common Object Request Broker Architecture (CORBA)
  • Message Bus (MBUS) (špecifikácia v RFC 3259)
  • XML XML-RPC or SOAP
  • Internet Communications Engine (ICE) zo ZeroC

Nasledujúce sú API špecifické pre určitú platformu:

  • Apple events z Apple Computer (predtým známe ako Interapplication Communications (IAC)).
  • D-Bus z Freedesktop.org
  • Desktop Communications Protocol (DCOP) z KDE
  • Mach Port z kernelu Mach
  • ActiveX, Component Object Model (COM), Distributed Component Object Model (DCOM), Dynamic Data Exchange (DDE), Object Linking and Embedding (OLE), anonymné rúry, pomenované rúry, Local Procedure Call od Microsoftu
  • SPX od Novellu
  • POSIX mmap, fronty správ, semafory a zdieľaná pamäť
  • fronty správ, semafory a zdieľaná pamäť systému System V
  • správy RISC OS
  • Doors z OS Solaris
  • RPC od Sun Microsystems

Tabuľka IPC metód:

metódaposkytovaná (operačným systémom alebo inými prostrediami)
súborvšetky operačné systémy
signálväčšina operačných systémov; niektoré systémy ako Windows iba implementujú signals v C run-time knižnici a v skutočnosti neposkytujú ich podporu pre použitie v rámci IPC.
socketväčšina operačných systémov.
rúravšetky POSIX systémy.
pomenovaná rúravšetky POSIX systémy.
semaforvšetky POSIX systémy.
zdieľaná pamäťvšetky POSIX systémy.
posielanie správ
(bez zdieľania)
V rámci paradigmy MPI, Java RMI, CORBA a iné.
mapa pamätevšetky POSIX systémy; môže niesť riziko race condition v prípade použitia dočasného súboru. Windows tiež podporuje túto techniku, ale použité API sú platformovo závislé.
front správväčšina operačných systémov.
mailbox (poštová schránka)niektoré operačné systémy

Pozri aj

Referencie

  1. Hermann Härtig, Michael Hohmuth, Jochen Liedtke, Sebastian Schönberg, Jean Wolter. The performance of μ-kernel-based systems. Proceedings of the 16th ACM symposium on Operating systems principles (SOSP), Saint-Malo, France, October 1997, s. 74. Dostupné online. ISBN 0-89791-916-5. url2
  • J. Liedtke, K. Elphinstone, S. Schiinberg, H. Hartig, G. Heiser, N. Islam, T Jaeger. Achieved IPC Performance. Proceedings of the 6th Workshop on Hot Topics in Operating Systems (HotOS-VI), 1997, s. 28. Dostupné online. ISBN 0-8186-7834-8. .
  • Jochen Liedtke. Improving IPC by kernel design, ACM Press 1994, ISBN 0-89791-632-8
  • Stevens, Richard. UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications. Prentice Hall, 1999. ISBN 0-13-081081-9
  • Nenad Marovac. "On interprocess interaction in distributed architectures", ACM SIGARCH Computer Architecture News, 11(4), 1983

Externé odkazy

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.