В Linux, если бы я был malloc(1024 * 1024 * 1024)
, что делает malloc на самом деле?
Я уверен, что он присваивает виртуальный адрес распределению (ходя по свободному списку и при необходимости создавая новое сопоставление), но действительно ли он создает страницы подкачки на 1 гигабайт? Или это mprotect
диапазон адресов и создавать страницы, когда вы на самом деле прикасаетесь к ним, например mmap
?
(Я указываю Linux, потому что стандарт не говорит об этих подробностях, но мне было бы интересно узнать, какие другие платформы сделайте также.)