История изменений
Исправление pon4ik, (текущая версия) :
Крайне рекомендую не полагаться на лоровских аналитиков а просто прочитать третью главу «Современные операционные системы» Эндрю Таненбаума, первых частей будет достаточно для базового понимания работы виртуальной памяти, накладных расходов и ограничений. И это будет в разы лучше чем бедный пересказ полученный тут.
В кратце - память(даже выделенная) якобы есть, но где она в данный момент(физически), и можно ли производить с ней i/o зависит только от наличия ресурсов в системе и того был ли уже доступ к конкретной странице. Поэтому, если хочется не получить segfault при использовании большого буфера, который вроде бы и выделен, но используется не сразу весь, будет хорошей идеей про инициализировать его например нулями(портабельный способ) или использовать специальное системное api, что бы попросить на самом деле выделить память.
Исходная версия pon4ik, :
Крайне рекомендую не полагаться на лоровских аналитиков а просто прочитать третью главу «Современные операционные системы» Эндрю Таненбаума, первых частей будет достаточно для базового понимания работы виртуальной памяти, накладных расходов и ограничений. И это будет в разы лучше чем бедный пересказ полученный тут.
В кратце - память(даже выделенная) якобы есть, но где она в данный момент, и можно ли производить с ней i/o зависит только от наличия ресурсов в системе и того был ли уже доступ к конкретной странице. Поэтому, если хочется не получить segfault при использовании большого буфера, который вроде бы и выделен, но используется не сразу весь, будет хорошей идеей про инициализировать его например нулями(портабельный способ) или использовать специальное системное api, что бы попросить на самом деле выделить память.