Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВМиС - бывшее АПЭВМ / Шпоргалка_apevm.doc
Скачиваний:
32
Добавлен:
15.09.2014
Размер:
146.94 Кб
Скачать

Билет 15 Привилегии и защита программ

МП 80x86 имеет четыре уровня защиты привилегий для изоляции программ пользователя друг от друга и каждой из них от операционной системы в многозадачной среде.

МП 80386/80286 управляют межуровневым доступом к данным и процедурам согласно следующим правилам:

1) данные, хранящиеся в сегменте с уровнем привилегий р, могут быть доступны только при выполнении команд с такими же или меньшими привилегиями, чем р;

2) кодовый сегмент с уровнем привилегий р может быть вызван задачей, выполняемой на том же самом уровне или более привилегированном, чем р.

Отметим, что при работе с МП 80386 нужно иметь в виду, что под сегментами данных, кроме сегментов DS и ES, которые присутствуют и в МП 80286, понимаются все сегменты данных МП 80386, а именно: DS, ES, FS, GS.

Поэтому все правила работы с сегментами данных на различных уровнях привилегий распространяются и на сегменты FS, GS. Кроме того, МП 80386 предоставляет дополнительный тип защиты на базе страничной организации (при условии разрешенного к ней доступа).

Защита МП 80386/80286 включает в себя пять компонентов: 1) контроль типа дескриптора сегмента; 2) контроль границ (предела); 3) ограничение области адресуемости; 4) ограничение процедуры точек входа; 5) ограничение набора команд.

Аппаратура защиты МП 80386 - общая для обоих способов управления памятью, т.е. защита действует как при преобразовании сегмента, так и при преобразовании страниц.

Как в МП 80286, так и в МП 80386 каждое обращение к памяти контролируется для выяснения, удовлетворяет ли оно критерию защиты. Весь контроль происходит перед началом выполнения команды, а любое нарушение защиты приводит к его завершению и к прерыванию по исключительной ситуации. Благодаря тому, что контроль производится одновременно с формированием адреса, он позволяет исключить возможность возникновения непредсказуемых последствий в дальнейшем.

Работа с клавиатурой через функции BIOS

Обработка клавиатуры с помощью INT 16h является основным методом чтения данных с клавиатуры и определения ее статуса в прикладных программах. INT16h предоставляет пользователю следующие подфункции.

00h Чтение данных с клавиатуры с ожиданием нажатия.

01h Проверка клавиатуры

02h Прочитать статус сдвигов (Alt, Shift, Ctrl, Scroll, Num, Caps, Insert)

03h Установка скорости генерации символов повтора и паузы

05h Записать символ в буфер клавиатуры

10h Чтение данных с клавиатуры с ожиданием нажатия (для 101-клавишной клавиатуры)

11h Проверка клавиатуры (для 101-клавишной клавиатуры)

12h Прочитать статус сдвигов (для 101-клавишной клавиатуры)

Билет 16 Дескрипторы сегментных регистров

Содержимое кэш-памяти дескрипторов сегментов существенно зависит от того, в каком режиме работает МП 80386. Для совместимости с МП 8086 база определяет текущее значение селектора 16-разрядным, предел фиксируется равным 0000FFFFh и атрибуты устанавливаются так, как будто они указывают на полностью доступный присутствующий в памяти сегмент. В реальном режиме внутренний "уровень привилегий" всегда зафиксирован на самом высоком уровне (0), чтобы команды ввода-вывода и другие привилегированные команды могли быть выполнены.

В защищенном режиме каждое из этих полей определяется согласно содержимому дескриптора сегмента, указанного селектором, загруженным в сегментный регистр. Обновление содержимого кэш-памяти дескрипторов происходит во время загрузки селектора в сегментный регистр. Заметим, однако, что сегмент должен находится в памяти (т.е. разряд присутствия Р=1), для того чтобы избежать исключительных ситуаций 11 или 12 для SS. Сегментный регистр стека должен быть "читаемым" и "записываемым", чтобы не возникла исключительная ситуация 13.

КЕШ – память

Билет 17 Таблица начальных и глобальных дескрипторов

Две таблицы дескрипторов, называемых дескрипторными таблицами (рис3.30), содержат все типы дескрипторов, доступных задаче. Дескрипторные таблицы содержат до 8192 дескрипторов. Старшие 13 рарядов селектора сегмента представляют собой индекс дескрипторной таблицы. Каждая таблица имеет в CPU 24-разрядный (МП 80286) или 32-разрядный (МП 80386) регистр указателя базы для размещения дескрипторной таблицы в физической памяти и 16-разрядный регистр указателя предела, ограничивающий доступ к дескрипторам в отведенных таблице границах. При попытке обращения к дескриптору, находящемуся за пределами, отведенными таблице, происходит прерывание по исключительной ситуации 13.

Одна таблица, под названием "Таблица глобальных дескрипторов" (GDT), содержит дескрипторы, доступные всем задачам. Другая таблица, под названием "Локальная дескрипторная таблица" (LDT), содержит дескрипторы, принадлежащие отдельной задаче. Каждая задача может иметь свою собственную (частную) LDT. GDT может содержать все типы дескрипторов за исключением дескрипторов прерываний и ловушек. LDT может содержать только дескрипторы сегментов, шлюзов задач и шлюзов вызовов. Сегмент не может быть доступен задаче, если при обращении к сегменту дескриптор сегмента не находится в одной из дескрипторных таблиц.

Команды LGDT и LLDT загружают базу и пределы глобальной или локальной дескрипторных таблиц в регистры GDTR и LDTR соответственно. LGDT и LLDT являются привилегированными командами, то есть они могут выполнять необходимые операции только на нулевом уровне. Команда LGDT загружает шестибайтовоее значение дескриптора, содержащее 16-разрядный предел, и 24-разрядный (МП 80286) или 32-разрядный (МП 80386) физический базовый адрес глобальной таблицы дескрипторов из памяти в регистр GDTR. Команда LLDT загружает селектор локальной дескрипторной таблицы в регистр локальной дескрипторной таблицы (LDTR).

CGA адаптер

Основным функциональным узлом адаптера является контроллер CRT, который как и MDA реализован на БИС Motorola 6845 или совместимом контроллере. BIOS CGA находится в системной ROM на материнской плате (не устанавливается на адаптерной плате). Адаптер содержит 16Кб видеопамяти и формирует цифровой сигнал для работы с цветным дисплеем. Контроллер 6845 содержит индексный регистр 3D4 для программирования регистров по адресу 3D5.