Управление процессами СОС

Передача сообщений в распределенных системах

Типы сообщений:

1. Блокирующие/не блокирующие

2. Буферизируемые/не буферизируемые

3. Надежные/не надежные

Способы адресации:

1. Использование адресов сетевых адаптеров

2. Использование имен назначения, состоящих из номера машины и номера процесса

3. Назначение каждому процессу уникального адреса, не связанного с адресом машины

3.1. Использование централизованного механизма распределения адресов

3.2. Разрешение каждому процессу выбора идентификатора из большого адресного пространства

4. Использование специальной аппаратуры. Процессы выбирают адреса случайно, а конструкция сетевых адаптеров позволяет их хранить и использовать в передаче кадров.


Удаленный доступ процедур (RPC-Remote Procedure Call)

Особенности вызова в распределенных системах:

1. Вызывающие и вызываемые процедуры имеют разное адресное пространство

2. Параметры вызова не должны содержать указатели

3. Использование нижележащей системы связей

4. Сложности при аварийном завершении одного из участников

5. Неоднородность языков программирования и операционных сред

Этапы выполнения вызова удаленных процедур

  Клиент Сервер  
Клиент Вызов стаб-процедуры (заглушка) Выполнить работу Сервер
Стаб клиента Подготовить буфер упорядочить параметры Добавить поля заголовка Выполнить прерывание Вызвать сервер Поместить параметры в стек Распаковать параметры Серверный стаб
Ядро Переключение на контекст ядра Копирование сообщения в ядро Определить адрес назначения Установка интерфейса Включить таймер Переключиться на контекст стаба Копировать сообщение в стаб Определить ожидается ли пакет Определить стаб (кому) Проверить пакет Прервать процесс Ядро

Стаб-процедура заменяет локальный вызов, не помещая параметры в регистры, а вызывает нижележащую систему связи, формирует сообщение удаленному процессу. Выделяется серверный и клиентский стаб.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: