Какая польза от записи таблицы страниц только для записи?

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

Поэтому мой вопрос: зачем программисту нужна страница, предназначенная только для записи? Что является примером такого случая?

2 ответа

Решение

Программа не хочет ограничений. "Он" думает, что это без ошибок.

Защита - это, в основном, операционная система (для выявления ошибок, для блокировки программ, не связанных с благими намерениями).

С точки зрения ОС: кэш ЦП может быть оптимизирован по-разному на страницах, предназначенных только для записи (из настроек пользовательского пространства или просто по эвристике, и ОС будет использовать этот флаг для проверки правильности эвристического предположения). Но и алгоритмы подкачки могут быть сделаны по-другому.

В пользовательском пространстве: для многопроцессорного взаимодействия процесс может использовать страницу только для записи. Библиотека могла бы использовать только запись, чтобы отлавливать некоторые ошибки раньше (и не слишком поздно с поврежденным буфером, и так трудно отладить).

Но также и программа кодирования (чтение большого файла и сохранение закодированного файла): это уведомит ОС о том, что страницы могут быть записаны на диск и удалены из памяти.

Но также в целях безопасности: вы пишете фразу-пароль на странице только для записи, поэтому вам больше не нужно беспокоиться о том, что вредоносный плагин пытается прочитать фразу-пароль (другие процессы могут его прочитать), так что это все же случай взаимодействия с несколькими процессами.

Но, как вы знаете, флаги защиты страниц не отражают то, что хочет программа. Это просто внутренние проверки ОС, и они могут измениться. ОС может устанавливать более ограниченные флаги и ослаблять их (после выполнения действия) при первом попадании защиты (например, COW [для этого требуется также защита от записи])

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

Вот ссылка на руководство Intel.

https://software.intel.com/sites/default/files/managed/7c/f1/253668-sdm-vol-3a.pdf

Смотрите раздел 5-12. Вы можете отключить только запись и выполнение на странице. Чтения могут быть отключены только в режиме доступа.

Другие вопросы по тегам