Реферат Курсовая Конспект
Атрибуты защиты - раздел Компьютеры, Архитектура памяти в Windows Отдельным Страницам Физической Памяти Можно Присвоить Свои Атрибуты Защиты По...
|
Отдельным страницам физической памяти можно присвоить свои атрибуты защиты показанные в следующей таблице. Я
Атрибут защиты | Описание |
PAGE_NOACCESS | Попытки чтения, записи или исполнения содержимого памяти на этой странице вызывают нарушение доступа |
PAGE_READONLY | Попытки записи или исполнения содержимого памяти на этой странице вызывают нарушение доступа |
PAGE_READWRI'1E | Попытки исполнения содержимого памяти на этой странице вызывают нарушение доступа |
PAGE_EXECUTE | Попытки чтения или записи на этой странице вызывают нарушение доступа |
PAGE_EXECITTK_READ | Попытки записи на этой сфанице вызывают нарушение доступа |
PAGE_EXECUTE_READWRITE | На этой странице возможны любые операции |
PAGE_WRITECOPY | Попытки исполнения содержимого памяти на этой странице выбывают нарушение доступа, попытка записи приводит к тому, что процессу предоставляется «личная» копия данной страницы |
PAGE_EXECUTE_WRITECOPY | На этой странице возможны любые операции, попытка записи приводит к тому, что процессу предоставляется «личная» копия данной страницы |
На процессорных платформах x86 и Alpha атрибут PAGE_EXECUTE не поддерживается, хотя в операционных системах такая поддержка предусмотрена Перечисленные процессоры воспринимают запрос на чтение как запрос на исполнение Поэтому присвоение памяти атрибута PAGE_EXECUTE приводит к тому, что на этих процессорах она считается доступной и для чтения, Но полагаться на эту особенность не стоит, поскольку в реализациях Windows на других процессорах все может встать на свои места.
WINDOWS 98
В Windows 98 страницам физической памяти можно присвоить только три атрибута защиты: PAGE_NOACCESS, PAGE_READONLY и PAGE_READWRITE.
Защита типа «копирование при записи»
Атрибуты защиты, перечисленные в предыдущей таблице, достаточно понятны, кроме двух последних: PAGE_WKITECOPY и PAGE_EXECUTE_WRITECOPY. Они предназначены специально для экономного расходования оперативной памяти и места в страничном файле. Windows поддерживает мехянизм, позволяющий двум и более процессам разделять один и тот же блок памяти. Например, если Вы запустите 10 экземпляров программы Notepad, все экземпляры будут совместно использовать одни и те же страницы с кодом и данными этой программы. И обычно никяких проблем не возникает — пока процессы ничего не записывают в общие блоки памяти. Только представьте, что творилось бы в системе, если потоки из разных процессов начали бы одновременно записывать в один и тот же блок памяти!
Чтобы предотвратить этот хаос, операционная система присваивает общему блоку памяти атрибут защиты "копирование при записи» (copy-on-write). Когда поток в одном процессе попытается что-нибудь записать в общий блок памяти, в дело тут же вступит система и проделает следующие операции
Когда система выполнит эти операции, процесс получит свою копию нужной страницы памяти. Подробнее о совместном использовании памяти и о защите типа «копирование при записи" я расскажу в главе 17
Кроме того, при резервировании адресного пространства или передаче физической памяти через VirtualAlloc нельзя указывать атрибуты PAGE_WRITECOPY или PAGE_EXECUTE_WRITECOPY. Иначе вызов VirtucuAlloc даст ошибку, a GetLastError вернет код ERROR_INVALID_PARAMETER Дело в том, что эти два атрибута используются операционной системой, только когда она проецирует образы EXE- или DLL-файлов
WINDOWS 98
Windows 98 не поддерживает «копирование при записи" Обнаружив запрос на применение такой защиты, Windows 98 тут же делает копии данных, не дожидаясь попытки записи в память.
– Конец работы –
Эта тема принадлежит разделу:
На сайте allrefs.net читайте: "Архитектура памяти в Windows"
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Атрибуты защиты
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов