Межпроцессное взаимодействие (англ. inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети.

Из механизмов, предоставляемых ОС и используемых для IPC, можно выделить:

Для оценки производительности различных механизмов IPC используют следующие параметры:

  • пропускная способность (количество сообщений в единицу времени, которое ядро ОС или процесс способно обработать);
  • задержки (время между отправкой сообщения одним потоком и его получением другим потоком).

IPC может называться терминами межпотоковое взаимодействие (англ. inter-thread communication) и межпрограммное взаимодействие (англ. inter-application communication).

Межпроцессное взаимодействие, наряду с механизмами адресации памяти, является основой для разграничения адресного пространства между процессами[1].

Таблица методов межпроцессного взаимодействия

править
Метод Реализуется ОС или процессом
Файл Все ОС.
Сигнал Большинство ОС; в некоторых ОС, например, в Windows, сигналы доступны только в библиотеках, реализующих стандартную библиотеку языка Си, и не могут использоваться для IPC.
Сокет Большинство ОС.
Канал Все ОС, совместимые со стандартом POSIX.
Именованный канал Все ОС, совместимые со стандартом POSIX.
Неименованный канал Все ОС, совместимые со стандартом POSIX.
Семафор Все ОС, совместимые со стандартом POSIX.
Разделяемая память Все ОС, совместимые со стандартом POSIX.
Обмен сообщениями
(без разделения)
Используется в парадигме MPI, Java RMI, CORBA и других.
Проецируемый в память файл (mmap) Все ОС, совместимые со стандартом POSIX. При использовании временного файла возможно возникновение гонки данных. ОС Windows также предоставляет этот механизм, но посредством API, отличающегося от API, описанного в стандарте POSIX.
Очередь сообщений (Message queue) Большинство ОС.
Почтовый ящик Некоторые ОС.

См. также

править

Примечания

править
  1. Йохен Лидтке (нем. Jochen Liedtke (англ.)). On µ-Kernel construction Архивная копия от 18 марта 2009 на Wayback Machine // Proc. 15th ACM Symposium on operating system principles (SOSP). Декабрь 1995

Литература

править

Ссылки

править

📚 Artikel Terkait di Wikipedia

Оружие массового поражения Бразилии

Machine Newsweek. Retrieved on 2010-10-06. Congressional Report on the «Parallel Program». Архивировано 3 марта 2016 года. Senate of Brazil. Retrieved on 2012-03-23

NAS Parallel Benchmarks

NAS Parallel Benchmarks — набор тестов производительности нацеленных на проверку возможностей высокопараллельных суперкомпьютеров. Они были разработаны

OpenMP

«пройдут» директиву BARRIER: PROGRAM HELLO INTEGER ID, NTHRDS INTEGER OMP_GET_THREAD_NUM, OMP_GET_NUM_THREADS C$OMP PARALLEL PRIVATE(ID) ID = OMP_GET_THREAD_NUM()

Параллельный порт

Compatible Parallel Printer Interface Pin Assignment Reference  (2004). Архивировано из оригинала 25 августа 2011 года. Microsoft Windows Logo Program System

Unified Parallel C

Unified Parallel C (UPC) — расширение языка программирования Си, предназначенное для high-performance computing на масштабных параллельных компьютерах

BSP

предложение бренда — бренд сам становится продуктом. Bulk synchronous parallel[англ.] — абстрактная модель параллельных вычислений Business System Planning —

Quantic Dream

приключенческой игры Dustborn от Red Thread Games[англ.], безымянного проекта от Parallel Studio, а также Sea of Solitude на Nintendo Switch. В этом же году компания

ARM (архитектура)

Fugaku (рус. Фугаку), которая показала результат High Performance/Highly Parallel Linpack (HPL), равный 415,5 петафлопс. Данный показатель превосходит возможности