Эквивалент dwAllocationGranularity в Linux?

Что эквивалентно dwAllocationGranularity в линуксе? В Windows это определяется как:

Детализация начального адреса, по которому может быть выделена виртуальная память.

Обратите внимание, что это не то же самое, что PAGE_SIZE, который является гранулярностью физическое стр.
(В Windows степень детализации виртуального адреса составляет 64 КБ на x86, тогда как размер страницы, конечно, 4 КБ.)

2

Решение

Ближайшим эквивалентом VirtualAlloc в Linux является mmap, который, как и VirtualAlloc, позволяет указать желаемый целевой адрес выделения выделенной памяти. В Windows этот адрес должен быть выровнен по гранулярности выделения. В Linux я цитирую со страницы руководства mmap:

Если addr не равен NULL, ядро ​​воспринимает это как подсказку о том, куда
поместите отображение; в Linux, отображение будет создано в соседнем
граница страницы
.

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

4

Другие решения


По вопросам рекламы [email protected]