Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AK.doc
Скачиваний:
28
Добавлен:
17.03.2016
Размер:
3.6 Mб
Скачать

3.4.3. Система захисту пам’яті (сзп)

У зв'язку з тим, що в пам'яті мультипрограмної обчислювальної системи одночасно зберігаються декілька програм, необхідно передбачити спеціальні заходи, що виключають взаємний вплив програм один на одного. В першу чергу захищати одні програми від інших необхідно при записі інформації, оскільки в разі наявності помилок можливе псування інших програм шляхом запису інформації не в ті комірки. В той же час захист програм повинен працювати і при реалізації читання, оскільки одні користувачі можуть скористатися результатами інших. Таку ситуацію треба виявляти.

Принцип роботи будь-якої СЗП заснований на тому, що кожна адреса звернення до ОП аналізується на допустимість звернення по ньому. Якщо ця адреса знаходиться усередині допустимих кордонів, то відбуватиметься звернення до пам'яті, якщо ззовні - переривання, відповідне ситуації «порушення захисту пам'яті».

Природно, що контроль визначення допустимості звернення повинен виконуватися дуже швидко. В даний час відомі наступні види СЗП:

1. СЗП з граничними регістрами.

2. СЗП з використанням маски.

3. СЗП з використанням ключів.

СЗП з граничними регістрами представлена на рис. 3.12.

Рис. 3.12 - СЗП з граничними регістрами.

де:

РГА - регістр адреси.

Рг1,2 - граничні регістри.

СхПр1,2 - схеми порівняння.

СПК - схема передачі коду.

ДСА - дешифратор адреси.

ЗР - звернення дозволене.

НЗП - порушення захисту пам'яті.

Розподіляючи ОП, ОС для кожного користувача програми виділяє свою область ОП. Як тільки відповідна програма стає активною, в граничні регістри заносяться крайні адреси цієї області. В процесі реалізації цієї програми кожна поточна адреса порівнюється із заданими кордонами. Якщо адреса знаходиться усередині кордонів, виробляється сигнал ЗР, який відкриває СПК, і поточна адреса потрапляє на адресний дешифратор. Внаслідок чого відбувається звернення до ОП. Якщо адреса - поза кордонами, то звернення не відбувається, виробляється сигнал НЗП.

Перевага: простота.

Недолік: дана схема дозволяє захистити лише ті програми, які розташовуються в ОП у вигляді одного злитого масиву.

СЗП з використанням маски.

ОП розбивають на ряд ділянок однакової довжини і для кожної призначеної для користувача програми встановлюють свою маску, яка визначає, в яких ділянках ця програма може бути розподілена. Хай пам'ять розбили на 8 ділянок і задали маску, згідно з рис. 3.13.

0 1 2 3 4 5 6 7

0

0

1

1

0

1

0

0

Рис. 3.13 - Маска

У нашому прикладі додатковий дешифратор має 3 входи і 8 виходів (рис. 3.14).

Рис. 3.14 – Схеми СЗП з використанням маски.

Розподіляючи ОП для кожної призначеної для користувача програми, ОС встановлює власну маску згідно з рис. 3.15.

Рис.3.15 - Власна маска.

Як тільки така призначена для користувача програма стає активною, її маска заноситься в регістр. Якщо ми задали ділянки 2, 3 або 5 для якоїсь програми, то схема працює так: 3 старших розряди адреси поступає на дешифратор, якщо він їх розпізнає як 2, 3 або 5, то на виході елементу «І-АБО» буде високий потенціал.

СЗП з використанням ключів.

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

З метою здобуття вищої гнучкості нульовий ключ вважається порівнянним зі всіма іншими ключами. Наприклад, будь-яка сторінка, що має нульовий ключ доступна для всіх програм; програма з нульовим ключем відкриває будь-яку сторінку. Зазвичай такий ключ привласнюється основним програмам ОС.

Для визначеності, ключ, що відноситься до програми, називатимемо ключем програми, а що відноситься до сторінки - ключем пам'яті. Як приклад розглянемо ключ, який використовується в великих комп’ютерах, згідно з рис. 3.16.

КЗП

0

1

2

3

4

5

6

7

Рис. 3.16 - Ключ, який використовується в МФ.

Безпосереднє відношення до захисту пам'яті мали лише 4 молодші розряду. Сенс останніх розрядів: 4-ий називався розрядом читання (якщо в нім 0, захист виконувався лише при записі; 1 - і при читанні); 5-й - розрядом звернення (як тільки до якоїсь сторінки відбувалося звернення, він позначався одиницею); 6-й - розрядом запису (при зверненні з метою запису позначався одиницею). 5-й і 6-й розряди використовувалися для оптимізації зв'язку між внутрішньою і зовнішньою пам'яттю.

Хай повний об'єм пам'яті, що захищається, - 220 байт. Виділяючи 8 старших розрядів під номер сторінки можна буде захистити пам'ять, яка містить 256 сторінок. Кожна сторінка матиме 212 = 4096 байт. Основним блоком є пам'ять ключів захисту (ПКЗ). Окрім неї, включається СПК, 2 схеми порівняння, регістр номера сторінки, дешифратор номера сторінки, 2 регістри (рис. 3.17).

Рис. 3.17 - СЗП з використанням ключів.

Хай програма, ключ якої дорівнює 11, може розташовуватися на сторінках 0, 55 і 254 (рис. 3.25.).

Рис. 3.25. - Програма, ключ якої дорівнює 11.

Як тільки програма стає активною, її ключ заноситься в Рг2. Поточна адреса контролюється так: 8 старших розряди через СПК поступають на ДС НС, потім з ПКЗ зчитується інформація і записується в Рг1. Ланцюг СПК - РГНС - СхПр1 - СПК встановлена в схемі з метою зменшення кількості звернень до ПКЗ, які відбуватимуться лише при зверненні до нової сторінки.

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