Komunikacja między procesami (IPC) w systemie operacyjnym
⚡ Inteligentne podsumowanie
Komunikacja międzyprocesowa (IPC) to zestaw mechanizmów systemu operacyjnego, które umożliwiają procesom i wątkom wymianę danych, koordynowanie działań i synchronizację akcji, niezależnie od tego, czy działają na jednym komputerze, czy na kilku maszynach połączonych siecią.

Co to jest komunikacja międzyprocesowa?
Komunikacja między procesami (IPC) Służy do wymiany danych między wieloma wątkami w jednym lub większej liczbie procesów lub programów. Procesy mogą być uruchomione na jednym komputerze lub na wielu komputerach połączonych siecią. Pełna nazwa IPC to komunikacja międzyprocesowa.
Jest to zestaw interfejsów programistycznych, które umożliwiają programistom koordynację działań różnych procesów programowych, które mogą być uruchamiane współbieżnie w systemie operacyjnym. Dzięki temu jeden program może obsługiwać wiele żądań użytkownika jednocześnie.
Ponieważ każde żądanie użytkownika może skutkować uruchomieniem wielu procesów w systemie operacyjnym, procesy te mogą wymagać komunikacji ze sobą. Każde podejście IPC ma swoje zalety i ograniczenia, dlatego nie jest niczym niezwykłym, że jeden program korzysta z kilku metod IPC.
Podejścia do komunikacji międzyprocesowej
Oto kilka ważnych metod komunikacji międzyprocesowej:
Podejścia do komunikacji międzyprocesowej
Rury
Potok jest powszechnie używany do komunikacji między dwoma powiązanymi procesami. Jest to metoda półdupleksowa, więc pierwszy proces komunikuje się z drugim. Jednak aby osiągnąć komunikację w trybie pełnego dupleksu, potrzebny jest kolejny potok.
Przekazywanie wiadomości
To mechanizm umożliwiający procesowi komunikację i synchronizację. Wykorzystując przekazywanie komunikatów, procesy komunikują się ze sobą bez uciekania się do zmiennych współdzielonych.
Mechanizm IPC zapewnia dwie operacje:
- Wyślij (wiadomość) — rozmiar wiadomości może być stały lub zmienny
- Odbierz (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 tym typie komunikacji międzyprocesowej procesy muszą jawnie nazywać się nawzajem. W tej metodzie ustanawiane jest łącze między jedną parą komunikujących się procesów, a między każdą parą istnieje tylko jedno łącze.
Komunikacja pośrednia
Komunikacja pośrednia jest nawiązywana tylko wtedy, gdy procesy korzystają ze wspólnej skrzynki pocztowej. Każda para procesów może współdzielić kilka łączy komunikacyjnych, a jedno łącze może komunikować się z wieloma procesami. Łącze może być dwukierunkowe lub jednokierunkowe.
Pamięć współdzielona
Pamięć współdzielona to obszar pamięci współdzielony przez dwa lub więcej procesów. Pamięć ta musi być chroniona przed współbieżnym dostępem poprzez synchronizację procesów, które z niej korzystają.
FIFO
Metoda FIFO służy do komunikacji między dwoma niezależnymi procesami. Jest to metoda pełnego dupleksu, co oznacza, że pierwszy proces może komunikować się z drugim, a także odwrotnie.
Dlaczego IPC?
Oto powody, dla których stosuje się protokół komunikacji międzyprocesowej do udostępniania informacji:
- Pomaga przyspieszyć modułowość.
- Przyspieszenie obliczeń.
- Rozdział przywilejów.
- Wygoda.
- Pomaga procesom i systemowi operacyjnemu 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 to mechanizm sygnalizacyjny. Ta metoda systemu operacyjnego zezwala lub nie zezwala na dostęp do zasobu, w zależności od jego konfiguracji.
Signals: Sygnał to metoda komunikacji między wieloma procesami za pośrednictwem sygnalizacji. Proces źródłowy wysyła sygnał, który jest rozpoznawany za pomocą numeru, a proces docelowy go obsługuje.
Sugestia czytania: Czym jest Semaphore? Binarny, liczenie typów z przykładem
Czym jest FIFOS i czym się różni FIFOS
Poniższa tabela porównuje podobne i różne metody FIFO:
| Podobnie jak FIFOS | W odróżnieniu od FIFOSA |
|---|---|
| Stosowana jest metoda FIFO. | Wykorzystuje metodę pobierania określonych pilnych wiadomości zanim dotrą one na początek. |
| Metoda FIFO istnieje niezależnie od procesów wysyłania i odbierania. | Zawsze gotowe, nie ma potrzeby otwierania ani zamykania. |
| Umożliwia przesyłanie danych pomiędzy niepowiązanymi procesami. | Nie ma problemów z synchronizacją pomiędzy otwieraniem i zamykaniem. |

