Межпроцессное взаимодействие
Межпроцессное взаимодействие
Перейти к навигации
Перейти к поиску
Межпроцессное взаимодействие (англ. inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети.
Из механизмов, предоставляемых ОС и используемых для IPC, можно выделить:
- механизмы обмена сообщениями;
- механизмы синхронизации;
- механизмы разделения памяти;
- механизмы удалённых вызовов (RPC).
Для оценки производительности различных механизмов IPC используют следующие параметры:
- пропускная способность (количество сообщений в единицу времени, которое ядро ОС или процесс способно обработать);
- задержки (время между отправкой сообщения одним потоком и его получением другим потоком).
IPC может называться терминами межпотоковое взаимодействие (англ. inter-thread communication) и межпрограммное взаимодействие (англ. inter-application communication).
Межпроцессное взаимодействие, наряду с механизмами адресации памяти, является основой для разграничения адресного пространства между процессами[1].
Содержание
1 Таблица методов межпроцессного взаимодействия
2 См. также
3 Примечания
4 Литература
5 Ссылки
Таблица методов межпроцессного взаимодействия[править | править код]
| Метод | Реализуется ОС или процессом |
|---|---|
| Файл | Все ОС. |
| Сигнал | Большинство ОС; в некоторых ОС, например, в Windows, сигналы доступны только в библиотеках, реализующих стандартную библиотеку языка Си, и не могут использоваться для IPC. |
| Сокет | Большинство ОС. |
| Канал | Все ОС, совместимые со стандартом POSIX. |
| Именованный канал | Все ОС, совместимые со стандартом POSIX. |
Неименованный канал | Все ОС, совместимые со стандартом POSIX. |
| Семафор | Все ОС, совместимые со стандартом POSIX. |
| Разделяемая память | Все ОС, совместимые со стандартом POSIX. |
Обмен сообщениями (без разделения) | Используется в парадигме MPI, Java RMI, CORBA и других. |
Проецируемый в память файл (mmap) | Все ОС, совместимые со стандартом POSIX. При использовании временного файла возможно возникновение гонки. ОС Windows также предоставляет этот механизм, но посредством API, отличающегося от API, описанного в стандарте POSIX. |
Очередь сообщений (Message queue) | Большинство ОС. |
| Почтовый ящик | Некоторые ОС. |
См. также[править | править код]
- Сигналы межпроцессного взаимодействия
Примечания[править | править код]
↑ Йохен Лидтке (нем. Jochen Liedtke (англ.)). On µ-Kernel construction (недоступная ссылка) // Proc. 15th ACM Symposium on operating system principles (SOSP). Декабрь 1995
Литература[править | править код]
Stevens, Richard. UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications. Prentice Hall, 1999. ISBN 0-13-081081-9- U. Ramachandran, M. Solomon, M. Vernon Hardware support for interprocess communication Proceedings of the 14th annual international symposium on Computer architecture. Pittsburgh, Pennsylvania, United States. Pages: 178—188. Year of Publication: 1987 ISBN 0-8186-0776-9
- Crovella, M. Bianchini, R. LeBlanc, T. Markatos, E. Wisniewski, R. Using communication-to-computation ratio in parallel program designand performance prediction 1-4 December 1992. pp. 238—245 ISBN 0-8186-3200-3
Ссылки[править | править код]
- Linux System V IPC Main Page
- Windows IPC
Для улучшения этой статьи желательно: |
Категория:
- Межпроцессное взаимодействие
(window.RLQ=window.RLQ||).push(function()mw.config.set("wgPageParseReport":"limitreport":"cputime":"0.120","walltime":"0.197","ppvisitednodes":"value":721,"limit":1000000,"ppgeneratednodes":"value":0,"limit":1500000,"postexpandincludesize":"value":18123,"limit":2097152,"templateargumentsize":"value":1056,"limit":2097152,"expansiondepth":"value":13,"limit":40,"expensivefunctioncount":"value":2,"limit":500,"unstrip-depth":"value":0,"limit":20,"unstrip-size":"value":819,"limit":5000000,"entityaccesscount":"value":0,"limit":400,"timingprofile":["100.00% 150.858 1 -total"," 38.30% 57.785 1 Шаблон:Примечания"," 37.55% 56.649 1 Шаблон:Rq"," 33.90% 51.142 1 Шаблон:Ambox"," 16.64% 25.099 1 Шаблон:Ref-en"," 14.83% 22.371 1 Шаблон:Ref-lang"," 13.76% 20.755 2 Шаблон:Ref-info"," 13.66% 20.607 1 Шаблон:IPC"," 11.93% 17.990 1 Шаблон:Навигационная_таблица"," 4.90% 7.385 16 Шаблон:Rq/"],"scribunto":"limitreport-timeusage":"value":"0.029","limit":"10.000","limitreport-memusage":"value":1219962,"limit":52428800,"cachereport":"origin":"mw1243","timestamp":"20181010152052","ttl":1900800,"transientcontent":false);mw.config.set("wgBackendResponseTime":123,"wgHostname":"mw1329"););

Clash Royale CLAN TAG