Организация ЭВМ и систем

Защита памяти по ключам (уровням привилегий)


используется в большинстве современных многопрограммных ЭВМ со страничной органи­зацией памяти и динамическим её распределением между параллельно вы­полняемыми программами. В её основе лежит применение специальных ко­дов (уровней) для проверки соответствия используемых массивов ячеек па­мяти номеру выполняемой программы.

Каждой рабочей программе ОС придает специальный ключ — ключ программы. Все выделенные для данной рабочей программы страницы от­мечаются одним и тем же ключом страницы или ключом защиты. В качест­ве ключа защиты обычно указывается двоичный код номера программы. В процессе обращения к ОП производится сравнение ключа выполняемой про граммы с ключами защиты соответствующих страниц памяти. Обращение разрешается только при совпадении сравниваемых кодов ключей. Защита па­мяти по ключам применяется не только при работе ОП с процессором, но и в ходе обмена информацией с ВЗУ через каналы ввода-вывода. Тогда вместо ключей программ используются ключи каналов. Разрядность кодов ключей определяется максимальным количеством параллельно выполняемых про­грамм.

Структура БЗП по ключам приведена на рис. 4.22. Его основу составляет память ключей защиты ПКЗ адресного типа. Емкость ПКЗ строго соответст­вует количеству страниц. Разрядность ячеек ПКЗ равна разрядности кодов ключей (k) с добавлением одного или нескольких разрядов для задания ре­жима защиты (j). Ввод кодов защиты в ПКЗ осуществляется под управлением ОС при каждом распределении поля ОП между параллельно выполняемыми программами и каналами ввода-вывода, а также при любом перераспределе­нии поля ОП. Выборка информации

из ПКЗ производится по номерам стра­ниц, представляемых старшими разрядами кода адреса ячейки ОП, по кото­рому идет обращение к ОП.

Рис.4.22. Защита памяти по ключам

Кроме ПКЗ в состав блока защиты памяти входят: дешифратор номера страниц ДШС для расшифровки кодов номеров страниц; регистр ключей защиты РКЗ для фиксации выбираемых из ПКЗ кодов; регистр ключей про­грамм РКП для приема и хранения кодов ключей программ, поступающих из регистра слова состояния программы (системного регистра) процессора, или кодов ключей каналов; узел сравнения ключей УСК для сравнения ключей защиты с ключами программ (или каналов).


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

Функционирование БЗП начинается с ввода в ДШС кода номера страни­цы ОП, к которой производится обращение. По номеру страницы из ПКЗ вы­бирается соответствующий ключ защиты, код которого помещается в РКЗ. В УСК код ключа защиты сравнивается с кодом ключа программы (канала) и формируются управляющие сигналы разрешения или прерывания.

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


Содержание раздела