Операционные системы. Курс лекций



Синхронизация передачи сообщений. - часть 3


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

Из- за того что некоторые сообщения не забрали свои сообщения связь может быть приостановлена. Если каждое сообщение снабдить пометкой времени, то управляющая программа может периодически удалять старые сообщения.

Процессы могут быть остановлены в связи с тем, что другие сообщения не смогли послать им сообщения. Если  время процессов регистрируется, то управляющая может периодически посылать им сообщения, что бы они ни ждали чересчур долго.

Реализация почтовых ящиков требует использования примитивных операторов низкого уровня таких как SemWait и SemSignal, но пользователям могут дать средства более высокого уровня.

Основные достоинства почтовых ящиков:

1.    процессу не нужно знать о существовании других процессов до тех пор пока он не получит сообщения от них;

2.    два процесса могут обмениваться более чем одним сообщением за раз;

3.    ОС может гарантировать, что ни какой процесс не вмешается во взаимодействие других процессов;

4.    очереди буферов позволяют процессу- получателю продолжить работу, не обращая внимания на получателя.

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

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

 




Содержание  Назад  Вперед