- •Билет 1 Принцип построения пэвм
- •Билет 13 Преобразование логического адреса в физический при включённой страничной адресации
- •Билет 14 Управление клавиатурой через порты
- •Билет 15 Привилегии и защита программ
- •Билет 16 Дескрипторы сегментных регистров
- •Билет 18 Таблица дескрипторов idt
- •Билет 20 Характеристики vga адаптеров
- •Билет 21 Пять компонентов защиты (см 15-1)
- •Билет 22 Классы приоритетов
- •Билет 23 Управление выводом данных на принтер
- •Билет 24 Физические и логические адреса, стек и зарезервированные области памяти
- •Билет 25 Защищённый режим
- •Билет 26 Привилегии ввода/вывода
- •Билет 27 Байт прав доступа, его структура для дескрипторов различного типа
Билет 18 Таблица дескрипторов idt
В защищенном режиме МП 80286 и МП 80386 используется еще и третья дескрипторная таблица – таблица дескрипторов прерываний - IDT (рис), рассчитанная для хранения 256 дескрипторов. Она может состоять только из дескрипторов шлюза задачи, шлюза прерываний и шлюза ловушек. Таблица дескрипторов прерываний имеет в CPU 24-разрядный (МП 80286) или 32-разрядный (МП 80386) регистр физической базы и 16-разрядный регистр предела (длины) таблицы - IDTR. Привилегированная команда LIDT загружает регистр IDTR шестибайтовым значением так, как показано на рис (идентично команде LGDT).
Обращение к элементам IDT происходит через команды INT, векторы внешних прерываний или исключительных ситуаций. Для резервирования входов в обработчики всех прерываний IDT должна иметь размер 256*8 байт.
CPU Память, таблица
┌───────────────────────┐ дескрипторов прерываний (IDT)
│ │ ┌─├──────────────┤
│ 15 IDTR 0 │ │ │ Шлюз для │
│ ┌─────────────┐│ │ │прерывания n │
│ │ ├──>│ ├──────────────┤
│ │ Предел IDT ││ │ │ Шлюз для │
│┌───────┴─────────────┤│ │ │прерывания n-1│
││База IDT. 24-разряд- ││ │ ├──────────────┤
││ный или 32-разрядный ││ │ │ │
││физический адрес ├──┐│ │ . . . │
│└─────────────────────┘│ ││ │ │
│ 23(31) 0 │ ││ ├──────────────┤/\
│ │ ││ │ Шлюз для │││ Направление
│ │ ││ │прерывания 1 │││ увеличения
│ │ ││ ├──────────────┤││ адресов
│ │ ││ │ Шлюз для │││ памяти
└───────────────────────┘ ││ │прерывания 0 │││
└┴>├──────────────┤
Рис. 3.32. Определение таблицы дескрипторов прерываний
Команда LIDT может использоваться для загрузки базы таблицы векторов прерываний и в реальном режиме работы. После включения питания машины база таблицы IDT принимает нулевое значение и длину 3FFh.
Интерфейс Multi BUS 1
Билет 19 Дескриптор шлюзов (S=0, тип=4-7, С, F)
Дескрипторы шлюзов - это одна из форм системного дескриптора, используемая для обращения к данным, находящимся на уровне привилегий, отличном от текущего. Формат дескриптора шлюза показан на рис.
Разряды 63-48 в МП 80286 - резерв, должны быть равны нулю
┌───────────────────^────────────────────┐
7 0 7 0
┌───────────────────┬────────────────────┐
│ Смещение 31-16 │+6
├───┬───┬──┬────────┼─┬─┬─┬──────────────┤
│ P │DPL│ S│ Тип │0│0│0│ Счетчик 4-0 │+4
├───┴─┴─┴──┴─┴─┴─┴──┼─┴─┴─┴──────────────┤
│ Селектор сегмента назначения 15-0 │+2
├───────────────────┼────────────────────┤
│ Смещение 15-0 │0
└───────────────────┴────────────────────┘
15 8 7 0
Рис. 3.36. Формат дескриптора шлюза
Распределение полей дескриптора шлюза приведено в табл
┌───────┬────────────┬────────────────────────────────────────────────────┐
│ Имя │ Значение │ Описание │
│ поля │ │ │
├───────┼────────────┼────────────────────────────────────────────────────┤
│Тип │ 4 │ Шлюз вызова МП 80286 │
│Тип │ 5 │ Шлюз задачи (для задач МП 80286 или МП 80386) │
│Тип │ 6 │ Шлюз прерывания МП 80286 │
│Тип │ 7 │ Шлюз ловушки МП 80286 │
│Тип │ С │ Шлюз вызова МП 80386 │
│Тип │ Е │ Шлюз прерывания МП 80386 │
│Тип │ F │ Шлюз ловушки МП 80386 │
├───────┼────────────┼────────────────────────────────────────────────────┤
│Р │ 0 │ Содержимое сегмента не доступно (нет в памяти) │
│Р │ 1 │ Содержимое сегмента доступно (находится в памяти) │
├───────┴────────────┴────────────────────────────────────────────────────┤
│DPL - наименее привилегированный уровень, на котором задаче может быть │
│ доступен шлюз │
├─────────────────────────────────────────────────────────────────────────┤
│Счетчик - количество параметров, копируемых из стека вызывающей задачи в │
│ стек вызываемой процедуры. Размерность параметров - 32 бит для │
│ МП 80386 и 16 бит для МП 80286. См. главу "Многозадачность" │
├─────────────────────────────────────────────────────────────────────────┤
│Селектор - селектор кодового сегмента места назначения для │
│сегмента шлюза вызова, прерывания, ловушки или │
│назначения селектор сегмента состояния задачи места назначения │
│ (16-разрядный селектор) │
├─────────────────────────────────────────────────────────────────────────┤
│Смещение - точка входа внутри кодового сегмента места │
│назначения назначения (размерность 16 бит для МП 80286 и 32 │
│ бит для МП 80386) │
└─────────────────────────────────────────────────────────────────────────┘
Основное различие между дескрипторами МП 80286 и дескрипторами МП 80386 состоит в интерпретации поля счетчика слов шлюза вызовов и поля D/В дескриптора сегмента назначения. Поле счетчика слов определяет количество 16-разрядных копий для шлюза вызова МП 80286 и 32-разрядных копий для шлюза вызова МП 80386. Поле D управляет размером операндов, сохраняемых при использовании шлюза вызовов. Если D=0, сохраняются 16-разрядные слова, если D=1, сохраняются 32-разрядные двойные слова.
Интерфейс Multi BUS 2