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ácieUpraviť

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

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

Tabuľka IPC metód:

metóda poskytovaná (operačným systémom alebo inými prostrediami)
súbor všetky operačné systémy
signál väčš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.
socket väčšina operačných systémov.
rúra všetky POSIX systémy.
pomenovaná rúra všetky POSIX systémy.
semafor vš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äte vš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áv väčšina operačných systémov.
mailbox (poštová schránka) niektoré operačné systémy

Pozri ajUpraviť

ReferencieUpraviť

  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

Externé odkazyUpraviť