Page 323 - ЭВМ
P. 323
ленное сообщение было утеряно из-за сетевой ошибки. Чтобы пре-
дотвратить такую ситуацию, блокирующий примитив send часто ис-
пользует механизм тайм-аута. То есть определяется интервал време-
ни, после которого операция send завершается со статусом «ошибка».
Механизм тайм-аута может использоваться также блокирующим
примитивом receive для предотвращения блокировки процесса-
получателя на неопределенное время, когда процесс-отправитель по-
терпел крах или сообщение было потеряно вследствие сетевой ошибки.
Если при взаимодействии двух процессов оба примитива (send
и receive) являются блокирующими, говорят, что процессы взаимо-
действуют по сети синхронно (рис. 10.2), в противном случае взаимо-
действие считается асинхронным (рис. 10.3).
Рис. 10.2. Синхронное взаимодействие с помощью блокирующих
примитивов send и receive
По сравнению с асинхронным взаимодействием синхронное
является более простым, его легко реализовать. Оно также более на-
дежно, так как гарантирует процессу-отправителю, возобновившему
свое выполнение, что его сообщение было получено. Главный же его
недостаток – ограниченный параллелизм и возможность возникнове-
ния клинчей.
Обычно в ОС имеется один из двух видов примитивов, но ОС
является более гибкой, если поддерживает как блокирующие, так
и неблокирующие примитивы.
Термины «клиент» и «сервер» используются не только для обо-
значения программных модулей, но и компьютеров, подключенных
к сети. Если компьютер предоставляет свои ресурсы другим компью-
312