Организация ЭВМ и систем. Однопроцессорные ЭВМ. Часть 3

       

ЗАЩИТА ПАМЯТИ


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

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

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

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

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

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

    в память.

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

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

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

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

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

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



    Содержание раздела