- •1 Ответ
- •2 Ответ Структура управляемой системы реального времени
- •3 Ответ
- •1) Принцип модульности
- •4) Принцип функциональной избыточности
- •6) Принцип совместимости
- •7) Принцип открытой и наращиваемой ос
- •4 Билет
- •5 И 6 билет
- •7 Билет
- •8 Билет Прерывание в защищённом режиме
- •9 Билет
- •10 Билет Страничная трансляция
- •11 Билет
- •12 Билет
- •13 Билет
- •14 Билет
- •15 Билет
- •16 Билет
- •17 Билет
- •18 Билет
- •30. 2.7. Семафоры
- •19 Билет
- •34. Синхронизация через диспетчеризующий механизм
- •20 Билет
- •21 Билет
- •22 Билет
- •23 Билет . Организация взаимодействия между процессами
- •Создание и удаление каналов Создание канала
- •Удаление канала
- •Установление и удаление соединений с каналом Установление соединения
- •Разрыв соединения
- •24 Билет
- •25 Билет
- •26 Билет
- •27 Билет
- •28 Билет
- •29 Билет
- •30 Билет
- •31 Билет
- •32 Билет
- •33 Билет
- •Int flags, // флаги, определяющие область действия тайм-аута
- •34 Билет
- •35 Билет
- •36 Билет
- •37 Билет
- •38 Билет
- •39 Билет
- •40 Билет
- •41 Билет
- •Именование в qnx
- •43 Билет
- •44 Билет
- •45 Билет
- •Устройства с последовательным интерфейсом
- •46 Билет
8 Билет Прерывание в защищённом режиме
Реальный режим
1024 |
|
|
|
|
таблица |
|
|
|
|
векторов |
|
|
|
|
|
|
|
|
|
|
|
|
IP |
2 байта Программный доступ |
|
|
|
CS |
2 байта |
n |
|
|
|
Int n – номер ячейки |
0 |
|
|
|
|
Прерывания в стеке. SS:SP
|
FLAGS |
|
IP |
|
CS |
Команда IRET предназначена для возврата процедуры обработки прерываний.
Когда выполняется команда IRET, процессор проверяет привилегии селектора сегмента программы, выбираемого из стека (то есть селектора сегмента, которому будет передано управление при выполнении команды IRET). Процессор может выполнить возврат только в менее привилегированный сегмент или в сегмент, обладающий такими же привилегиями, что и тот, из которого выполняется возврат.
Аппаратный доступ: через контроллер прерываний
Существует всего шестнадцать прерываний, обозначаемых IRQ0-IRQ15.
В конце IRET для завершения прерываний.
Команда OUT – сброс значения контроллера (IRQ)
Бит IF определяет допустимость обработки прерывания.
STI, CLI – устанавливает и сбрасывает флаг прерываний
В защищённом режиме схема адресации памяти другая
Защищённый режим
IDT |
|
IDTR |
- позиция |
|||||||
|
|
|
|
|
||||||
|
|
|
|
24 |
||||||
|
|
|
|
|
||||||
|
|
|
Резерв |
Доступ |
|
CS |
IP |
|||
|
|
|
|
|
|
16 |
||||
|
|
|
|
|
Физический
адрес
+
|
|||||
0 |
|
|
|
|
GDT |
|
|
|||
Таблица дескрипторов вместо таблицы векторов
Дескриптор специального типа (тип 6 и 7)
В защищённом режиме все прерывания разделяются на два типа - обычные прерывания (программные и аппаратные) и особые случаи, или исключения (exception) (все прерывания механизмов защиты)
Таблица прерываний защищённого режима называется дескрипторной таблицей прерываний IDT (Interrupt Descriptor Table). Также как и таблицы GDT и LDT, таблица IDT содержит 8-байтовые дескрипторы. Причём это системные дескрипторы – вентили прерываний, исключений и задач. Поле TYPE вентиля прерывания содержит значение 6, а вентиля исключения - значение 7.
|
P |
|
0 |
0 |
1 |
1 |
0 |
Поле доступа вентиля прерываний |
|
7 |
6 5 |
4 |
3 |
2 |
1 |
0 |
|
|
P |
D P L |
0 |
0 |
1 |
1 |
1 |
Поле доступа вентиля исключения |
После срабатывания IRET мы возвращаемся в тот сегмент, из которого мы перешли в программу. Нельзя забывать про уровни привилегий. В случае возврата в более низкий уровень будет ошибка.
В защищённом режиме в случае ошибки, останавливается выполнение только отдельного процесса. В реальном режиме защиты не существует и зависает всё.
Защищённый режим в отношении обработок прерываний отличается от реального
1) Повторная входимость
2) Локализация ошибок
|
|
|
|
|
|
|
|
|
|
|
n + 2 |
|
|
|
|
n + 1 |
стек |
|
|
событие |
|
|
|
Повторная входимость |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Локализация
ошибок
|
Error code |
I |
TI |
Ext |
В стеке SS:SP |
FLAGS |
|||
I=1 IDT 0 – GDT |
CS |
|||
|
PC |
|||
Ext – внешняя ошибка по отношению к выполняемой программе

4
байта
8
байт
D
P L
n
I=0
TI 1 – LDT