For faster navigation, this Iframe is preloading the Wikiwand page for Komunikacja międzyprocesowa.

Komunikacja międzyprocesowa

Ten artykuł od 2015-12 wymaga zweryfikowania podanych informacji.Należy podać wiarygodne źródła w formie przypisów bibliograficznych.Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte.Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary)Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu. Po wyeliminowaniu niedoskonałości należy usunąć szablon ((Dopracować)) z tego artykułu.

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:

Ponieważ procesy mogą komunikować się nie tylko w obrębie jednego systemu, możemy wyróżnić też:

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 przełączenia kontekstu, 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).

Zobacz też

[edytuj | edytuj kod]
{{bottomLinkPreText}} {{bottomLinkText}}
Komunikacja międzyprocesowa
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?