Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал / ZIBBEN-I.doc
Скачиваний:
59
Добавлен:
30.04.2013
Размер:
1.04 Mб
Скачать

20.Прерывания в защищенном режиме работы процессора. Interrupt Gate и Trap Gate.

В защищенном режиме различают прерывания и исключения. Прер-е асинхронное событие, активизируемое по сигналу от внеш. устр-ва(аппаратное прер-е в реальном режиме).

Исключение – синхронное событие, к-рое явл. ответами(реакциями) проц-ра на возникноение нек-рой ситуации во время вып-я команды.

Прер-е и исключ-е имеют похожий механизм обработки. Прер-е и исключ. отличаются источником сигнала.

Сущ-ет 2 источника для прер-я и 2 источ. для исключений.

Источники прер-я:

1. Маскируемое прер-е(м.б. разрешены или запрещены флагом прер-ний (IF) или по отдельности в р-ре маски

2. Немаскируемое прер-е.

Источники исключений:

1. Исключ-я обнаруживаемые пр-ром(логические прер-я в реальном режиме).

Они классифицируются как:

- сбой(ошибка)

- ловушка

- аварийное завершение

2. Программируемое исключ-е.

Вызыв-ся командами из пр-мы

int n, где n – номер прер-я.

into

int 3

bound

Хотя прер-я с номером n, пр-ма м. вып-ть посредством команды int, проц-сор рассм-ет такое прер-е как исключение.

- сбой – исключение, сообщение о к-ром выдается на границе команды, предшествующей команде, вызвавшей это исключение. Адрес возврата указ-ет на команду, приведшую к сбою, после вып-я обработчика происх. рестарт команды.

- ловушка – исключ-е, сообщение о к-ром выдается на границу команды след-щей после команды, вызвавшей исключение. Адрес указ-ет на след. команду

- аварийное завершение – не всегда формир-ся адрес команды, вызвавшей исключ-е. Оно исп-ся для сообщения о тяжелых ошибках.

Прер-я 0-10h – прер-е исключения стандартного типа.

11h-20h – зарезервированные аппаратно

21h-FF – двух байтовые прер-я

Таблица дескрипторов прерыв-й(IDT)

Содержат дескрипторы обработчиков. Номер прер-я явл. индексом. Табл. м. нах-ся в любом месте физич. памяти.

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

Начальное знач-е IDTR = 0, но в р-р м. занести друг. значение, тем самым разместить таблицу векторов прер-я в другом месте ОП.

Дескрипторы прер-ний(эл-ты IDT) делятся на 3 типа:

1.Interrupt Gate(шлюз прер-я)

2.Trap Gate(шлюз ловушки)

3.Task Gate(шлюз задачи)

Interrupt и Trap Gate вызывают вып-ние обработки прер-я под контролем текущей задачи.

Task Gate вызыв. полное переключение на новую задачу со сменой всего контекста

Разница м/д Interrupt и Trap Gate: во время действия обработчика Interrupt прерыв-я запрещены, а для Trap разрешены.

Обработка прерываний в контексте текущей задачи.

По номеру прер-я нах-ся дескриптор IDT, анализир-ся тип дескриптора, и если это Interrupt или Trap Gate вып-ся след. действия:

В стек на уровне привилегии текущ. сегмента кода помещ-ся р-ры SS и SP, если уровень привилегий шлюза выше уровня привилегий текущего кода. След-щим в стек помещ-ся р-р флагов EFLAGS, а потом р-ры указ-ля ком-д. Для шлюза прер-я запрещ-ся прер-е (флаг сбрасыв-ся), для шлюза – ловушки – нет. Селектор из дескр. прер-ний индексирует лок. дескриптор табл.(IDTR), базовый адрес опр-ет сегмент обработчика памяти, а смещение берется…

Соседние файлы в папке Материал