Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций от мешка 3.doc
Скачиваний:
68
Добавлен:
09.04.2015
Размер:
2.58 Mб
Скачать

9.5.2. Метод граничных регистров

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

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

РгН – регистр нижней границы;

РгВ – регистр верхней границы;

 – адрес нижней границы допустимой зоны обращений;

N – количество ячеек разрешенной зоны памяти.

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

9.5.3. Метод ключей защиты

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

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

Метод ключей защиты не исключает использование метода контрольного разряда для защиты отдельных ячеек памяти и метода граничных регистров для защиты отдельных зон памяти. В современных ЭВМ эти методы часто используются совместно и тесно переплетаются.

Рассмотрим очень коротко методы защиты памяти, используемые в вычислительных системах, построенных на базе микропроцессора I80386. Блоками памяти, подлежащими защите в таких системах, являются сегменты и страницы. Система защиты построена на принципах, широко используемых в микропроцессорах, а именно:

  • Проверка атрибутов доступа (ключей защиты) перед предоставлением возможности обращения к памяти.

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

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

С помощью этих четырех уровней защиты и системы проверки атрибутов доступа в процессоре организуется многозадачный режим за счет обособления программ друг от друга и от операционной системы. Механизм защиты предотвращает аварийную ситуацию в какой-либо программе при возникновении сбоя в системе. Систему защиты памяти посредством задачно-пользовательских атрибутов и уровней приоритетов, используемую в процессоре I80386, можно изобразить схемой, приведенной на рис. 9.17.

Функционирование изображенной структуры можно проиллюстрировать следующим примером. Пусть данные хранятся на уровне P=2. Тогда доступ к ним возможен для программ, находящихся на уровнях P=2, 1 или 0. Для программ с P=3 они недоступны. Аналогично программа прикладного сервиса с P=2 может быть вызвана сегментами или процедурами, находящимися на уровнях P=2, 1 или 0, но не на уровне P=3.

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

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

Аппаратная внутрикристальная реализация механизма иерархической защиты памяти и проверка атрибутов доступа, предусматриваемая в составе операционной системы, позволяют предотвращать подавляющее большинство аварийных ситуаций (в соответствии с одной из оценок, приведенной в литературе, до 95% отказов, происходящих в многопользовательских многозадачных системах из-за некорректной работы с памятью).