Распределяется ли память malloc не обязательно физически непрерывно? - PullRequest
1 голос
/ 19 октября 2011

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

Ответы [ 3 ]

3 голосов
/ 19 октября 2011

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

В пользовательском пространстве вам редко приходится думать о физической памяти и смежных страницах.

3 голосов
/ 19 октября 2011

Это правильно.

Физически непрерывная память имеет значение только для прямого доступа к памяти, и вам все равно, потому что вы не находитесь в пространстве ядра.

Это будет смежно в виртуальном адресном пространстве.

1 голос
/ 19 октября 2011

malloc даст вам постоянную память в виртуальном адресном пространстве. Если вы знаете, как работает виртуальная память, вы знаете, что нет никаких гарантий того, что виртуальные страницы физически непрерывны.

...