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

Аппаратная защита адресов памяти в системах с теговой архитектурой

Более радикальные меры для защиты памяти (и не только) предприняты в системах с теговой архитектурой - МВК "Эльбрус", Burroughs 5000/6700/7700 и др.

Как уже пояснялось, в такой компьютернойсистеме каждое слово памяти имееттег – информацию о типе данных, хранящемся в данном слове. Специальные теги имеют любые данные – например, числа (целые и вещественные), адреса, указатели на процедуры и др. Аппаратура при выполнении команды выполняет динамический контроль типов – проверяет, соответствуют ли теги операндов выполняемой операции. Если не соответствуют – прерывание.

Адрес в системе с теговой архитектурой представлен специальным адресным словом - дескриптором (descriptor). Кроме тега и собственно адреса начала адресуемого массива в памяти, дескриптор содержит такжедлину массива и 4 бита зашиты –от чтения, от записи, от выполнения иот записи адресной информации. Формирование и изменение дескриптора возможно толькосредствамиОС в привилегированном режиме. Пользовательская программа не может ни сформировать, ни изменить дескриптор и работает со своей областью памяти как с массивом, защищенным тегом и дескриптором, образовывая от него подмассивы и формируя их дескрипторы (такое действие разрешено). Допустимая операция над массивом -индексация a[i], в которой аппаратно проверяется, что индексi не выходит за границы массиваa. Таким образом, обращение в "чужую" область памяти в такой системе принципиально невозможно. Невозможна также адресная арифметика (в стиле C / C++), так как попытка выполнения арифметической операции над словом с тегомдескриптор приводит к немедленному прерыванию.

Кроме дескриптора, имеется также косвенное слово (indirect word) – тегированный адрес для обращения к элементу данных одной командой, непосредственно по адресу (без индексации). Для косвенных слов фактически выполняются те же аппаратные проверки, что и для дескрипторов.

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

Организация аппаратной защиты памяти и процессора

Прерывания по таймеру

При исполнении в привилегированном режиме ОС имеет неограниченный доступ, как к памяти монитора, так и к памяти пользователя. Команды записи значений в регистры base иlimit являются привилегированными.

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

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

Команда записи значения в таймер является привилегированной.

Соседние файлы в папке все лекции по ОС