Я читаю
Когда процесс создается и задается его адресное пространство, большая часть этого доступное адресное пространство бесплатно, или нераспределенный. Чтобы использовать части этого адресное пространство, вы должны выделить регионов внутри него, позвонив VirtualAlloc. Акт о выделении область называется резервированием .
Для использования зарезервированной области адреса пространство, необходимо выделить физическое хранилище, а затем сопоставьте это хранилище с заповедный регион. Этот процесс называется фиксацией физического хранилища .
После того, как вы зарезервировали регион, вы необходимо передать физическое хранилище в регион, прежде чем вы сможете получить доступ к адреса памяти, содержащиеся в нем. Система выделяет физическую память привержен региону из системный файл подкачки.
Вот пара вопросов:
Почему мы должны следовать парадигме резервирования и комита при использовании памяти? т.е. почему нам нужно следовать этой двухэтапной парадигме вместо того, чтобы напрямую выделять физическую память и использовать ее?
Если физическая память, выделенная для области, выделяется из файла подкачки системы, зачем нам ОЗУ ( звучит смешно)? На мой взгляд, область адресного пространства должна быть отображена в ОЗУ (через механизм подкачки), а страницы ОЗУ должны поддерживаться файлом подкачки.
Возможно, на этот вопрос можно было бы ответить, объяснив следующие 2 аспекта:
Что делает резервирование?
Что делает коммит?
Это следующая цитата из
... хранение в виде данных, хранящихся в пейджинге файл на диске. Итак, когда приложение фиксирует физическое хранилище в область адресного пространства вызов функции VirtualAlloc, пространство фактически выделено из файл на жестком диске .
После того, как вы зарезервировали регион, вы необходимо передать физическое хранилище в регион, прежде чем вы сможете получить доступ к адреса памяти, содержащиеся в нем. Система выделяет физическую память, выделенную для региона из файл подкачки системы.
Итак, где ОЗУ? Что, если я сконфигурирую свой компьютер так, чтобы не было файла подкачки?