Программа для ЭВМ это упорядоченная последовательность команд, подлежащая обработке
Скачать 1.98 Mb.
|
41.Защита памяти в микропроцессорах: механизмы защиты, концепция привилегий.Механизмы защиты памяти В программе, как правило, имеются ошибки. Реальные МПС могут содержать большое число (сотни и тысячи) программных модулей. Поэтому важна возможность обнаруживать ошибки и сводить к минимуму ущерб от них. Цель механизмов защиты – обеспечить обнаружение и распознавание ошибок в программах. Для отладки программ и более надежного их выполнения современные МП имеют механизмы проверки обращений к памяти и выполнения команд на соответствие критериям защиты. Защита в универсальных МП предусматривает различные виды контроля: контроль доступа к памяти, который обеспечивается системой привилегий; контроль использования памяти, который вводит ряд ограничений на возможные виды обращения к памяти; ограничение набора выполняемых команд в зависимости от уровня привилегий выполняемой программы (выделение привилегированных команд). Механизмы защита памяти реализуются устройством управления памятью. Защита памяти может применяться как на уровне сегментов, так и на уровне страниц. Наиболее естественно механизмы защиты памяти реализуются на уровне сегментов. Сегмент с позиции защиты – это единица защиты. В дескрипторе сегмента кроме базового адреса сегмента указываются размер и атрибуты сегмента, описывающие свойства (тип) сегмента. Каждое обращение к памяти проверяется УУП на предмет удовлетворения критериям защиты. Все проверки делаются до начала цикла обращения к памяти. Любое несоответствие предотвращает начало цикла и вырабатывает специальное прерывание. Наиболее простым механизмом защиты является ограничение на величину смещения (адреса относительно начала сегмента) при сегментной адресации. Ситуация, когда величина смещения превышает размер сегмента, считается нарушением из-за возможности проникновения в область соседнего сегмента. УУП при каждом обращении к памяти сравнивает смещение с размером сегмента, который выбирается из дескриптора сегмента. Если величина смещения превышает размер сегмента, УУП выдает сигнал сегментной ошибки, после приема которого процессор приостанавливает выполнение команды и приступает к обработке специального прерывания. Основу остальных механизмов защиты составляет концепция привилегий, которая обеспечивает защиту от непредусмотренного выполняемой программой обращения к сегментам, хранящимся в памяти, а также использования привилегированных команд. При этом предполагается защита как программ пользователя друг от друга, так и операционной системы (ОС) от них. 42.Поддержка операционной системы в микропроцессорах.Запуск МПС означает запуск операционной системы, которая в процессе работы постоянно хранится в основной памяти. В этой же памяти хранятся также прикладные программы. ОС инициирует выполнение прикладной программы. В том месте прикладной программы, где требуется использование системного ресурса (например, использование периферийного устройства), управление передается ОС. По окончании работы операционной системы возобновляется функционирование прикладной программы. Для обеспечения такой последовательности работы МПС требуются средства, предотвращающие выход из строя ОС вследствие ошибок прикладной программы. С этой целью предусмотрено разделение работы процессора на два режима: системныйи пользовательский. ОС функционирует в системном режиме, а прикладная программа – в пользовательском. Обычно один бит регистра состояния используется для определения этих режимов. Основная память также разделена на системнуюобластьи областьпользователя, что предотвращает обращение к системной области в пользовательском режиме. В каждой области имеется свой стек – тем самым предотвращается взаимное вмешательство. Для этого предусмотрено два указателя стека: для ОС и пользователя. Из системного режима можно свободно перейти в пользовательский, однако возможность обратного перехода отсутствует. Для обеспечения обращения к подпрограммам, имеющимся в ОС, в пользовательском режиме предусмотрены специальные средства. Требование выполнения подпрограммы операционной системы называется системнымвызовом. Для реализации системного вызова предусматривается специальная команда. Эта команда является программным прерыванием, и при ее поступлении выполняется следующая последовательность действий:
В следующем командном цикле с переходом в системный режим начинается выполнение системной подпрограммы. Подпрограмму, хранящуюся в системной области, нельзя выполнить в пользовательском режиме непосредственно с помощью команды вызова подпрограммы (ограничение обращения к системной области), однако это можно осуществить, если воспользоваться системным вызовом. Для выхода из подпрограммы, выполняющейся в системном режиме, используется специальная команда возврата. Для выхода из подпрограммы, выполняющейся в системном режиме, нельзя использовать обычную команду возврата, так как при возврате из подпрограммы по обычной команде адрес возврата извлекается из стека пользователя, а по специальной команде – из системного стека. При системном вызове параметры, передаваемые в подпрограмму, нельзя занести в стек, так как при переходе в системный режим производится замена стека. Если параметров немного, они помещаются в регистры общего назначения. Если параметров немного, они помещаются в регистры общего назначения |