LINUX.ORG.RU

как за минимальное время опросить N-серверов на тему их состояния при помощи внешней проги


0

0

У меня была идея заюзать потоки но потом засомневался как они будут себя вести при вызове внешней проги???

Или всётаки лучше будет заюзать процесы обьединённые шаренной памятью??? В таком случае если один процес выделит себе шаренную память и сделает fork() то будет ли доступна оригинальная шареной памяти дочернему процессу или он получит копию???

★★★★★

форкнуться на N-процессов и при помощи IPC::Shareable (перловая либа) дописывать в массив или 0 или 1, далее по желанию.

vilfred ☆☆
()

> ...идея заюзать потоки но потом засомневался как они будут себя вести при вызове внешней проги???

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

> Или всётаки лучше будет заюзать процесы обьединённые шаренной памятью???

А зачем обязательно память шарить? Че, просто пайпа мало?

> если один процес выделит себе шаренную память и сделает fork() то будет ли доступна оригинальная шареной памяти дочернему процессу или он получит копию???

Как расшаришь, так и будет. Например,

#define SIZE 1024*100

.....

char* ptr= mmap (0, SIZE, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, 0, 0);

пройдет через форк.

А если вместо MAP_SHARED поставишь MAP_PRIVATE, то дочка сделает на нее COW (Copy On Write) -- т.е. для чтения память будет шареная, но при попытке изменить какую-либо страницу она скопируется.

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.