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

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

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

Содержание

Методы

Чаще всего реализуется в рамках виртуальной адресации памяти.

Сегментирование памяти

Сегментирование памяти означает разбиение компьютерной памяти на фрагменты переменной длины, называемые сегментами (cм Сегментная адресация памяти).

В архитектуре x86 есть несколько режимов сегментации, которые могут использоваться для защиты памяти.[1] В процессорах архитектуры x86, существуют Global Descriptor Table и Local Descriptor Table, описывающие сегменты памяти. Указатели на сегменты в подобных процессорах хранятся в специализированных сегментных регистрах. Изначально их было 4: CS (code segment), SS (stack segment), DS (data segment) и ES (extra segment); затем добавили еще два: FS и GS.[1]

Страничная память

При страничной организации памяти, все адресное пространство делится на фрагменты фиксированного размера, называемые страницами. Их размер кратен степени 2, и обычно равен 4096, но возможно использование одновременно нескольких размеров страниц (4 кб, 2-4МБ в x86, от 4 до 256 кб в IA64). При помощи механизма виртуальной памяти, каждая страница виртуальной памяти может быть поставлена в соответствие любой странице физической памяти, либо помечена как защищенная. При помощи виртуальной памяти возможно использование линейного адресного пространства виртуальной памяти, которое на самом деле образовано фрагментированными участками адресного пространства физической памяти.

Многие архитектуры, использующие страничную организацию памяти, в том числе и наиболее популярная x86, реализуют защиту памяти на уровне страниц.

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

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

Следует заметить, что page fault - это не фатальное событие. Эти прерывания могут использоваться не только для защиты памяти, но и другими способами. Так, ОС, перехватив PF, может загрузить страницу в память, например, если она была ранее выгружена на жесткий диск в процессе подкачки страниц, после чего приложение может продолжать работу. Такая схема позволяет прозрачным способом увеличить количество доступной приложениям памяти.


Механизм ключей защиты

Применялся в System/360, Itanium и PA-RISC.

Симуляция сегментации

Адресация основанная на Capability

Capability-based addressing редко применяется в коммерческих компьютерах. В системах с такой защитой памяти вместо указателей используются защищенные объекты (называемые capabilities), которые могут быть созданы лишь привилегированными инструкциями, исполняемыми либо ядром ОС либо специальными процессами. Использование такой защиты позволяет ограничивать доступ процессов к чужой памяти без использования раздельных адресных пространств и переключений контекста (сброса TLB, изменения глобальных дескрипторов). Использовались в исследовательских проектах KeyKOS, EROS; виртуальных машинах Smalltalk и Java.

Оценка уровня защиты

Защита памяти в различных ОС

Среди ОС, реализующих защиту памяти

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

См. также

  • Storage violation, for violation of memory protection
  • Separation of protection and security
  • Защищённый режим - механизмы защиты в x86

Примечания

  1. 1 2 Intel 64 and IA-32 Architectures Software Developer's Manuals: Volume 3A: System Programming Guide, Part 1; PDF

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Защита памяти" в других словарях:

  • защита памяти — — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN memory guard …   Справочник технического переводчика

  • Защита памяти —         аппаратные и программные средства для предотвращения записи или воспроизведения информации по неразрешенному адресу памяти вычислительной системы или машины. Сущность З. п. заключается в том. что память ЦВМ программно или аппаратно… …   Большая советская энциклопедия

  • ЗАЩИТА ПАМЯТИ — совокупность аппаратных и программных средств ЭВМ, предотвращающих не санкционнров. доступ к информации в памяти ЭВМ, чтобы исключить возможность её извлечения, копирования, случайного или преднамеренного искажения (или даже уничтожения). В… …   Большой энциклопедический политехнический словарь

  • Сегментная защита памяти — В этой статье отсутствует вступление. Пожалуйста, допишите вводную секцию, кратко раскрывающую тему статьи. Сегментная защита памяти  один из вариантов реализации защиты памяти в процессорах архитектуры x86. Может применяться в защищенном… …   Википедия

  • защита психологическая — система регуляторных механизмов, служащих устранению или сведению до минимума негативных, травмирующих личность переживаний, сопряженных с внутренними или внешними конфликтами, состояниями тревоги или дискомфорта. Ситуации, порождающие З. п.,… …   Большая психологическая энциклопедия

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

  • ЗАЩИТА — (1) грозовая см. () . информации организация мер надёжного сохранения массивов информации и программ от возможного (случайного или намеренного) доступа к ним посторонних пользователей или «вируса» (см.); (3) З. металлов предохранение металла от… …   Большая политехническая энциклопедия

  • защита накоплением — Метод восстановления данных, хранящихся во внешней памяти, состоящий в том, что на дополнительный носитель копируются только те файлы, которые были созданы позднее определенного срока. [Домарев В.В. Безопасность информационных технологий.… …   Справочник технического переводчика

  • защита от записи — Способ защиты информации на диске и/или в оперативной памяти, заключающийся в установке ключей защиты или в заклеивании метки считывания на диске, что предотвращает запись новых данных и сохраняет имеющиеся от разрушения. [Домарев В.В.… …   Справочник технического переводчика

  • защита от копирования — Программно аппаратное средство для предотвращения копирования некоторой записанной информации в другую часть памяти или на другое запоминающее устройство. Диск с защищенной информацией не может быть скопирован стандартными средствами. [Домарев… …   Справочник технического переводчика


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»