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

UptoLike

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

данных через сеть. Средства удаленного вызова процедур предназначены
для облегчения организации распределенных вычислений.
Наибольшая эффективность RPC достигается в тех приложениях, в
которых существует интерактивная связь между удаленными компонентами
с небольшим временем ответов и относительно малым количеством
передаваемых данных. Такие приложения называются RPC-
ориентированными.
Характерными чертами вызова локальных процедур являются:
асимметричность одна из взаимодействующих сторон
является инициатором взаимодействия;
синхронность выполнение вызывающей процедуры блокируется
с момента выдачи запроса и возобновляется только после возврата
из вызываемой процедуры.
Реализация удаленных вызовов существенно сложнее реализации
вызовов локальных процедур. Поскольку вызывающая и вызываемая
процедуры выполняются на разных машинах, то они имеют разные адресные
пространства и это создает проблемы при передаче параметров и
результатов, особенно если машины и их операционные системы не
идентичны. Так как RPC не может рассчитывать на разделяемую память, это
означает, что параметры RPC не должны содержать указателей на ячейки
памяти и что значения параметров должны как-то копироваться с одного
компьютера на другой.
Следующим отличием RPC от локального вызова является то, что он
обязательно использует нижележащую систему обмена сообщениями,
однако это не должно быть явно видно ни в определении процедур, ни в
самих процедурах. Выполнение вызывающей программы и вызываемой
локальной процедуры в одной машине реализуется в рамках единого
процесса. Но в реализации RPC участвуют как минимум два процесса по
одному в каждой машине.
Идея, положенная в основу RPC, состоит в том, чтобы вызов
удаленной процедуры по возможности выглядел так же, как и вызов
локальной процедуры. Другими словами, необходимо сделать механизм RPC
прозрачным для программиста: вызывающей процедуре не требуется знать,
что вызываемая процедура находится на другой машине, и наоборот.
Механизм RPC достигает прозрачности следующим образом. Когда
вызываемая процедура действительно является удаленной, в библиотеку
процедур вместо локальной реализации оригинального кода процедуры
помещается другая версия процедуры, называемая клиентским стабом
(stub заглушка). На удаленный компьютер, который выполняет роль
сервера процедур, помещается оригинальный код вызываемой процедуры, а
также еще один стаб, называемый серверным стабом (рис. 8.4).
119
данных через сеть. Средства удаленного вызова процедур предназначены
для облегчения организации распределенных вычислений.
     Наибольшая эффективность RPC достигается в тех приложениях, в
которых существует интерактивная связь между удаленными компонентами
с небольшим временем ответов и относительно малым количеством
передаваемых    данных.    Такие    приложения     называются   RPC-
ориентированными.
     Характерными чертами вызова локальных процедур являются:
     − асимметричность     — одна из взаимодействующих сторон
       является инициатором взаимодействия;
     − синхронность — выполнение вызывающей процедуры блокируется
       с момента выдачи запроса и возобновляется только после возврата
       из вызываемой процедуры.
     Реализация удаленных вызовов существенно сложнее реализации
вызовов локальных процедур. Поскольку вызывающая и вызываемая
процедуры выполняются на разных машинах, то они имеют разные адресные
пространства и это создает проблемы при передаче параметров и
результатов, особенно если машины и их операционные системы не
идентичны. Так как RPC не может рассчитывать на разделяемую память, это
означает, что параметры RPC не должны содержать указателей на ячейки
памяти и что значения параметров должны как-то копироваться с одного
компьютера на другой.
     Следующим отличием RPC от локального вызова является то, что он
обязательно использует нижележащую систему обмена сообщениями,
однако это не должно быть явно видно ни в определении процедур, ни в
самих процедурах. Выполнение вызывающей программы и вызываемой
локальной процедуры в одной машине реализуется в рамках единого
процесса. Но в реализации RPC участвуют как минимум два процесса — по
одному в каждой машине.
      Идея, положенная в основу RPC, состоит в том, чтобы вызов
удаленной процедуры по возможности выглядел так же, как и вызов
локальной процедуры. Другими словами, необходимо сделать механизм RPC
прозрачным для программиста: вызывающей процедуре не требуется знать,
что вызываемая процедура находится на другой машине, и наоборот.
      Механизм RPC достигает прозрачности следующим образом. Когда
вызываемая процедура действительно является удаленной, в библиотеку
процедур вместо локальной реализации оригинального кода процедуры
помещается другая версия процедуры, называемая клиентским стабом
(stub — заглушка). На удаленный компьютер, который выполняет роль
сервера процедур, помещается оригинальный код вызываемой процедуры, а
также еще один стаб, называемый серверным стабом (рис. 8.4).


                                  119