$t_salida)?($CLOCK+$t_servir):($t_salida+$t_servir); $evt_nuevo['tipo']="salida"; $FEL[$t_salida][]=$evt_nuevo; // Problema si ya hay un evento en el mismo instante !! // Apuntar estadisticas $t_espera=$t_salida-($CLOCK+$t_servir); $acum_espera+=$t_espera; $acum_tservir+=$t_servir; // Crear nueva llegada para mantener vivo el sistema $tinter=rand($min_tinter, $max_tinter); // En msec $t_lleg=$CLOCK+$tinter; // En msec $evt_nuevo['tipo']="llegada"; $FEL[$t_lleg][]=$evt_nuevo; // Problema si ya hay un evento en el mismo instante !! // Apuntar estadisticas $ensistema++; $acumensistema+=$ensistema; $num_llegadas_procesadas++; } else if ($next_event['tipo']=="salida") { // Es una salida $ensistema--; } // Condicion de terminacion de la simulacion if ($num_llegadas_procesadas>=$max_llegadas) break; ksort($FEL); // Mantener la FEL ordenada por tiempo (que es la clave del array) } print "Tiempo medio de espera: ".($acum_espera/$max_llegadas)." msec\n"; print "Numero medio de clientes en el sistema: ".($acumensistema/$max_llegadas)." \n"; print "Utilizacion: ".($acum_tservir/$CLOCK)." \n"; ?>