Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPS_2015.docx
Скачиваний:
442
Добавлен:
11.05.2015
Размер:
2.07 Mб
Скачать

41.Защита памяти в микропроцессорах: механизмы защиты, концепция привилегий.

Механизмы защиты памяти

В программе, как правило, имеются ошибки. Реальные МПС могут содержать большое число (сотни и тысячи) программных модулей. Поэтому важна возможность обнаруживать ошибки и сводить к минимуму ущерб от них. Цель механизмов защиты – обеспечить обнаружениеи распознавание ошибок в программах. Для отладки программ и более надежного их выполнения современные МП имеют механизмы проверки обращений к памяти и выполнения команд на соответствие критериям защиты. Защита в универсальных МП предусматривает различные виды контроля:

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

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

Механизмы защита памяти реализуются устройством управления памятью.

Защита памяти может применяться как науровне сегментов, так и науровне страниц. Наиболее естественно механизмы защиты памяти реализуются на уровне сегментов.

Сегмент с позиции защиты – это единица защиты. В дескрипторе сегмента кроме базового адреса сегментауказываются размер и атрибуты сегмента, описывающие свойства (тип) сегмента. Каждое обращениек памяти проверяется УУПна предмет удовлетворения критериям защиты. Все проверки делаются до начала цикла обращения к памяти.Любое несоответствие предотвращает начало цикла и вырабатывает специальное прерывание.

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

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

42.Поддержка операционной системы в микропроцессорах.

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

Для обеспечения такой последовательности работы МПС требуются средства, предотвращающие выход из строя ОС вследствие ошибок прикладной программы. С этой целью предусмотрено разделение работы процессора на два режима: системный и пользовательский. ОС функционирует в системном режиме, а прикладная программа – в пользовательском. Обычно один бит регистра состояния используется для определения этих режимов. Основная памятьтакже разделенана системную область и область пользователя, что предотвращает обращение к системной области в пользовательском режиме. В каждой области имеется свой стек – тем самым предотвращается взаимное вмешательство. Для этого предусмотрено двауказателя стека: для ОС и пользователя. Из системного режима можно свободноперейти в пользовательский, однако возможность обратного перехода отсутствует. Для обеспечения обращения к подпрограммам, имеющимся в ОС, в пользовательском режиме предусмотрены специальные средства. Требование выполнения подпрограммы операционной системы называется системным вызовом. Для

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

  1. содержимое программного счетчика заносится в системный стек;

  2. содержимое регистра состояния заносится в системный стек;

  3. в регистре состояния изменяется разряд режима;

  4. в программный счетчик помещается адрес подпрограммы ОС.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]