Защита отдельных ячеек памяти


Принципы защиты памяти

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

Последствие подобных ошибок особенно опасны, если разрушению подвергаются программы операционной системы (ОС).

Таким образом, надо исключить воздействие одного пользователя на работу программ других пользователей и программ ОС.

Одним из средств воспрепятствования одних программ другими является защита областей памяти программ от попыток записи со стороны других программ, а в некоторых случаях и своей программы (защита от записи). При этом допускается обращение других программ к этой области памяти, но только для считывания данных.

Различают следующие варианты дифференциальной защиты при различных операциях с памятью:

1. Задаётся отношение к области памяти чужой программы, определяющее, относится ли защита памяти только к операции записи или к любому обращению в память;

2. Задаётся одно из следующих отношений к области собственной программы:

a) Разрешается доступ к данному блоку, как для записи, так и для считывания;

b) Разрешается только считывание;

c) Разрешается обращение любого вида, но оп адресу, взятому только из счётчика команд;

d) Разрешается обращение по адресу из любого регистра, кроме счётчика команд.

При нарушении защиты памяти исполнение программы приостанавливается и вырабатывается запрос прерывания по нарушению защиты памяти. Защиты от вторжения программ в чужие области памяти могут быть реализованы различным образом, но при этом реализация защиты не должна заметно снижать производительность ЭВМ.

 

В управляющих вычислительных комплексах, предназначенных для работы в АСУ ТП необходимо обеспечить возможность отладки новых программ параллельно с функционированием находящихся в памяти рабочих программ, управляемых ТП. Это может быть достигнуто выделением в каждой ячейке памяти специального "разряда защиты". Установка "1" в этом разряде запрещает запись в данную ячейку.

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