Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архит_Лекция_рус_Студент.doc
Скачиваний:
210
Добавлен:
11.02.2016
Размер:
5.29 Mб
Скачать

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

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

В простейшей системе прикладные программы используют одни области памяти, а операционная система - другие и оба типа программ имеют доступ к своим областям. В таких системах обычно предполагается, что любой адрес, сформированный операционной системой, является «хорошим» и не нуждается в проверке. Любой адрес, сформированный прикладной программой, является «подозрительным» и проходит проверку, чтобы удостовериться в том, что он попадает в разрешенную область. Часто эта проверка выполняется аппаратными средствами.

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

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

Адресация памяти

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

Прямая адресация объединяет в одном слове код команды и исполнительный адрес, что позволяет команде с обращением к памяти выполняться за две машинные фазы: выборки и выполнения. Местоположение операнда команды определяет вид операнда: регистр-источник или регистр-приемник. Обычно прямой адресации доступны только две страницы (нулевая и первая) статического или динамического ОЗУ.

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

Преобразование виртуальных адресов в реальные выполняется при каждом обращении к памяти в режиме пользователя. Для этого в микропроцессоре должны иметься соответствующие аппаратные средства, связывающие ЦП и память. Наиболее эффективные аппаратные средства имеют в своем составе регистры базы и границы, позволяющие выполнять преобразование и проверку на границу. На рис. 13.3 показана характерная структура такой аппаратуры.

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