Особенности вызова удаленной процедур для потоков

1) Использование специальной схемы локального вызова

a. При старте серверного потока С он экспортирует свой интерфейс в ядро (набор функций и список параметров для каждой – это и есть интерфейс)

b. Когда стартует клиентский поток К, который собирается вызвать С, он импортирует интерфейс из ядра и получает идентификатор вызова.

c. Ядро после страта клиента создает структуру данных для подготовки к вызову. В нее входит стек аргументов, разделяемый потоками КС и отображенный в оба адресных пространства для чтения и записи.

d. При вызове Клиент помещает аргумент в разделяемый стек, а идентификатор в регистр и выполняет прерывание Хеадоу

e. По идентификатору ядро определяет что вызов локальный и запускает поток Сервера. (аргумент уже загружен, перегруппировка не нужна)

2) Неявный вызов

a. При поступлении на сервер нового сообщения для него создается новый обслуживающий поток, а не снимается с группировки старый. После выполнения запроса поток уничтожается.


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



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