Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 1 по 294.doc
Скачиваний:
13
Добавлен:
16.04.2019
Размер:
6.2 Mб
Скачать

3.4. Защита памяти

3.4.1. Зачем нужна защита?

Цель механизмов защиты -обеспечить обнаружение и распознавание ошибок в програм­мах. Обычно МП поддерживает прикладные системы, которые могут содержать сотни и тыся­чи программных модулей. Для таких систем важна возможность обнаруживать ошибки, причем < как можно быстрее, и сводить к минимуму ущерб от таких ошибок. Для быстрой отладки прикладных программ и для более надежного их выполнения современные МП имеют механизмы проверки обращений к памяти и выполнения инструкций (команд) на соответствие критериям защиты. Эти механизмы могут быть проигнорированы в реальных проектах систем.

3.4.2. ОБЗОР МЕХАНИЗМОВ ЗАЩИТЫ

Защита в современных МП ВС имеет 5 аспектов:

1) проверка типа;

2) проверка границы (предела);

3) ограничение адресуемой области; 4) ограничение точек входа в процедуру; 5) ограничение набора команд.

Аппаратура защиты МП является неотъемлемой частью аппаратуры управления памя­тью. Защита применяется как при сегментной, так и при страничной трансляции. Каждое обращение к памяти проверяется аппаратурой на предмет удовлетворения критерию за­щиты. Все эти проверки делаются до начала цикла обращения к памяти. Любое противоре­чие предотвращает начало цикла и вырабатывает исключение. В данной главе говорится только о том, какие нарушения приводят к исключениям.

Концепция «привилегий» является центральной для нескольких аспектов защиты (аспекты 3, 4, 5 вышеприведенного перечня). Эта концепция используется как при защите сегментов, так и при защите страниц.

3.4.3. УРОВЕНЬ ЗАЩИТЫ СЕГМЕНТОВ

Все пять аспектов защиты используются при сегментной трансляции:

  1. проверка типа;

  2. проверка границы;

  3. . 3) ограничение адресуемой области

  1. ограничение точек входа в процедуру

ограничение набора команд. Сегмент с позиций защиты - это единица защиты, а дескрипторы сегментов хранят параметры защиты. Проверка защиты выполняется ЦП автоматически в момент загрузки селектора дескриптора сегмента в сегментный регистр и при каждом обращении к сегмен­ту. Сегментные регистры хранят параметры защиты текущих сегментов (сегменты текуще­го, выполняемого процесса).

Сохраняемые параметры защиты в дескрипторах. На рис. 3.24 показаны поля дес­крипторов сегментов, имеющие отношение к защите сегментов.

Параметры защиты помещаются в дескриптор операционной системой в момент со­здания дескриптора. Обычно программисты-прикладники не имеют дело с параметрами защиты.

Когда программа загружает селектор в сегментный регистр, процессор загружает не только базовый адрес сегмента, но и информацию, связанную с защитой. Каждый сегмен­тный регистр имеет «скрытую»1 часть, в которой сохраняются: база сегмента, предел сег­мента, тип и уровень привилегий; поэтому последовательные проверки защиты при обра­щении к одному и тому же сегменту не связаны с затратой дополнительных тактов.

Проверка типа. Поле «тип дескриптора» имеет две функции: