URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4838
[ Назад ]

Исходное сообщение
"Сервер с предварительным порождением процессов"

Отправлено FastSoft , 14-Ноя-05 12:33 
Что будет, если выделить malloc-ом память, а потом вызвать 20 раз fork? Я займу еще 19 мегабайт или дочерние процессы будут просто получать старый указатель? Что если дочерние процессы попытаются что-то делать с данными по адресу, куда указывает указатель? Мне требуется порождать процессы, которые бы получали доступ к мегабайту данных родительского процесса посредством труб, при этом не имея своей области данных в один мегабайт!! Я хочу обеспечить такой вызов fork, чтобы мой выделенный по malloc мегабайт не копировался каждому процессу при fork, занимая память. Хорошо, если бы дочерние процессы получали бы просто укзатель, тогда бы я мог на него просто забивать и обращаться к родителю по трубам... ПоМоГиТе!

Содержание

Сообщения в этом обсуждении
"Сервер с предварительным порождением процессов"
Отправлено echo , 14-Ноя-05 17:24 
>Что будет, если выделить malloc-ом память, а потом вызвать 20 раз fork?

Задача подробно разжёвана Стивенсом в "UNIX: взаимодействие процессов"
Попробуй порыть в сети (г)углом.
В BSD есть специальная функция (непереносимая), чтобы получать это очень быстро и эффективно.

Могу прислать мылом примеры кода, если спросишь на e-mail (к сожалению, книга на бумаге, поэтому пришлю немного)


"Сервер с предварительным порождением процессов"
Отправлено ACCA , 15-Ноя-05 08:43 
В Linux/System V

man ipc

Особенно раздел Shared Memory Segments.