В случае разделяемой памяти два или более процессов совместно используют сегмент памяти.
Общение происходит с помощью обычных операций копирования или перемещения данных в памяти (средствами обычных языков программирования).
Каналы предполагают созданные средствами операционной системы линии связи.
Двумя основными моделями передачи данных по каналу являются поток ввода-вывода и сообщения.
При передаче в рамках потоковой модели данные представляют собой неструктурированную последовательность байтов и никак не интерпретируются системой.
В модели сообщенийна передаваемые данные накладывается некоторая структура, обычно их разделяют на сообщения заранее оговоренного формата
Сигнал – это нечто, что может быть послано процессу системой или другим процессом.
С сигналом не связано никакой информации, кроме номера (кода), указывающего, какой именно тип сигнала посылается.
При получении сигнала процесс прерывает свою текущую работу и переходит на выполнение функции, определенной как обработчик сигналов данного типа.
Таким образом, сигналы сильно похожи на прерывания, но только высокоуровневые, управляемые системой, а не аппаратурой.
Механизм сигналов позволяет решить, например, проблему критической секции иным способом, чем семафоры.
Сигнал дает возможность задаче реагировать на событие, источником которого может быть операционная система или другая задача.
Сигналы вызывают прерывание задачи и выполнение заранее предусмотренных Действий.
Сигналы могут вырабатываться синхронно, то есть как результат работы самого процесса, а могут быть направлены процессу другим процессом; то есть вырабатываться асинхронно.
Синхронные сигналы чаще всего приходят от системы прерываний процессора и свидетельствуют о действиях процесса, блокируемых аппаратурой, например деление на нуль, ошибка адресации, нарушение защиты памяти и т. д. Примером асинхронного сигнала является сигнал с терминала.
Сигналы обеспечивают логическую связь между процессами, а также между процессами и пользователями (терминалами).
Поскольку посылка сигнала предусматривает знание идентификатора процесса, то взаимодействие посредством сигналов возможно только между родственными процессами, которые могут получить данные об идентификаторах друг друга.
В распределенных системах, состоящих из нескольких процессоров, каждый из которых имеет собственную оперативную память, блокирующие переменные, семафоры, сигналы и другие аналогичные средства, основанные на разделяемой памяти, оказываются непригодными.
В таких системах синхронизация может быть реализована только посредством обмена сообщениями