Особенности вызова удаленной процедур для потоков
1) Использование специальной схемы локального вызова
a. При старте серверного потока С он экспортирует свой интерфейс в ядро (набор функций и список параметров для каждой – это и есть интерфейс)
b. Когда стартует клиентский поток К, который собирается вызвать С, он импортирует интерфейс из ядра и получает идентификатор вызова.
c. Ядро после страта клиента создает структуру данных для подготовки к вызову. В нее входит стек аргументов, разделяемый потоками КС и отображенный в оба адресных пространства для чтения и записи.
d. При вызове Клиент помещает аргумент в разделяемый стек, а идентификатор в регистр и выполняет прерывание Хеадоу
e. По идентификатору ядро определяет что вызов локальный и запускает поток Сервера. (аргумент уже загружен, перегруппировка не нужна)
2) Неявный вызов
a. При поступлении на сервер нового сообщения для него создается новый обслуживающий поток, а не снимается с группировки старый. После выполнения запроса поток уничтожается.