logo
AK

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

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

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

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

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

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

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

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

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

де:

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

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

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

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

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

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

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

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

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

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

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

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