Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OtvetyGOS_1_60.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
2.19 Mб
Скачать
  1. Захист пам'яті. Призначення. Методи захисту верхніми і нижніми границями.

Защита памяти (англ. Memory protection) — это способ управления правами доступа к отдельным регионам памяти. Используется большинством многозадачных операционных систем. Основной целью защиты памяти является запрет доступа процессу к той памяти, которая не выделена для этого процесса. Такие запреты повышают надежность работы как программ так и операционных систем, так как ошибка в одной программе не может повлиять непосредственно на память других приложений. Следует различать общий принцип защиты памяти и технологии ASLR или NX-бит.

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

Можно назвать следующие цели защиты:

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

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

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

Защита в ЭВМ может быть построена на следующих принципах:

  • Расщепление адресных пространств при трансляции адресов.

  • Проверки разрешено/запрещено при работе с памятью при записи или чтении операндов.

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

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

  • Кольца защиты (см. рисунок ниже). Задачи, выполняемые на ЭВМ, разделяют по уровню привилегий. Минимально используют два уровня привилегий: супервизор, пользователь. Такое разделение используется в процессоре PowerPC 603.

  • Метод ключей защиты. Память разбивается на блоки фиксированной длинны (страницы). Каждому блоку ставится в соответствие некий код, называемый ключ защиты памяти. Каждой программе в свою очередь присваивается код защиты программы. Условием доступа программы к блоку памяти служит совпадение ключа и кода защиты или равенство их нулю. Нулевой код защиты имеет операционная система. Память разбита на страницы. Составляется таблица страниц, которая содержит адрес страницы, ключ защиты и признак защиты. При обращении к памяти производится проверка прав доступа. Использован в IBM 360/370.

  • Задание точек входов в подпрограммы.

Чтобы не допустить искажения или потери информации, предусмотрена система защиты памяти при записи и считывании информации. Наиболее важной является защита при записи, однако в отдельных случаях необходимо знать, какая программа сделала попытку считать данные или исполнить команду из запрещенной для нее зоны. Попытка нарушить защиту памяти вызывает прерывание программы-нарушителя. Обычно используют несколько способов организации защиты памяти. Часто встречается защита двумя регистрами, называемыми граничными или регистрами защиты и содержащими номера нижнего и верхнего граничных блоков сегмента. При появлении команды записи по некоторому адресу он последовательно сравнивается с граничными регистрами. Если требуемый адрес находится за пределами сегмента, указанного нижним и верхним регистрами, то возникает прерывание и после установления его причины управление передается специальной программе, обрабатывающей нарушения защиты памяти. Установку значений указанных регистров при работе ЭВМ в режиме разделения времени провопит специальная управляющая программа-супервизор. Аналогично функционирует система защиты с тремя регистрами. Третий регистр устанавливает, распространяется ли защита на внутреннюю область, определяемую верхним и нижним регистрами (состояние 0), или внешнюю (состояние 1).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]