Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций от мешка 3.doc
Скачиваний:
125
Добавлен:
09.04.2015
Размер:
2.58 Mб
Скачать

9.5. Защита памяти

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

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

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

Для облегчения отладки программ желательно выявлять и такие характерные ошибки в программах, как попытки использования данных вместо команд (или наоборот) в собственной программе, хотя эти ошибки могут и не разрушать ин­формацию.

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

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

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

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

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

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

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

Если нарушается защита памяти, исполнение программы приостанавливается и вырабатывается запрос прерывания по нарушению защиты памяти.

Защита от вторжения программы в чужие области памяти может быть организована различным образом. При этом реализация защиты не должна заметно снижать производительность процессора и требовать слишком больших аппаратных затрат. Рассмотрим наиболее распространенные способы реализации защиты памяти.

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

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

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