Сигналы и процесы в Linux (Зависание процесса)

Модератор: Модераторы разделов

Rosin
Сообщения: 1

Сигналы и процесы в Linux

Сообщение Rosin »

Описание программы:есть дерево процессов:

Код: Выделить всё

                                                                         1
                                                                     /   |  \
                                                                   2     |    3
                                                                         4
                                                                       /  | \
                                                                     6   5   7

Необходимо синхронизировать процесы таким оббразом:
1->(5,6,7) 1-ый процесс одновременно посылает сигнал SIGUSR1 этим 3 процессам
6->4 они получают и сразу отправляют 4 и тд.
7->4
5->4
4->(2,3)
2->1
3->1
В прикрепленном файле код это программы.Проблема:почему на 4-ом процесе зависает.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
кодировщик
Сообщения: 974
Статус: зарёган в пятницу 13
ОС: Linux

Re: Сигналы и процесы в Linux

Сообщение кодировщик »

Интересно стало посомотреть, сам тут с сигнали запарился, только где сам файл?!
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Сигналы и процесы в Linux

Сообщение RasenHerz »

а где собственно код? что происходит в обработчиках событий?
Спасибо сказали:
Аватара пользователя
XLBaron
Сообщения: 12
ОС: Ubentu

Re: Сигналы и процесы в Linux

Сообщение XLBaron »

Rosin писал(а):
11.05.2009 14:16
Описание программы:есть дерево процессов:

Код: Выделить всё

                                                                         1
                                                                     /   |  \
                                                                   2     |    3
                                                                         4
                                                                       /  | \
                                                                     6   5   7

Необходимо синхронизировать процесы таким оббразом:
1->(5,6,7) 1-ый процесс одновременно посылает сигнал SIGUSR1 этим 3 процессам
6->4 они получают и сразу отправляют 4 и тд.
7->4
5->4
4->(2,3)
2->1
3->1
В прикрепленном файле код это программы.Проблема:почему на 4-ом процесе зависает.


продумать алгоритм именно передачи без синхронизации не сложно, если нужна синхронизация, пользуйся какими-нибудь таймерами и триггерами
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Сигналы и процесы в Linux

Сообщение Stauffenberg »

Это его первый пост, видать... не получилось прикрепить файл или просто забыл.

Ждем код (:
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
gluk47
Сообщения: 297
Статус: Любитель гвоздей и микроскопов
ОС: Kubuntu 17.10

Re: Сигналы и процесы в Linux

Сообщение gluk47 »

Я бы использовал семафоры. 4 должен ждать значения семафора=3, а 5,6,7 - увеличивают семафор при посылке сигнала; 1 сбрасывает семафор в 0 при рассылке своих сигналов. И для каждого ветвления можно заводить подобный семафор.
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
Спасибо сказали: