где распределяется общая память? - PullRequest
3 голосов
/ 14 октября 2010

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

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

Может кто-нибудь уточнить, пожалуйста?

Ответы [ 2 ]

4 голосов
/ 14 октября 2010

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

0 голосов
/ 14 октября 2010

Предполагается, что система V: один процесс занимает память, которая выделяется внутри его пространства процессов и делает ее доступной для других через IPC. Наиболее распространенный способ поделиться им - сопоставить память с виртуальным адресным пространством другого процесса. В этом случае они могут получить доступ к памяти, как если бы она была частью их выигранного адресного пространства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...