Шлюзы вызова применяются для фактического изменения уровней привилегий. Другое название шлюза – "вентиль".
Как системный объект, шлюз вызова имеет собственный дескриптор. В нем указан полный указатель – селектор:смещение – на точку входа в ту процедуру, которой шлюз передает управление. Сегмент кода или данных, к которому обращается программа через шлюз, не может быть изменен этой программой.
Правила пользования шлюзами:
Вообще при обращении через шлюз происходит генерация сегмента состояния задачи, после чего происходит переключение (вызов) на новую задачу как на новый процесс! Поэтому использование шлюза является более сложным способом вызова подпрограммы с другим уровнем привилегий. Подробнее об использовании шлюзов смотри [В.Л. Григорьев.].
| |