mmap с / dev / zero

Допустим, я выделяю большой объем памяти (40 МБ) с помощью mmap, используя / dev / zero следующим образом.

fd = open("/dev/zero", O_RDWR); 
a = mmap (0, 4096e4, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FILE, fd, 0);

Я понимаю, что ядро ​​инициализирует память до нуля по мере того, как страницы переносятся в физическую память (я полагаю, что современные ядра Linux используют подкачку по запросу ). Так, например, когда происходит прикосновение к первой странице и, следовательно, она помещается в физическую память, ядро ​​инициализирует все свои 4096 байт нулевым значением, затем при касании второй страницы оно делает то же самое и так далее.

Я правильно понимаю?

14
задан NPE 14 December 2011 в 16:26
поделиться