Вызов удаленных процедур (RPC) позволяет организовать взаимодействие программ в сети, например для организации сетевых распределенных вычислений.
Характерными чертами RPC являются:
· асимметричность (одна из сторон является инициатором взаимодействия),
· синхронность (выполнение вызывающей процедуры блокируется с момента выдачи запроса и возобновляется только после возврата из вызываемой процедуры).
Сложность реализации RPC по сравнению с вызовом локальных процедур обусловлена:
1. Разными (разнесенными в пространстве) адресными полями компьютеров, что создает проблемы в передаче параметров и результатов, особенно если машины и ОС не идентичны
2. Отсутствие разделяемой памяти означает, что значения параметров должны копироваться с одной машины на другую
3. RPC использует нижележащую систему обмена сообщениями, однако это не должно быть явно видно ни в определении процедур, ни в самих процедурах
4. В реализации RPC участвует как минимум два процесса, аварийное завершение любого из них может привести к проблемам
|
|
5. Неоднородность языков программирования и операционных сред.
Схема реализации RPC.
Задача
Системы подкачки устраняют свободные участки с помощью уплотнения. Предположим, что множество свободных участков и множество сегментов данных распределены случайно, а время чтения 32-разрядного слова в памяти или записи в память равно 10 нс. Сколько примерно времени займет уплотнение 128 Мбайт в этом случае? Для простоты считаем, что слово 0 – это часть незанятой области и что самое старшее слово памяти содержит действительные данные.
Обозначим объем свободной памяти- Е
Обозначим объем занятой памяти- Е
Построим график зависимости Е от Е .
Можно увидеть на графике, что максимальный объём перемещаемых данных= 64.
Также очевидно, что память в целом- это сумма свободной и занятой =>
Е= Е + Е
время записи- t
время считывания- t
t = t = 10 с. (по условию)
N- число слов.
N= = =2 слов.
t = N(t + t ) = 2 *2*10 =33 мс