2

ОС Linux: обычно они допускают чрезмерную загрузку памяти. Например, процесс может выделить 100 ГБ памяти, даже если на машине всего 8 ГБ физической памяти и нет подкачки.

Пока вся выделенная память фактически не используется, процесс будет работать. Если программа попытается использовать все это, OOM-killer убьет процессы, чтобы освободить память.

Как это работает в Windows? Откажется ли Windows предоставлять процессам виртуальную память, если она не может гарантировать, что эта память может быть подкреплена фактической памятью (физической ОЗУ или подкачкой)?

1 ответ1

3

Отвечая на мой собственный вопрос, как никто другой.

Кажется, дело в том, что Windows НЕ будет перегружать память. На самом деле это большая разница по сравнению с Linux.

Windows позволит программе выделять больше (виртуальной) памяти, чем имеется ОЗУ на машине, но ТОЛЬКО если имеется достаточно свободного дискового пространства, чтобы иметь возможность при необходимости резервировать виртуальную память, запрошенную программой, диском.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .