Размер виртуальной памяти - PullRequest
       20

Размер виртуальной памяти

2 голосов
/ 04 августа 2010

У меня установлен размер виртуальной памяти 756 МБ на Windows XP. но при чтении в msdn он говорит, что виртуальная память для каждого процесса в 32-битной ОС по умолчанию составляет 4 ГБ. чем он отличается от размера виртуальной памяти, которую я установил?

**Memory**      **range**                    **Usage**
Low 2GB (0x00000000 through 0x7FFFFFFF)  Used by the process.
High 2GB (0x80000000 through 0xFFFFFFFF)    Used by the system.

также, как диапазон одинаков для каждого процесса?

Ответы [ 3 ]

3 голосов
/ 04 августа 2010

Ваш файл подкачки настроен на 756 Мб.Файл подкачки похож на дополнительную оперативную память, но поддерживается диском.

Виртуальная память, однако, отличается и является сложной.

Каждый процесс получает адресное пространство 4 Гб.Это диапазон 32-битного указателя, так что он работает хорошо.Половина этого зарезервирована для ядра (операционной системы) и одинакова в каждом процессе.Другая половина предназначена для самого процесса и уникальна для этого процесса.

Операционная система выделяет «страницы» для частной части памяти, когда процесс запрашивает ее.Страницы получают место в адресном пространстве процесса, которое не имеет никакого отношения к тому, где они находятся в физической памяти.На самом деле, они могут даже не быть в оперативной памяти, если они в настоящее время не используются.Операционная система «поменяет» страницы в файл подкачки, если ей понадобится немного физической памяти для чего-то другого.

Важно помнить, что адрес 0x10000 в вашем процессе полностью отличается от адреса 0x10000 в другом процессе.

К счастью, операционная система манипулирует всем этим, поэтому вам не нужно.

2 голосов
/ 04 августа 2010

Это слишком большая тема для адекватного ответа в ответе здесь.Вам почти наверняка нужно прочитать книгу (я рекомендую книги Джеффри Рихтера для такого рода тем).

4 Гбайт - это адресное пространство.756 Мб о запасном магазине.

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

756 МБ - это дополнительное хранилище для «расширения» пространства ОЗУ, но обычно оно используетсядля данных , а не код;код уже хранится в исполняемом файле, поэтому система считывает данные непосредственно из исполняемого файла, когда это необходимо.756 Мбайт используется в основном для данных, которые вы создали или изменили во время работы компьютера (хотя определение «изменено / создано» может быть нечетким - например, содержимое загруженной веб-страницы будет включенопотому что вы заставили его войти в память, даже если вы его не создавали или не меняли вообще).

1 голос
/ 04 августа 2010

Параметр виртуальной памяти в Windows влияет только на размер файла подкачки виртуальной памяти, а не на общий размер виртуальной памяти, выделенной для процессов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...