ВУЗ:
Составители:
5
сия процедуры , называемая клиентским стабом . Задача заглушки – принять ар -
гументы , предназначаемые удаленной процедуре, преобразовать их в некий
стандартный формат и сформировать сетевой запрос. Упаковка аргументов и
создание сетевого запроса называется сборкой (marshalling).
После того , как сообщение готово к передаче, выполняется прерывание по
вызову ядра операционной системы. Когда ядро получает управление, оно пе-
реключает контексты , сохраняет регистры процессора и карту памяти (дескрип-
торы страниц), устанавливает новую карту памяти, которая будет использо-
ваться для работы в режиме ядра. Поскольку контексты ядра и пользователя
различаются , ядро должно точно скопировать сообщение в свое собственное
адресное пространство , так , чтобы иметь к нему доступ, запомнить адрес на-
значения (а, возможно, и другие поля заголовка), а также оно должно передать
его сетевому интерфейсу . На этом завершается работа на клиентской стороне.
Включается таймер передачи, и ядро может либо выполнять циклический опрос
наличия ответа, либо передать управление планировщику, который выберет ка-
кой -либо другой процесс на выполнение. В первом случае ускоряется выполне-
ние запроса, но отсутствует мультипрограммирование.
На стороне сервера поступающие биты помещаются принимающей аппа-
ратурой либо во встроенный буфер , либо в оперативную память. Когда вся ин-
формация будет получена, генерируется прерывание. Обработчик прерывания
проверяет правильность данных пакета и определяет, какому стабу следует их
передать. Если ни один из стабов не ожидает этот пакет, обработчик должен
либо поместить его в буфер , либо вообще отказаться от него . Если имеется
ожидающий стаб, то сообщение копируется ему. Наконец, выполняется пере-
ключение контекстов, в результате чего восстанавливаются регистры и карта
памяти, принимая те значения, которые они имели в момент, когда стаб сделал
системный вызов receive для перехода в режим ожидания приема сообщения.
Рис. 1. Взаимодействие программных компонентов
Клиент- машина
Сервер - машина
Стаб
клиента
Процесс-
клиент
Ядро клиента
Стаб
сервера
Процедура
Ядро сервера
сообщение- вызов
сообщение- результат
вызов
результат
вызов
результат
5
сия процедуры, называемая клиентским стабом. Задача заглушки – принять ар-
гументы, предназначаемые удаленной процедуре, преобразовать их в некий
стандартный формат и сформировать сетевой запрос. Упаковка аргументов и
создание сетевого запроса называется сборкой (marshalling).
После того, как сообщение готово к передаче, выполняется прерывание по
вызову ядра операционной системы. Когда ядро получает управление, оно пе-
реключает контексты, сохраняет регистры процессора и карту памяти (дескрип-
торы страниц), устанавливает новую карту памяти, которая будет использо-
ваться для работы в режиме ядра. Поскольку контексты ядра и пользователя
различаются, ядро должно точно скопировать сообщение в свое собственное
адресное пространство, так, чтобы иметь к нему доступ, запомнить адрес на-
значения (а, возможно, и другие поля заголовка), а также оно должно передать
его сетевому интерфейсу. На этом завершается работа на клиентской стороне.
Включается таймер передачи, и ядро может либо выполнять циклический опрос
наличия ответа, либо передать управление планировщику, который выберет ка-
кой-либо другой процесс на выполнение. В первом случае ускоряется выполне-
ние запроса, но отсутствует мультипрограммирование.
Клиент-машина Сервер-машина
вызов вызов
Процесс- Стаб Стаб
клиент Процедура
клиента сервера
результат
результат
Ядро клиента Ядро сервера
сообщение-вызов
сообщение-результат
Рис. 1. Взаимодействие программных компонентов
На стороне сервера поступающие биты помещаются принимающей аппа-
ратурой либо во встроенный буфер, либо в оперативную память. Когда вся ин-
формация будет получена, генерируется прерывание. Обработчик прерывания
проверяет правильность данных пакета и определяет, какому стабу следует их
передать. Если ни один из стабов не ожидает этот пакет, обработчик должен
либо поместить его в буфер, либо вообще отказаться от него. Если имеется
ожидающий стаб, то сообщение копируется ему. Наконец, выполняется пере-
ключение контекстов, в результате чего восстанавливаются регистры и карта
памяти, принимая те значения, которые они имели в момент, когда стаб сделал
системный вызов receive для перехода в режим ожидания приема сообщения.
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »
