Inter Process Communication (IPC) v OS
⚡ Chytré shrnutí
Meziprocesová komunikace (IPC) je sada mechanismů operačního systému, které umožňují procesům a vláknům vyměňovat si data, koordinovat aktivity a synchronizovat akce, ať už běží na jednom počítači nebo na několika počítačích propojených sítí.
Co je meziprocesová komunikace?
Meziprocesová komunikace (IPC) se používá pro výměnu dat mezi více vlákny v jednom nebo více procesech nebo programech. Procesy mohou běžet na jednom počítači nebo na více počítačích propojených sítí. Úplná forma IPC je meziprocesová komunikace.
Jedná se o sadu programovacích rozhraní, která umožňují programátorovi koordinovat aktivity mezi různými programovými procesy, které mohou v operačním systému běžet souběžně. To umožňuje jednomu programu zpracovávat mnoho uživatelských požadavků současně.
Protože každý uživatelský požadavek může vést ke spuštění více procesů v operačním systému, tyto procesy mohou potřebovat vzájemně komunikovat. Každý přístup IPC má své výhody a omezení, takže není neobvyklé, že jeden program používá několik metod IPC.
Přístupy pro meziprocesovou komunikaci
Zde je několik důležitých metod pro komunikaci mezi procesy:
Meziprocesové komunikační přístupy
Trubky
Pro komunikaci mezi dvěma souvisejícími procesy se široce používá kanál. Jedná se o poloduplexní metodu, takže první proces komunikuje s druhým procesem. Pro dosažení plně duplexní komunikace je však potřeba další kanál.
Předávání zpráv
Je to mechanismus, kterým procesy komunikují a synchronizují se. Pomocí předávání zpráv spolu procesy komunikují, aniž by se uchylovaly ke sdíleným proměnným.
Mechanismus IPC umožňuje dvě operace:
- Odeslat (zprávu) – velikost zprávy může být pevná nebo variabilní
- Přijmout (zprávu)
Fronty zpráv
Fronta zpráv je propojený seznam zpráv uložených v jádro. Je identifikován identifikátorem fronty zpráv. Tato metoda nabízí komunikaci mezi jedním nebo více procesy s plně duplexní kapacitou.
přímá komunikace
V tomto typu komunikace mezi procesy se musí procesy navzájem explicitně pojmenovávat. V této metodě je mezi dvojicí komunikujících procesů vytvořeno propojení a mezi každou dvojicí existuje pouze jedno propojení.
Nepřímá komunikace
Nepřímá komunikace je navázána pouze tehdy, když procesy sdílejí společnou poštovní schránku. Každá dvojice procesů může sdílet několik komunikačních linek a jedna linka může komunikovat s mnoha procesy. Linka může být obousměrná nebo jednosměrná.
Sdílená paměť
Sdílená paměť je oblast paměti sdílená mezi dvěma nebo více procesy. Tato paměť musí být chráněna před souběžným přístupem synchronizací procesů, které ji používají.
FIFO
Metoda FIFO se používá pro komunikaci mezi dvěma nesouvisejícími procesy. Jedná se o plně duplexní metodu, což znamená, že první proces může komunikovat s druhým procesem a může nastat i opak.
Proč IPC?
Zde jsou důvody pro použití protokolu meziprocesové komunikace pro sdílení informací:
- Pomáhá to urychlit modularitu.
- Výpočetní zrychlení.
- Oddělení privilegií.
- Pohodlí.
- Pomáhá procesům a operačnímu systému komunikovat a synchronizovat jejich akce.
Termíny používané v IPC
Níže je uvedeno několik důležitých termínů používaných v IPC:
Semaphores: Semafor je signalizační mechanismus. Tato metoda operačního systému buď povoluje, nebo zakazuje přístup k prostředku v závislosti na jeho nastavení.
Signals: Signál je metoda komunikace mezi více procesy pomocí signalizace. Zdrojový proces odešle signál, který je rozpoznán číslem, a cílový proces jej zpracuje.
Návrh na čtení: Co je to Semaphore? Binární, typy počítání s příkladem
Co je jako FIFOS a na rozdíl od FIFOS
Následující tabulka porovnává podobné a odlišné FIFO operace:
| Jako FIFOS | Na rozdíl od FIFOS |
|---|---|
| Řídí se metodou FIFO. | Používá metodu k načtení specifických naléhavých zpráv dříve, než se dostanou na frontu. |
| FIFO existuje nezávisle na odesílacím i přijímacím procesu. | Vždy připravený, takže není potřeba jej otevírat ani zavírat. |
| Umožňuje přenos dat mezi nesouvisejícími procesy. | Nemá žádné problémy se synchronizací mezi otevíráním a zavíráním. |


