Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VSOS_2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.9 Mб
Скачать

14Буферизация

Существуют три стратегии реализации очередей сообщений с точки зрения длины буфера:

  • нулевая емкость. Максимальная длина очереди равна нулю. Не существует сообщений, ожидающих приема. Оба процесса должны быть синхронизированы для организации обмена. Такая схема синхронизации носит название рандеву.

  • ограниченная емкость. Очередь имеет фиксированную длину n и может сохранять не более, чем n сообщений. Поскольку емкость очереди конечна, то в случае переполнения канала отправитель должен ожидать появления свободного пространства в очереди.

  • неограниченная емкость. Очередь имеет потенциально бесконечную длину и поэтому может содержать сколько угодно сообщений. Отправитель при такой схеме никогда не простаивает.

15Исключительные ситуации

Система посылки сообщений особенно полезна в распределенных системах, когда взаимодействующие процессы могут выполняться на различных компьютерах. В этой ситуации вероятность ошибки во время обмена значительно выше, чем на локальной системе. В последнем случае сообщения обычно размещают в разделяемой памяти. В случае отказа нарушается работа всей системы. В распределенной системе сообщения передаются по линиям связи и ошибки при передаче не должны приводить к потере работоспособности системы в целом.

Остановка процесса

Как отправитель, так и получатель могут прервать работу во время передачи сообщения. Это приведет к тому, что, либо появятся сообщения, которые никто не ждет, либо процессы будут ожидать сообщений, которые никогда не будут отправлены.

Рассмотрим две ситуации:

  1. Процесс-получатель P может ожидать сообщения от процесса Q, который уже завершился. Если не предпринять никаких действий, то процесс P будет навеки заблокирован. Система должна либо завершить процесс P, либо уведомить его о завершении процесса Q.

  2. Процесс P может оправлять сообщения уже завершившемуся процессу Q. При схеме с автоматической буферизацией особого вреда нет. Процесс P просто продолжает свою работу. При схеме без буферизации процесс P будет заблокирован навсегда. Действия системы такие же, как и в первом случае.

Потерянные сообщения

Сообщение от процесса P к процессу Q может быть потеряно вследствие ошибок в оборудовании или на линии связи. Существует три основных метода поведения в этой ситуации:

  1. ОС несет ответственность за выявление этого события и за повторную передачу сообщения.

  2. Процесс-отправитель отвечает за выявление сбоя и за повторную передачу, если это ему требуется.

  3. ОС выявляет ситуацию и сообщает процессу-отправителю о случившемся. Процесс-отправитель может обработать ситуацию.

Не всегда необходимо выявлять потерю сообщений. Не все ОС гарантируют доставку сообщений. Сетевые протоколы предусматривают режим без гарантированной доставки. Пользователь должен указать, в каком режиме передается его сообщение.

Искажение сообщения

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]