Память


E.4.2.1. Подчиненные сегменты кода.


Предположим [В.Л. Григорьев, - т. 1 стр. 111] в системе имеется сегмент кода для преобразования двоичных целых чисел в коды ASCII. Ее должны использовать программы со всеми уровнями привилегий. Чтобы ее можно было вызвать из ядра операционной системы, она должна иметь уровень привилегий 0. Для того же, чтобы указать, что данный сегмент должен использоваться программами с другими уровнями привилегий, необходимо установит бит 2 (C - Conforming) в байте прав доступа AR дескриптора сегментов.

На подчиненные сегменты накладываются следующие ограничения:

1. Подчиненные сегменты не должны использовать привилегированные команды.

2. "Подчиненная" процедура должна иметь достаточные привилегии для обращения к своему параметру и возвращения результата.

3. Значение уровня привилегий дескриптора подчиненного кода должно быть меньше или равно текущему значению уровня привилегий программы. Это значит, что подчиненный код должен иметь большее или хотя бы равные привилегии, чем уровень привилегий сегмента вызывающей программы.

4. В подчиненных сегментах не разрешается передавать управление другим подчиненным сегментам.

Подчиненные сегменты кода широко используются при создании разделяемых библиотек.

Содержание раздела