Защита отдельных ячеек памяти
Принципы защиты памяти
Если в памяти ЭВМ одновременно находится несколько независимых программ, необходимы специальные меры для предотвращения или ограничения обращения одной программы к области памяти, используемой другими программами. Наличие ошибок в одних программах приводит к искажению информации, принадлежащей другим программам.
Последствие подобных ошибок особенно опасны, если разрушению подвергаются программы операционной системы (ОС).
Таким образом, надо исключить воздействие одного пользователя на работу программ других пользователей и программ ОС.
Одним из средств воспрепятствования одних программ другими является защита областей памяти программ от попыток записи со стороны других программ, а в некоторых случаях и своей программы (защита от записи). При этом допускается обращение других программ к этой области памяти, но только для считывания данных.
Различают следующие варианты дифференциальной защиты при различных операциях с памятью:
1. Задаётся отношение к области памяти чужой программы, определяющее, относится ли защита памяти только к операции записи или к любому обращению в память;
2. Задаётся одно из следующих отношений к области собственной программы:
a) Разрешается доступ к данному блоку, как для записи, так и для считывания;
b) Разрешается только считывание;
c) Разрешается обращение любого вида, но оп адресу, взятому только из счётчика команд;
d) Разрешается обращение по адресу из любого регистра, кроме счётчика команд.
При нарушении защиты памяти исполнение программы приостанавливается и вырабатывается запрос прерывания по нарушению защиты памяти. Защиты от вторжения программ в чужие области памяти могут быть реализованы различным образом, но при этом реализация защиты не должна заметно снижать производительность ЭВМ.
В управляющих вычислительных комплексах, предназначенных для работы в АСУ ТП необходимо обеспечить возможность отладки новых программ параллельно с функционированием находящихся в памяти рабочих программ, управляемых ТП. Это может быть достигнуто выделением в каждой ячейке памяти специального "разряда защиты". Установка "1" в этом разряде запрещает запись в данную ячейку.
В системах с мультипрограммной обработкой большого числа программ защищаются не отдельные ячейки, а области памяти или блоки, на которые делится память, при этом часто предусматривается возможность указывать для разных программ различные допустимые режимы обращения к отдельным областям или блокам памяти.