problema con los procesos, prdon s m a olvidao el codigo fuente
Contador=0;
PIDpadre=getpid();
while(Contador<8&&PIDpadre==getpid())
{
tiempos[Contador]=rand()%8;
if((pids[Contador]=fork())==0)
{
//tiempos[Contador]=rand()%8;
sleep(tiempos[Contador]);
printf("quietor!!!!!!!!");
}
Contador=Contador+1;
}
if(getpid()==PIDpadre)
{
Contador=0;
do
{
buffer=funMenor(tiempos);
waitpid(pids[buffer],NULL,0);
printf("El proceso con pid %d ha estado parado %d n", pids[buffer], tiempos[buffer]);
tiempos[buffer]=999;
Contador=Contador+1;
}while(Contador<7);
wait(0);
fprintf(stdout,"soy padre n");
}
}
int funMenor(int tiempos[7])
{
int Contador;
int ContadorMenor;
int TiempoMenor;
Contador=0;
ContadorMenor=0;
TiempoMenor=999;
do
{
if(tiempos[Contador]<TiempoMenor)
{
TiempoMenor=tiempos[Contador];
ContadorMenor=Contador;
}
Contador=Contador+1;
}while(Contador<8);
return(ContadorMenor);
}
PIDpadre=getpid();
while(Contador<8&&PIDpadre==getpid())
{
tiempos[Contador]=rand()%8;
if((pids[Contador]=fork())==0)
{
//tiempos[Contador]=rand()%8;
sleep(tiempos[Contador]);
printf("quietor!!!!!!!!");
}
Contador=Contador+1;
}
if(getpid()==PIDpadre)
{
Contador=0;
do
{
buffer=funMenor(tiempos);
waitpid(pids[buffer],NULL,0);
printf("El proceso con pid %d ha estado parado %d n", pids[buffer], tiempos[buffer]);
tiempos[buffer]=999;
Contador=Contador+1;
}while(Contador<7);
wait(0);
fprintf(stdout,"soy padre n");
}
}
int funMenor(int tiempos[7])
{
int Contador;
int ContadorMenor;
int TiempoMenor;
Contador=0;
ContadorMenor=0;
TiempoMenor=999;
do
{
if(tiempos[Contador]<TiempoMenor)
{
TiempoMenor=tiempos[Contador];
ContadorMenor=Contador;
}
Contador=Contador+1;
}while(Contador<8);
return(ContadorMenor);
}
