Инфо IT 24

IT блог, IT мышление

Обмен данными

Обмен даннымиДля обмена данными между процессами в UNIX-системах существует механизм сообщений.

Работа этого механизма напоминает использование почтового ящика общего доступа. Люди могут опускать в такой ящик письма, указывая на конверте имя адресата, а адресаты, периодически проверяя содержимое почтового ящика, забирают предназначенные им сообщения, устанавливая это по имени адресата. При этом сохраняется последовательность помещения писем в ящик, и если человеку адресовано несколько писем, то вначале он прочитает самое старое, потом перейдет к более новым. Кроме разделения писем по адресам возможно также разделение писем по разным ящикам, например один ящик может использоваться для частной переписки только двух человек.

Аналогично работает механизм сообщений — операционная система выделяет специальную область памяти, в которой хранятся последовательности сообщений — так называемые очереди сообщений, в которые процессы могут помещать свои сообщения, как в почтовые ящики. Каждое сообщение состоит из числового идентификатора и блока данных, несущего передаваемую информацию. Помещение данных в очередь и их извлечение из очереди идет по принципу FIFO, т. е. из очереди первым извлекается самое старое сообщение. Однако поскольку каждое сообщение в очереди имеет идентификатор, то может извлекаться и самое старое сообщение с заданным идентификатором, которое совсем не обязательно будет самым старым сообщением среди всех сообщений очереди.

Таким образом, операционная система гарантирует сохранность сообщений и возможность их обработки в порядке поступления в очередь, однако не может гарантировать того, что сообщение будет извлечено из очереди именно тем процессом, для которого оно предназначалось. Это связано с тем, что идентификатор извлекаемого сообщения задает процесс-получатель.

Статью опубликовал: i24TbloG

Метки:

Из каталога:

Программирование Linux Part H

Предыдущая статья:

Следующая статья: