Если у меня есть 500 МБ ОЗУ и программа, которая использует malloc для выделения 600 МБ памяти.
Что произойдет, будет ли он выделяться с использованием концепции виртуальной памяти или нет, если да, то как?
У вас не всегда есть доступное дисковое пространство для виртуальной памяти, но, в общем, ответ — да, это происходит. Операционная система будет делать пейджинг за вас, например, в разделе подкачки, созданном в Linux.
В любом случае, вам может не хватить памяти, и если это вызывает озабоченность, вы должны проверить это в своем приложении.
Обратите внимание, что дисковый ввод-вывод выполняется намного медленнее, чем чтение и запись реальной оперативной памяти.
Я думаю, что это должно помочь вам
Виртуальная память объединяет оперативную память вашего компьютера с временным пространством на жестком диске. Когда ОЗУ заканчивается, виртуальная память перемещает данные из ОЗУ в пространство, называемое файлом подкачки. Перемещение данных в файл подкачки и из него освобождает память, чтобы ваш компьютер мог завершить свою работу.
В худшем случае Windows предупредит Вас об исчерпании памяти и автоматически отключит самые дорогие программы. Windows использует подкачку для «сохранения» программ, которые пока не используются, но все еще находятся в оперативной памяти.