Межпроцессорное взаимодействие, event-driven?
Доброго времени суток господа!
Прошу прощения, я определённо пишу не в тот список рассылки, но если
вдруг среди Вас есть специалисты по разработке ПО для unix-like систем,
буду очень благодарен им за помощь. Если вы знаете списки рассылки в
которых обсуждаются подобные вопросы, пожалуйста сообщите, чтобы не
оффтопить в этот канал.
Занимаясь оптимизацией вычислений на 4х ядерном процессоре, невольно
начинаешь задумываться, а как бы использовать все ядрышки по максимуму.
Но здесь есть множество сложностей, первой из них безусловно является
необходимость реализации меж процессорного взаимодействия(т.к. у каждого
процесса будет своя память, а задание общее). Задавшись таким вопросом,
я полез читать документацию, и конечно-же обнаружил множество способов
как переписать свою программу, для работы с несколькими ядрами:
1. Общение через общую память(shared memory)
2. Общение через сокеты(или пайпы, которые в использовании мало чем
отличаются)
3. Создание очереди сообщений (системные вызовы
msgsnd,msgctl,msgget,msgrcv в linux), если я правильно понял man'ы.
Мне доводилось использовать только пункты 1 и 2. Я не совсем понимаю как
использовать 3. И кроме того, нет ли в linux, или в любом другом хорошем
месте, реализаций событийно-ориентированного взаимодействия между
процессами? То есть именно на уровне ядра, а не обёртки для конкретного
языка над вышеперечисленными возможностями.
Может быть я конечно глупости говорю, в таком случае поправьте меня
пожалуйста. Спасибо за помощь!
Reply to: