Preskočiť na obsah

Komunikácia medzi procesmi

z Wikipédie, slobodnej encyklopédie

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

[upraviť | upraviť zdroj]

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

Referencie

[upraviť | upraviť zdroj]
  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é odkazy

[upraviť | upraviť zdroj]