Операционные системы, среды и оболочки. Макаренко С.И. - 118 стр.

UptoLike

Составители: 

Несмотря на концептуальную простоту примитивов send и receive,
существуют различные варианты их реализации, от правильного выбора
которых зависит эффективность работы сети. В частности, эффективность
зависит от способа задания адреса получателя. Не менее важны при
реализации примитивов передачи сообщений ответы и на другие вопросы. В
сети всегда имеется один получатель или их может быть несколько?
Требуется ли гарантированная доставка сообщений? Должен ли отправитель
дождаться ответа на свое сообщение, прежде чем продолжать свою работу?
Как отправитель, получатель и подсистема передачи сообщений должны
реагировать на отказы узла или коммуникационного канала во время
взаимодействия? Что нужно делать, если приемник не готов принять
сообщение, нужно ли отбрасывать сообщение или сохранять его в буфере? А
если сохранять, то как быть, если буфер уже заполнен? Разрешено ли
приемнику изменять порядок обработки сообщений в соответствии с их
важностью? Ответы на подобные вопросы составляют семантику
конкретного протокола передачи сообщений.
8.3 Синхронизация в распределенных системах
Центральным вопросом взаимодействия процессов в сети является
способ их синхронизации, который полностью определяется используемыми в
операционной системе коммуникационными примитивами.
В этом отношении коммуникационные примитивы делятся на
блокирующие (синхронные),
неблокирующие (асинхронные),
причем смысл данных терминов в целом соответствует смыслу
аналогичных терминов, применяемых при описании системных вызовов и
операций ввода- В отличие от локальных системных вызовов при
выполнении коммуникационных примитивов завершение запрошенной
операции в общем случае зависит не только от некоторой работы
локальной ОС, но и от работы удаленной ОС.
8.4 Вызов удаленных процедур
Еще одним удобным механизмом, облегчающим взаимодействие
операционных систем и приложений по сети, является механизм вызова
удаленных процедур (Remote Procedure Call, RPC). Этот механизм
представляет собой надстройку над системой обмена сообщениями ОС,
поэтому в ряде случаев он позволяет более удобно и прозрачно организовать
взаимодействие программ по сети, однако его полезность не универсальна.
Идея вызова удаленных процедур состоит в расширении хорошо
известного и понятного механизма передачи управления и данных внутри
программы, выполняющейся на одной машине, на передачу управления и
118
     Несмотря на концептуальную простоту примитивов send и receive,
существуют различные варианты их реализации, от правильного выбора
которых зависит эффективность работы сети. В частности, эффективность
зависит от способа задания адреса получателя. Не менее важны при
реализации примитивов передачи сообщений ответы и на другие вопросы. В
сети всегда имеется один получатель или их может быть несколько?
Требуется ли гарантированная доставка сообщений? Должен ли отправитель
дождаться ответа на свое сообщение, прежде чем продолжать свою работу?
Как отправитель, получатель и подсистема передачи сообщений должны
реагировать на отказы узла или коммуникационного канала во время
взаимодействия? Что нужно делать, если приемник не готов принять
сообщение, нужно ли отбрасывать сообщение или сохранять его в буфере? А
если сохранять, то как быть, если буфер уже заполнен? Разрешено ли
приемнику изменять порядок обработки сообщений в соответствии с их
важностью? Ответы на подобные вопросы составляют семантику
конкретного протокола передачи сообщений.

         8.3 Синхронизация в распределенных системах

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

                   8.4 Вызов удаленных процедур

     Еще одним удобным механизмом, облегчающим взаимодействие
операционных систем и приложений по сети, является механизм вызова
удаленных процедур (Remote Procedure Call, RPC). Этот механизм
представляет собой надстройку над системой обмена сообщениями ОС,
поэтому в ряде случаев он позволяет более удобно и прозрачно организовать
взаимодействие программ по сети, однако его полезность не универсальна.
     Идея вызова удаленных процедур состоит в расширении хорошо
известного и понятного механизма передачи управления и данных внутри
программы, выполняющейся на одной машине, на передачу управления и


                                   118