Komunikacja między procesami (IPC) w systemie operacyjnym

Co to jest komunikacja międzyprocesowa?

Komunikacja między procesami (IPC) służy do wymiany danych pomiędzy wieloma wątkami w jednym lub większej liczbie procesów lub programów. Procesy mogą działać na jednym lub wielu komputerach połączonych siecią. Pełną formą IPC jest komunikacja między procesami.

Jest to zestaw interfejsów programistycznych, które pozwalają programistom koordynować działania pomiędzy różnymi procesami programu, które mogą być uruchamiane jednocześnie w systemie operacyjnym. Pozwala to konkretnemu programowi obsługiwać wiele żądań użytkownika w tym samym czasie.

Ponieważ każde pojedyncze żądanie użytkownika może skutkować uruchomieniem wielu procesów w systemie operacyjnym, proces może wymagać komunikacji ze sobą. Każde podejście protokołu IPC ma swoje zalety i ograniczenia, więc nie jest niczym niezwykłym, że jeden program używa wszystkich metod IPC.

Podejścia do komunikacji międzyprocesowej

Oto kilka ważnych metod komunikacji międzyprocesowej:

Podejścia do komunikacji międzyprocesowej
Podejścia do komunikacji międzyprocesowej

Rury

Pipe jest szeroko stosowany do komunikacji między dwoma powiązanymi procesami. Jest to metoda half-duplex, więc pierwszy proces komunikuje się z drugim procesem. Jednak aby osiągnąć full-duplex, potrzebna jest inna pipe.

Przekazywanie wiadomości

Jest to mechanizm umożliwiający procesowi komunikację i synchronizację. Wykorzystując przekazywanie wiadomości, procesy komunikują się ze sobą bez uciekania się do zmiennych współdzielonych.

Mechanizm IPC obejmuje dwie operacje:

  • Wyślij (wiadomość) - rozmiar wiadomości stały lub zmienny
  • Otrzymano (wiadomość)

Kolejki wiadomości

Kolejka wiadomości to połączona lista wiadomości przechowywanych w pliku jądro. Jest identyfikowany przez identyfikator kolejki komunikatów. Ta metoda oferuje komunikację między pojedynczymi lub wieloma procesami z pełną pojemnością dupleksową.

bezpośrednia komunikacja

W tego typu procesie komunikacji między procesami należy wyraźnie nazywać się nawzajem. W tej metodzie ustanawiane jest łącze pomiędzy jedną parą komunikujących się procesów, a pomiędzy każdą parą istnieje tylko jedno łącze.

Komunikacja pośrednia

Komunikacja pośrednia nawiązuje się tylko wtedy, gdy procesy współdzielą wspólną skrzynkę pocztową, każda para procesów współdzieli kilka łączy komunikacyjnych. Łącze może komunikować się z wieloma procesami. Łącze może być dwukierunkowe lub jednokierunkowe.

Pamięć współdzielona

Pamięć współdzielona to pamięć współdzielona między dwoma lub większą liczbą procesów, które są ustanawiane przy użyciu pamięci współdzielonej między wszystkimi procesami. Ten typ pamięci wymaga ochrony przed sobą poprzez synchronizację dostępu między wszystkimi procesami.

FIFO

Komunikacja między dwoma niezależnymi procesami. Jest to metoda full-duplex, co oznacza, że ​​pierwszy proces może komunikować się z drugim procesem, a także odwrotnie.

Dlaczego IPC?

Oto powody stosowania protokołu komunikacji międzyprocesowej do wymiany informacji:

  • Pomaga przyspieszyć modułowość
  • Computational
  • Separacja przywilejów
  • Wygoda
  • Pomaga systemom operacyjnym komunikować się ze sobą i synchronizować ich działania.

Terminy używane w IPC

Poniżej przedstawiono kilka ważnych terminów stosowanych w IPC:

Semaphores: Semafor jest techniką mechanizmu sygnalizacyjnego. Ta metoda systemu operacyjnego umożliwia lub uniemożliwia dostęp do zasobu, w zależności od jego konfiguracji.

Signals: Jest to metoda komunikacji pomiędzy wieloma procesami za pomocą sygnalizacji. Proces źródłowy wyśle ​​sygnał rozpoznawany po numerze, a proces docelowy go obsłuży.

Sugestia czytania: – Co to jest Semaphore? Binarny, liczenie typów z przykładem

Czym jest FIFOS i czym się różni FIFOS

Podobnie jak FIFOS W odróżnieniu od FIFOSA
Działa zgodnie z metodą FIFO Metoda wyciągania określonych pilnych wiadomości, zanim dotrą na front
FIFO istnieje niezależnie od procesów wysyłania i odbierania. Zawsze gotowy, więc nie trzeba otwierać ani zamykać.
Umożliwia przesyłanie danych pomiędzy niepowiązanymi procesami. Nie ma problemów z synchronizacją pomiędzy otwieraniem i zamykaniem.

Podsumowanie

  • Definicja: Komunikacja między procesami służy do wymiany danych między wieloma wątkami w jednym lub większej liczbie procesów lub programów.
  • Rura jest szeroko stosowana do komunikacji pomiędzy dwoma powiązanymi procesami.
  • Przekazywanie wiadomości to mechanizm umożliwiający procesowi komunikację i synchronizację.
  • Kolejka komunikatów to połączona lista komunikatów przechowywanych w jądrze
  • Proces bezpośredni to rodzaj procesu komunikacji między procesami, należy go wyraźnie nazwać.
  • Komunikacja pośrednia ma miejsce tylko wtedy, gdy procesy współdzielą wspólną skrzynkę pocztową, a każda para procesów współdzieli kilka łączy komunikacyjnych.
  • Pamięć współdzielona to pamięć współdzielona między dwoma lub większą liczbą procesów, która jest ustanawiana przy użyciu pamięci współdzielonej pomiędzy wszystkimi procesami.
  • Metoda komunikacji międzyprocesowej pomaga przyspieszyć modułowość.
  • Semafor jest techniką mechanizmu sygnalizacyjnego.
  • SignalKomunikacja jest metodą komunikacji między wieloma procesami za pomocą sygnalizacji.
  • Podobnie jak FIFO postępuje zgodnie z metodą FIFO, podczas gdy w przeciwieństwie do metody FIFO, używa metody do wyciągania określonych pilnych wiadomości, zanim dotrą one na front.