Progetto di Sistemi Operativi

Michele/9611
Ciao a tutti, sto sviluppando in questi giorni(per un esame) un progetto di SO usando il linguaggio C in ambiente Unix.
In tale progetto un processo gestore deve creare n processi figli e gestirli(devono fare varie cose ma questo non centra con il mio problema), [size=150]ucciderne uno a random ogni s secondi e terminare il tutto dopo time secondi[/size], uccidendo quelli ancora vivi.
Ora, il mio unico problema sta appunto nella gestione delle kill, l'idea migliore che mi sia venuta finora è quella di usare alarm,
tuttavia non so se sia possibile sovrapporre più allarmi e, se anche lo fosse, alarm invia il segnale SIGALRM che dovrò gestire con un handler, il problema è appunto che l' handler dovrà fare due cose diverse in base a quando SIGALRM è inviato:
-1: terminare un processo a caso se inviato dopo s secondi
-2: terminare tutto se inviato dopo time secondi
ho urgente bisogno di aiuto per questa cosa in quanto mi sta bloccando tutto il progetto, vi ringrazio anticipatamente per un' eventuale risposta,
Saluti.

Risposte
apatriarca
C'è una qualche ragione per cui tu non possa semplicemente fare un ciclo in cui confronti il tempo corrente con quello iniziale e se è divisibile per s uccidi un processo a caso e se è maggiore o uguale a time uccidi tutti? Puoi fare in modo che il ciclo sia eseguito circa una volta al secondo mettendo il processo a riposo per un determinato tempo.

Michele/9611
Ciao,
innanzitutto grazie per la risposta e sì, proverò in questa maniera.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.