Déjà avec du code (ou des extraits), ça serait plus simple.
Sinon l'état zombie (en général les processus fils) est l'état dans lequel se trouve un process tant qu'on a pas lu son code de retour. Je dis bien processus et non thread. On peut récupérer le status d'un processus fils terminé (donc dans l'état zombie) via les fonctions wait(), wait3(), wait4() ou waitpid(). Une fois le status récupérer, le processus disparaitra de la liste. On peut le faire aussi automatiquement en utilisant signal() : signal(SIG_CHILD, SIG_IGN).
Bon, là où ça devient bizarre c'est que tu parles de processus père (qui devrait être monitoré par le shell).
Bah, sinon pour faire des timers, tu peux utiliser select(), sleep(), usleep() ou nanosleep().