"Андрей Куракин. Системная архитектура QNX4" - читать интересную книгу автораполучателю и никому более.
Примитивы передачи сообщений Для непосредственной связи друг с другом взаимодействующие процессы используют следующие функции языка программирования Си: Функция языка Си: Назначение: Send()посылка сообщений Receive()получение сообщений Reply()ответ процессу, пославшему сообщение Эти функции могут быть использованы как локально, т.е. для связи между процессами на одном компьютере, так и в пределах сети, т.е. для связи между процессами на разных узлах. Следует заметить, однако, что далеко не всегда возникает необходимость использовать функции Send(), Receive() и Reply() в явном виде. Библиотека функций языка Си в QNX построена на основе использования сообщений - в результате, когда процесс использует стандартные механизмы передачи данных (такие, как, например, программный канал - pipe), он косвенным образом использует передачу сообщений. Процесс A посылает сообщение процессу B, который получает его, обрабатывает и посылает ответ На рисунке изображена последовательность событий, имеющих место, когда два процесса, процесс A и процесс B, используют функции Send(), Receive() и Reply() для связи друг с другом: Процесс A посылает сообщение процессу B, вызвав функцию Send(), которая передает соответствующий запрос ядру. В этот момент времени процесс A переходит в SEND-блокированное состояние и остается в этом состоянии до тех пор, пока процесс B не вызовет функцию Receive() для получения сообщения. Процесс B вызывает Receive() и получает сообщение от процесса A. При этом состояние процесса A изменяется на REPLY-блокирован. |
|
|