Skip to content
EntityQ751436· pop 30· linked from 689 articles

komunikacja międzyprocesowa

Sign in to save

Also known as IPC, interprocess communication

mechanisms an operating system provides to allow the processes to manage shared data

Wikidata facts

Subclass of
technique
Has part
signal
Show 4 more facts
Sources (2)

via Wikidata · CC0

Article · Polski

Komunikacja międzyprocesowa (ang. inter-process communication, IPC) – umowna nazwa zbioru sposobów komunikacji pomiędzy procesami systemu operacyjnego. Procesy mogą używać różnych sposobów komunikacji, a najpowszechniejsze z nich to: * pliki i – najprostsza i najstarsza forma IPC * (ang. signals) – w niektórych systemach (jak np. DOS) znane jako * semafory (ang. semaphores) * potoki nienazwane (ang. pipes) – znane też jako łącza komunikacyjne * potoki nazwane (ang. named pipes) – znane też jako nazwane łącza komunikacyjne * systemy kolejkowe (ang. message queues) * pamięć dzielona (ang. shared memory) – znane też jako segmenty pamięci dzielonej (ang. shared memory segments) * gniazda dziedziny Uniksa (ang. Unix domain sockets) Ponieważ procesy mogą komunikować się nie tylko w obrębie jednego systemu, możemy wyróżnić też: * gniazda (ang. sockets) * RPC Mechanizmy IPC opierają się na budowaniu w pamięci lub na nośniku dynamicznych struktur, które są używane w celu przesyłania pomiędzy procesami komunikatów, np. o blokadzie obiektów systemowych, stanie wykonywanych wątków, wzbudzania zaprogramowanych w aplikacjach procedur i innych. IPC nie posiada sztywnej specyfikacji. System operacyjny udostępnia niezbędne obiekty (jak semafor), zaś programista wykorzystuje je w celu przekazania komunikatu, którego znaczenie dla aplikacji ustala samodzielnie, zgodnie z przyjętą koncepcją architektury programu, a więc inaczej niż w wypadku np. protokołów sieciowych, gdzie znaczenie poszczególnych flag w nagłówku pakietu jest określone przez specyfikację protokołu. IPC używa się najczęściej w rozbudowanych wielowątkowych aplikacjach (np. bazach danych, serwerach WWW, czy serwerach aplikacyjnych). IPC zostało wprowadzone jako część jądra systemu operacyjnego w systemie operacyjnym System V. W podobny sposób zbudowana została implementacja IPC w jądrze Linux. Z uwagi na implementację w jądrze cała komunikacja wykonywana jest w kontekście jądra, co z jednej strony ułatwia synchronizację, z drugiej zaś powoduje obniżenie wydajności. Każda operacja IPC wymaga , co obarczone jest sporym narzutem czasu (przy założeniu, że przełączanie kontekstów jest sporym narzutem). Implementacja w jądrze ma jednak tę zaletę, że komunikacja IPC jest bardziej niezawodna, a w niektórych przypadkach (np. semafory) wydaje się jedyną słuszną strategią, gdyż zapewnia atomowość operacji, zapobiegając powstawaniu sytuacji kolizji w dostępie czy sytuacji wyścigu o nieustalonym rezultacie. Pojęcie komunikacji międzyprocesowej może odnosić się do wymiany informacji między procesami w obrębie jednego systemu operacyjnego, klastra, a nawet systemów odległych (połączonych siecią). W przypadku tej ostatniej kategorii potrzebne są metody, które pozwolą jednoznacznie identyfikować zdalne procesy. Najczęściej używane strategie to użycie numerów portów (dla gniazd działających w warstwach transportowych modelu TCP/IP, np. TCP lub UDP) lub użycie zdefiniowanych wcześniej unikalnych nazw (dla RPC).

Abstract from DBpedia / Wikipedia · CC BY-SA