В микропроцессорах Intel реализовано 4 механизма защиты памяти, организованной сегментно. Все эти механизмы работают совместно.
Первый механизм заключается в создании отдельной таблицы дескрипторов для каждого процесса. Таблицы формируются операционной системой на этапе создания процесса, а после активизации процесса в регистр LTDR заносится адрес таблицы LTD для данного процесса. Благодаря этому обеспечивается недоступность для процесса локальных дескрипторов и локальных сегментов данных других процессов.
Второй механизм – защита по привилегиям. Основан на том, что каждый сегмент оперативной памяти наделяется атрибутами безопасности. Эти атрибуты хранятся в дескрипторах сегментов (в поле «байт доступа»). Одним из важнейших атрибутов безопасности сегмента является уровень привилегий дескриптора сегмента, значение которого хранится в DPL байта доступа.
Процессы также наделяются атрибутами безопасности, которые хранят степень привилегированности процесса. В общем случае уровень привилегий процесса определяется уровнем привилегий его сегмента кода. При обращении к сегментам данных формируются указатели (селекторы) для этих сегментов. Значение поля RPL в этих селекторных регистрах определяет, какие привилегии желает установить процесс при обращении к этим данным.
В микропроцессорах Intel использует способ распределения привилегий с помощью колец защиты (чем меньше номер кольца, тем выше уровень привилегий).
При обращении к сегментам данных кольца номер N процесс должен обладать уровнем привилегий k≤N (т.е. он может обращаться к данным своего и внешних колец).
Для обращения к сегментам кода кольца номер N процесс должен обладать уровнем привилегий k≥N (т.е. он может обращаться к кодам своего и внутренних колец).
Третий механизм – ограничение на способ использования сегмента. Возможности по использованию сегмента определяются байтом доступа соответствующего сегмента (битами 0-4 и 7). 7-й бит определяет, является сегмент системным или пользовательским. Если сегмент пользовательский, 4-й бит определяет тип сегмента – код или данные. Остальные 3 бита определяют права доступа.
Четвертый механизм – введение привилегированных команд. Привилегированные команды могут выполняться только с сегментами кода с уровнем привилегий 0