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