Конспект лекций по предмету "Информатика"


Аппаратная защита памяти и процессора

В целях совместного использования системных ресурсов (памяти, процессора, внешних устройств) несколькими программами, требуется, чтобы аппаратура и операционная система обеспечили невозможность влияния некорректно исполняемой программы на другие пользовательские программы. Для этого необходима аппаратная поддержка, как минимум, двух режимов исполнения программ – пользовательского (непривилегированного) режима (user mode) –для выполнения программ пользователей – и системного (привилегированного, режима ядра - system mode, monitor mode)- для модулей операционной системы. Идея двух режимов в том, чтобы выполняемые в привилегированном режиме модули ОС могли выполнять распределение и выделение системных ресурсов, в частности, формировать новые адреса, а пользовательские программы, в результате ошибок или преднамеренных атак, выполняясь в обычном режиме, не могли бы обратиться в область памяти операционной системы или другой задачи, изменять их и этим нарушать их целостность. Для определения текущего режима выполнения команд в аппаратуре вводится бит режима, равный 0 для системного и 1 – для пользовательского режима. При прерывании или сбое аппаратура автоматически переключается в системный режим. Некоторые привилегированные команды, изменяющие системные ресурсы и состояние системы (например, регистр состояния процессора), должны выполняться только в системном режиме, что защитит системные ресурсы от случайной или преднамеренной порчи при выполнении этих команд обычной пользовательской программой. Для защиты ввода-выводавсе команды ввода-вывода считаются привилегированными. Необходимо гарантировать, чтобы пользовательская программа никогда не получила управление в системном режиме и, в частности, не могла бы записать новый адрес в вектор прерываний, который, как уже отмечалось, содержит адреса подпрограмм обработки прерываний, в частности, связанных со вводом-выводом.
Использование системного вызова для выполнения ввода-вывода иллюстрируется на рис. 4.7.

Рис. 4.7. Использование системного вызова для выполнения ввода-вывода.
На схеме системный вызов номер nвызывает программируемое прерывание (trap), вызывается ОС в привилегированном режиме, и по номеру системного вызова определяется операция ввода-вывода, которая должна быть выполнена по данному прерыванию. Затем в привилегированном режиме выполняется операция ввода-вывода, после чего происходит прерывание и возврат в пользовательскую программу, выполняемую в обычном режиме.
Для защиты памятинеобходимо обеспечить защиту, по крайней мере, для вектора прерываний и подпрограмм обслуживания прерываний. Например, недопустимо разрешить пользовательской программе формировать в обычном режиме произвольный адрес и обращаться по нему, так как при этом может быть нарушена целостность системных областей памяти. Чтобы этого избежать, в аппаратуре вводятся два регистра, которые отмечают границы допустимой области памяти, выделенной пользовательской программе. Это базовый регистр (base register),содержащий начальный адрес области памяти, выделенной пользовательской программе, и регистр границы (limit register),содержащий размер пользовательской области памяти. Память вне отмеченного диапазона считается защищенной, т.е. обращения к ней из пользовательской программы не допускаются (при попытке такого обращения возникает прерывание).
Использование базового регистра и регистра границы иллюстрируется на рис. 4.8.

Рис. 4.8. Использование регистра базы и регистра границы для защиты памяти
На схеме заданию 2 выделена область памяти, начиная с адреса 300040 (хранящегося в регистре базы), длиной 120900 (хранящейся в регистре границы), т.е. по адрес 420939 включительно. Обращение, например, по адресу 420940 из программы задания 2 приводит к прерыванию как недопустимое – срабатывает защита памяти.
Схема аппаратной защиты адресов памяти иллюстрируется рис. 4.9.

Рис. 4.9. Схема аппаратной защиты адресов памяти


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем конспект самостоятельно:
! Как написать конспект Как правильно подойти к написанию чтобы быстро и информативно все зафиксировать.