Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
os2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
247.81 Кб
Скачать

2.5. Процедуры ос

Процедуры ОС - это средство синхронной передачи управления, которое приводит к перестановке контекста процессора. По своему внешнему виду вызов процедуры ОС очень похож на вызов обычной процедуры в программе.

Отличие процедуры ОС от обычной процедуры состоит в более глубокой модификации контекста.

Процедуры операционной системы – это процедуры с более высоким приоритетом, чем пользовательские.

Ранее рассматривали примитивы - базовые операции некоторого логического уровня среды, предоставляемые вышележащему уровню. Вызов такого примитива с этого вышележащего уровня и есть вызов процедуры ОС.

Пример. Вызов write(a) внешне очень похож на вызов обычной процедуры. Однако, это не обычный вызов, т. к. в нем идет обращение к функциям ОС.

Пример 2 обращения к процедуре ОС - вызов функции int 21h в ДОС.

Как и в обычных процедурах создается некоторый протокол передачи параметров в процедуры ОС, например, в рабочих регистрах передается номер запрашиваемых действий.

Процедуры ОС обычно предоставляются пользователю как уже готовые в форме API - интерфейса прикладного программирования.

Вопрос (

Отличия процедур ОС от обычных процедур состоят в следующем:

  1. на входе в такую процедуру осуществляется проверка прав пользователя на ее вызов;

  2. контекст переносится в область памяти, недоступную пользователю;

  3. после выполнения процедуры возврат не всегда осуществляется в точку вызова.

)Вопрос

Вызовы процедур ОС в форме API можно трактовать как расширения языка программирования, но только более аппаратно-зависимые.

Как осуществлять с низкоприоритетного уровня вызов процедуры более высокого уровня приоритета? Для этого архитектура защищенного режима опять предоставляет специальное средство, называемое коммутатор или шлюз. Вспомним, что обращение к памяти в защищенном режиме осуществляется через дескрипторы, находящиеся в специальной таблице. Вместо адреса памяти в инструкцию помещается селектор – адрес дескриптора.

Вопрос (

Селектор содержит поле RPL - запрашиваемый уровень привилегий.

Смещение в таблице дескрипторов

RPL

опрос

Дескриптор содержит поле DPL - уровень привилегий дескриптора. Если при запросе RPL = DPL, то запрос будет обслужен. Дескрипторы задач ОС - это дескрипторы с большим уровнем привилегий DPL, чем уровень RPL запросов пользователя.

Поэтому для согласования уровней существует специальное средство - шлюз.

Шлюз - это специальный дескриптор с уровнем привилегий DPL, низким, равным пользовательскому уровню, но содержащий в поле адреса новый селектор с уровнем RPL, более высоким, чем уровень пользователя. А этот новый селектор содержит RPL, соответствующий уровню привилегий дескриптора, указывающего на процедуру ОС.

Вопрос (

RPL - запрашиваемый уровень привилегий

DPL - уровень привилегий дескриптора

)Вопрос

Вопрос (

Группа 1

Селектор пользователя с уровнем привилегий 2 обращается к шлюзу, имеющему уровень привилегий 2, но содержащему селектор с уровнем привилегий 1

Прямая соединительная линия 44 Прямая со стрелкой 45

)Вопрос

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]