logo
AOM / Мельник А

10.4.4. Захист пам'яті за значеннями ключів

Метод дозволяє організувати захист несуміжних областей пам'яті. Пам'ять умовно ділиться на блоки однакового розміру. Кожному блоку ставиться у відповідність деякий код, який називають ключем захисту пам'яті. Кожній програмі, у свою чергу, присво­юють код захисту програми. Умовою доступу програми до конкретного блоку пам'яті служить збіг ключів захисту пам'яті і програми, або рівність одного з цих ключів нулю. Нульове значення ключа захисту програми надає доступ до всього адресного простору і використовується лише програмами операційної системи. Розподілом ключів захисту програми відає операційна система. Ключ захисту програми зазвичай представлений у

393

вигляді окремого поля слова стану програми, що зберігається в спеціальному регістрі. Ключі захисту пам'яті зберігаються в спеціальній пам'яті. При кожному зверненні до основної пам'яті схема порівняння проводить порівняння ключів захисту пам'яті і про­грами. При збігу доступ до пам'яті дозволено. Дії у разі неспівпадіння ключів залежать від того, який вид доступу заборонений: при записі, при читанні або в обох випадках. Якщо з'ясувалося, що даний вид доступу заборонений, то так само як і в методі гранич­них адрес формується запит переривання і називається відповідна процедура операцій­ної системи.

Описаний спосіб є більш гнучким порівняно з попереднім, так як дозволяє зверта­тися до областей пам'яті, розміщених не підряд. Він був застосований в системі IBM360. Схема захисту нам'яті за описаним способом в системі IBM360 наведена на рис. 10.35.

В цій системі пам'ять складається з блоків. Кожний блок має код - ключ захисту пам'яті (КЗП). Кожна програма теж має код - ключ програми (КП). Ключі захисту пам'я­ті зберігаються в пам'яті ключів захисту (ПКЗ). Крім того, є іще тригер режиму захисту (ТгРЗ), в якому зберігається розряд режиму захисту (РРЗ). Доступ дозволений, якщо КЗП = КП. Коли КЗП = КП, а РРЗ = 0, то дозволено лише зчитування. Коли ж КЗП = КП, а РРЗ = і, то доступ до пам'яті заборонений. Об'єм блоку рівний 2048 байт. Одночасно обробляється 16 програм і, відповідно, використовується 16 варіантів КЗП і КП, тобто коди є 4-розрядними. КП вказується в спеціальному полі слова стану програми (ССП) або каналу (ССК). Коди КП і КЗП встановлює операційна система.