Файл: Контрольная работа по дисциплине Распределенные операционные системы.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 112
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство цифрового развития, связи и массовых коммуникацийРоссийской ФедерацииОрдена Трудового Красного Знамени Федеральное государственное бюджетное образовательное учреждение высшего образования«Московский технический университет связи и информатики»(МТУСИ)Кафедра «Сетевые информационные технологии и сервисы»Контрольная работапо дисциплине «Распределенные операционные системы»на тему«Концепция удаленного вызова процедур»Вариант № 10 (по номеру в журнале)Выполнил студент 3 курсаГруппа: УБСТ2002ФИО: Изюмов Данил АлександровичМосква, 2023
Введение 3
1.Основы RPC 4
2.Базовые операции RPC 6
3.Этапы выполнения RPC 8
4.Динамическое связывание 11
5.Семантика RPC в случае отказов 12
Заключение 15
Список использованных источников 15
Кроме того, существует ряд проблем, связанных с неоднородностью языков программирования и операционных сред: структуры данных и структуры вызова процедур, поддерживаемые в каком-либо одном языке программирования, не поддерживаются точно так же во всех других языках. Эти и некоторые другие проблемы решает широко распространенная технология RPC, лежащая в основе многих распределенных операционных систем.
RPC достигает прозрачности следующим путем. Когда вызываемая процедура действительно является удаленной, в библиотеку помещается вместо локальной процедуры другая версия процедуры, называемая клиентским стабом (stub - заглушка). Подобно оригинальной процедуре, стаб вызывается с использованием вызывающей последовательности (как на рисунке 3.1), так же происходит прерывание при обращении к ядру. Только в отличие от оригинальной процедуры он не помещает параметры в регистры и не запрашивает у ядра данные, вместо этого он формирует сообщение для отправки ядру удаленной машины.
На стороне сервера поступающие биты помещаются принимающей аппаратурой либо во встроенный буфер, либо в оперативную память. Когда вся информация будет получена, генерируется прерывание. Обработчик прерывания проверяет правильность данных пакета и определяет, какому стабу следует их передать. Если ни один из стабов не ожидает этот пакет, обработчик должен либо поместить его в буфер, либо вообще отказаться от него. Если имеется ожидающий стаб, то сообщение копируется ему. Наконец, выполняется переключение контекстов, в результате чего восстанавливаются регистры и карта памяти, принимая те значения, которые они имели в момент, когда стаб сделал вызов receive. Теперь начинает работу серверный стаб. Он распаковывает параметры и помещает их соответствующим образом в стек. Когда все готово, выполняется вызов сервера. После выполнения процедуры сервер передает результаты клиенту. Для этого выполняются все описанные выше этапы, только в обратном порядке. Рисунок 3.3 показывает последовательность команд, которую необходимо выполнить для каждого RPC-вызова, а рисунок 3.4 - какая доля общего времени выполнения RPC тратится на выполнение каждого их описанных 14 этапов. Исследования были проведены на мультипроцессорной рабочей станции DEC Firefly, и, хотя наличие пяти процессоров обязательно повлияло на результаты измерений, приведенная на рисунке гистограмма дает общее представление о процессе выполнения RPC. Рис. 3.3. Этапы выполнения процедуры RPC Рис. 3.4. Распределение времени между 14 этапами выполнения RPC
Содержание
Введение 3
1.Основы RPC 4
2.Базовые операции RPC 6
3.Этапы выполнения RPC 8
4.Динамическое связывание 11
5.Семантика RPC в случае отказов 12
Заключение 15
Список использованных источников 15
Введение
R PC является сокращенной формой удаленного вызова процедур. в статье Биррелла и Нельсона «Реализация удаленных вызовов процедур», опубликованной в ACM Transactions on Computer Systems в 1984 году, была сделана классическая интерпретация RPC. RPC относится к процессу на компьютере A, вызывающему процесс на другом компьютере B, где вызывающий процесс на A приостанавливается, и вызываемый процесс на B начинает выполнение, и когда значение возвращается к A, процесс A продолжается , Вызывающий может передать информацию вызываемому абоненту с помощью параметров, и затем информация может быть получена через возвращенный результат. Этот процесс прозрачен для разработчиков.Рисунок 1 – Процесс передачи дейтаграммы в простом RPCУдаленный вызов процедуры принимает режим клиент / сервер (C / S). Запрашивающая программа является клиентом, а поставщик услуг - сервером. Как и обычные или локальные вызовы процедур, вызовы удаленных процедур являются синхронными операциями, и запрашивающая программа должна быть временно приостановлена до возвращения результата удаленной процедуры. Процессы с низким энергопотреблением или потоки с низким энергопотреблением, которые используют одно и то же адресное пространство, позволяют одновременно выполнять несколько удаленных вызовов процедур.-
Основы RPC
-
Асимметричность, то есть одна из взаимодействующих сторон является инициатором; -
Синхронность, то есть выполнение вызывающей процедуры при останавливается с момента выдачи запроса и возобновляется только после возврата из вызываемой процедуры.
Кроме того, существует ряд проблем, связанных с неоднородностью языков программирования и операционных сред: структуры данных и структуры вызова процедур, поддерживаемые в каком-либо одном языке программирования, не поддерживаются точно так же во всех других языках. Эти и некоторые другие проблемы решает широко распространенная технология RPC, лежащая в основе многих распределенных операционных систем.
-
Базовые операции RPC
RPC достигает прозрачности следующим путем. Когда вызываемая процедура действительно является удаленной, в библиотеку помещается вместо локальной процедуры другая версия процедуры, называемая клиентским стабом (stub - заглушка). Подобно оригинальной процедуре, стаб вызывается с использованием вызывающей последовательности (как на рисунке 3.1), так же происходит прерывание при обращении к ядру. Только в отличие от оригинальной процедуры он не помещает параметры в регистры и не запрашивает у ядра данные, вместо этого он формирует сообщение для отправки ядру удаленной машины.
-
Этапы выполнения RPC
На стороне сервера поступающие биты помещаются принимающей аппаратурой либо во встроенный буфер, либо в оперативную память. Когда вся информация будет получена, генерируется прерывание. Обработчик прерывания проверяет правильность данных пакета и определяет, какому стабу следует их передать. Если ни один из стабов не ожидает этот пакет, обработчик должен либо поместить его в буфер, либо вообще отказаться от него. Если имеется ожидающий стаб, то сообщение копируется ему. Наконец, выполняется переключение контекстов, в результате чего восстанавливаются регистры и карта памяти, принимая те значения, которые они имели в момент, когда стаб сделал вызов receive. Теперь начинает работу серверный стаб. Он распаковывает параметры и помещает их соответствующим образом в стек. Когда все готово, выполняется вызов сервера. После выполнения процедуры сервер передает результаты клиенту. Для этого выполняются все описанные выше этапы, только в обратном порядке. Рисунок 3.3 показывает последовательность команд, которую необходимо выполнить для каждого RPC-вызова, а рисунок 3.4 - какая доля общего времени выполнения RPC тратится на выполнение каждого их описанных 14 этапов. Исследования были проведены на мультипроцессорной рабочей станции DEC Firefly, и, хотя наличие пяти процессоров обязательно повлияло на результаты измерений, приведенная на рисунке гистограмма дает общее представление о процессе выполнения RPC. Рис. 3.3. Этапы выполнения процедуры RPC Рис. 3.4. Распределение времени между 14 этапами выполнения RPC
| 1. Вызов стаба | 2. Подготовить буфер | 3. Упаковать параметры | 4. Заполнить поле заголовка |
| 5. Вычислить контрольную сумму в сообщении | 6. Прерывание к ядру | 7. Очередь пакета на выполнение | 8. Передача сообщения контроллеру по шине QBUS |
| 9. Время передачи по сети Ethernet | 10. Получить пакет от контроллера | 11. Процедура обработки прерывания | 12. Вычисление контрольной суммы |
| 12. Вычисление контрольной суммы | 13. Переключение контекста в пространство пользователя | 14. Выполнение серверного стаба | |