Problemas en Sincronizacion de procesos

Dudas sobre los distintos compiladores C/C++ en Linux
Responder
Mensaje
Autor
songohanda75
Mensajes: 1
Registrado: 13/05/2009 7:01 am

Problemas en Sincronizacion de procesos

#1 Mensaje por songohanda75 » 13/05/2009 7:09 am

Hola, llevo unos días pegándome con un programa en el que se mezcla C con llamadas al Sistema de Linux.
La cuestión es que quiero analizar una serie de combinaciones divididas entre varios procesos.
Por ejemplo, si hay 64 posibilidades y lanzo 4 procesos, cada uno analizará 16. Para sincronizar los procesos entre ellos, cuando uno encuentra una combinación mejor que la mejor conocida hasta ese momento, envia una señal del tipo SIGUSR1 al grupo (previamente se crearon los procesos y se asociaron al mismo grupo). Una vez terminado el análisis de todas las posibilidades, envían una señal de SIGTERM y permanecen a la espera de que se les mande finalizar.

Mi problema:

para analizar las combinaciones hago un for:

for(combinacion_inicial=0;combinacion_inicial<combinacion_final;combinacion_final++){
Analizo las combinaciones.....
Si encuentro una mejor(dentro del for):
kill(0,SIGUSR1);
pause();
}

Esto hace que llego el SIGUSR1 a todos los procesos (incluso a él mismo) pero, al tener que poner la pause (sino, finaliza antes de que los demás procesos empiecen), no sé como continuar dentro del for para que siga analizando el resto de combinaciones. Vamos, que se muere en la primera mejor opción encontrada y no continua.

Alguna idea de como puedo solucionarlo?

Espero que haya quedado más o menos claro...

Muchas gracias.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados