Большинство проверок защиты выполняются аппаратно, самим ЦП, и не требуют особого участия со стороны ОС.
ОС устанавливает некоторые специальные таблицы (таблицы страниц или дескрипторы сегментов или некоторые другие), в которых диапазоны памяти имеют связанные разрешения на чтение, запись, выполнение и пользователь / ядро, которые затем внутренний процессор кэширует.
Затем ЦП каждой инструкции проверяет, соответствуют ли обращения к памяти установленным ОС разрешениям и, если все в порядке, продолжается. Если есть попытка нарушить эти разрешения, CPU выдает исключение (форму прерывания, аналогичного внешнему по отношению к устройствам ввода-вывода CPU), которое обрабатывает ОС. В большинстве случаев ОС просто завершает работу приложения-нарушителя, когда получает такое исключение.
В некоторых других случаях он пытается обработать их и заставить работать некорректный код. Одним из таких случаев является поддержка виртуальной дисковой памяти. Операционная система помечает регион как непредставленный / недоступный, если он не поддерживается физической памятью, а его данные находятся где-то на диске. Когда приложение пытается использовать эту область, ОС ловит исключение из инструкции, которая пытается получить доступ к этой области памяти, резервирует область физической памятью, заполняет ее данными с диска, помечает ее как имеющуюся / доступную и перезапускает Инструкция, которая вызвала исключение. Всякий раз, когда у ОС недостаточно памяти, она может выгружать данные из определенных диапазонов на диск, снова отмечать эти диапазоны как недоступные / недоступные и восстанавливать память из этих областей для других целей.
Также могут быть определенные жестко заданные диапазоны памяти ЦП, недоступные для программного обеспечения, работающего вне ядра ОС, и ЦП также может легко выполнить проверку здесь.
Это, похоже, относится к MIPS (из "Замечания по применению 235 - Миграция с MIPS на ARM") :
3.4.2 Защита памяти
MIPS предлагает защиту памяти только в той степени, как описано ранее, то есть адреса
в верхних 2 ГБ адресного пространства не допускается в режиме пользователя.
Нет более детального режима защиты.
В этом документе перечислены «MEM - сбой страницы при получении данных; неправильный доступ к памяти; нарушение защиты памяти» среди других исключений MIPS.
Если конкретная версия ЦПУ MIPS не имеет более детальных проверок защиты, они могут быть эмулированы только ОС и требуют значительных затрат. Операционная система должна будет выполнить инструкцию кода по инструкции или преобразовать ее в почти эквивалентный код со вставленным адресом и проверками доступа и выполнить его вместо исходного кода.