Буферизация сообщений необходима по нескольким причинам:
для синхронных (блокирующих) примитивов причиной является существенная задержка между передачей сообщения и его получением, особенно в сети Internet
Для асинхронных, т.к. процесс-отправитель может отправить сообщение в любое время, не ожидая подтверждения получателя.
Для синхронных примитивов выделяется буфер обычно размером в одно сообщение
Для асинхронных - очередь сообщений
Обычно ОС имеет примитив для создания буфера сообщений, например create_buffer. При создании задается его размер. Часто буфер носит название порт (port), или почтовый ящик (mailbox)
Возможна ситуация, когда send выполнен на одном компьютере раньше, чем create_buffer на другом. Варианты реакции ОС:
отказ от сообщения, в расчете что после тайм-аута будет повтор. Это просто реализовать, но нагружает сеть повторными сообщениями.
некоторое время (по таймеру) держать сообщение в ядре, в расчете на приход create_buffer. Этот вариант труднее организовать.
studopedia.su - Студопедия (2013 - 2026) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление