Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Выделение физической памяти под программный код

ImageImageImageImageImageImage

Виртуальное адресное пространство

//////////////////////////////////////////////////

 

//////////////////////////////////////////////

 

Программный код или данные

 
            Защиты типа PAGE_WRITECOPY и PAGE_EXECUTECOPY предназначены для экономного расходования оперативной памяти и места в страничном файле. В Win32 поддерживается механизм, позволяющий двум или более процессам получать одновременный доступ к единому блоку данных. Например:

     1-я копия                        Физическая память                          2-я копия

Image
Image
 

            Чтобы предотвратить одновременную запись в общий блок данных разными процессами ОС присваивает этому блоку данных атрибут защиты копирования при записи. Когда поток в одном процессе пытается записать что-нибудь в общий блок данных, то он

1) выделяет из страничного файла страницу физической памяти

2) отыскивает свободную страницу в памяти

3) копирует страницу с данными, которые поток пытается записать в общий блок на свободную страницу памяти, полученную на этапе 2

4) сопоставляет адрес этой страницы виртуальной памяти с новой страницей в памяти.

            После этих действий ОС получает собственную копию этого блока данных и может делать с ней, что хочет. Windows 95 и Windows 98 не поддерживают копирование при записи.

Лекция № 5

предыдущаяследующая