Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО Лекции-шпоры.doc
Скачиваний:
6
Добавлен:
17.12.2018
Размер:
12 Мб
Скачать
☆

11. Концепция удаленного вызова процедур.

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

Характерными чертами вызова локальных процедур являются:

  • Асимметричность, то есть одна из взаимодействующих сторон является инициатором;

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

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

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

12. Вопросы согласование времени в сетевых системах.

13. Алгоритмы синхронизации часов в сетевых системах.

Существует земное время ( по общему соглашению). Для сетей используют всеобщее скоординированное время (UTC – universal time coordinated). Для получения UTC существуют специальные приемники, которые подсоединяются к компьютеру.

Способы получения времени:

  • спутник

  • радтостанция

Точность зависит от многих факторов. Для спутников существует 2службы:

  1. GPS (точность 1 мкс)

  2. GEOS (точность 0,1 мкс)

Радиовещание 10 мкс

К спутникам и радиостанциям подключаются серверы времени, а к ним все остальные.

Алгоритмы синхронизации часов:

Существует 2 алгоритма согласования:

  • с использованием приемника UTC (сеть в идеальном случае имеет 1 UTC приемник на сервере, а остальные компьютеры подключаются к нему и опрашивают его для корректировки своих часов. Клиент корректирует свое время с учетом коммуникационной задержки).

  • без его использования (участники сети могут использовать некоторое время, сверяя показания всех часов. Здесь имеется координатор сети ограничивая все узлы с целью подстройки своих часов.

Алгоритм крупномасштабной координации (пригоден для глобальных сетей). Для него существуют специальные протоколы. Для интернета это NTP (network time protocol) точность до 1—ков мс. NTP имеет трех уровневую иерархию:

  1. несколько серверов с приемниками UTC каждый из них отвечает за передачу времени 2-му уровню

  2. серверы путем широковещательных запросов обеспечивают доставку всем остальным

  3. все остальные узлы.