Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Модель виртуальной памяти Windows




Каждый процесс в Windows получает фиксированное (по размеру) виртуальное адресное пространство – 4 Гб, которое конечно много больше, чем объем первичной памяти (RAM) в современных компьютерах. Процессу не требуется использовать все виртуальное адресное пространство, только сколько нужно. Обычно exe файл – программ намного меньше, чем адресное пространство. Как показано на (Рис. 10. Страничная система Windows) часть виртуального адресного пространства, обычно 2 Гб, используется пользователем, а оставшаяся часть 2 Гб – системой.

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

 

Рис. 10. Страничная система Windows

В нормальной конфигурации первые 64 K (адреса с 0X00000000 до 0X0000FFFF) виртуального адресного пространства не используются. Это сделано для того, чтобы, если программист пишет код с ошибочными указателями, они обычно 0 или маленькие. Система виртуальной памяти, если программа пытается обратиться по адресу первых 64 K, выдает ошибку. Первая используемая часть адресного пространства начинается с адреса 0X00010000.

Операционная система нуждается в средствах определения, какое количество адресного пространства процесс будет действительно использовать. Редактор связей строит статический образ - exe файл, который и будет определять часть адресного пространства, которое будет использовано для кода. DLL и другие динамически размещаемые порции адресного пространства будут добавлены к виртуальному адресному пространству во время выполнения.

Два этапа динамического добавления адресов к адресному пространству процесса:

· резервирование порции адресного пространства (региона);

· передача блока страниц (региона) в адресное пространство.

 

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

На втором этапе предварительно зарезервированные адреса передаются. Передаваемая порция размещается в страничном файле. Когда поток процесса обращается (ссылается) по переданному адресу, то страница, содержащая этот адрес, будет загружена из страничного файла в первичную память. При первом обращении будет загружена инициализированная 0 страница.

Каждый процессор поддерживает гранулярность выделения памяти (allocation granularity) – min размер блока адресов, который может быть зарезервирован. Обычно 64 K (однако вы можете использовать GetSystemInfo для определения этого размера). Перед выполнением резервирования адрес автоматически изменяется с учетом этого размера.

Каждый процессор также поддерживает собственный размер страницы. Обычно 4K или 8K (GetSystemInfo). Память передается наборами страниц, таким образом, действительно передаваемые адреса могут быть много меньше, чем зарезервированные. После того как адрес передан, поток может использовать эту память.




Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 641; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.