• Non ci sono risultati.

Per generare l'azione in modo casuale usare la funzione rand e generare un valore compreso tra 1 e 3

N/A
N/A
Protected

Academic year: 2021

Condividi "Per generare l'azione in modo casuale usare la funzione rand e generare un valore compreso tra 1 e 3"

Copied!
1
0
0

Testo completo

(1)

Processo figlio usa argc e argv, se argc==2 in argv[1] c’è il nome del figlio, se argc==1 il nome del figlio è anonymous.

Ogni figlio durante la giornata fa ciclicamente ed in modo casuale, per un tempo random, queste azioni:

• mangia (1)

• gioca (2)

• piange (3)

quando inizia un'azione la visualizza a video insieme al proprio nome ed al proprio pid.

Per generare l'azione in modo casuale usare la funzione rand e generare un valore compreso tra 1 e 3.

Per generare il tempo casuale della durata dell'azione usare la funzione rand e generare un valore compreso tra 5 e 10. Usare poi la funzione sleep per sospendere il processo per il tempo generato.

(Ricordarsi di inizializzare il generatore di numeri casuali con la funzione srand(time(NULL));) Se un figlio riceve il segnale SIGUSR2 scrive a video il messaggio “--Nome-- Mi hanno detto di dormire!!!.”. e dopo aver dormito 5 secondi scrive “--Nome-- Ho dormito...”

N.B.: Il processo figlio può essere testato anche da solo mandandolo in esecuzione da terminale, usando il comando ./figlio pippo , provare poi il comando kill –USR2 pidfiglio.

--- Processo mamma è in ciclo infinito, definisce un vettore globale con 4 nomi dei suoi possibili figli ed un contatore globale del numero dei propri figli.

Quando riceve il segnale SIGUSR1 genera un figlio, che esegue il programma figlio, passando come argomento uno dei nomi che ha scelto, e salva il pid del figlio in un vettore globale di pid (incrementando il contatore dei figli).

Ogni mamma può generare fino a 4 figli (ignora il segnale SIGUSR1 quando il contatore dei filgli è arrivato a 4).

Ogni 60 secondi manda un segnale SIGUSR2 ai figli per dire che devono dormire.

Ricordarsi di installare l’handler del segnale SIGCHLD che esegua la wait() (attesa non bloccante della terminazione di un processo figlio).

Per inviare il segnale SIGUSR1 al processo mamma, da terminale, usare il comando kill -USR1 pidmamma

Riferimenti

Documenti correlati

Ogni sera, quando si faceva un po’ di “parola”, come d’uso in Exodus, lui con grande disponibilità e pazienza faceva da tramite con gli altri ragazzi. Anche lui, come tutti

Ma quando apparvero la bontà di Dio, salvatore nostro, e il suo amore per gli uomini, egli ci ha salvati, non per opere giuste da noi compiute, ma per la sua

E ciò perché, a differenza dello Stato, che non può, per definizione, non essere violento, chi vuol cambiare alla radice lo “stato di cose esistente”, si trova, sia

Il padre ha il dovere di riconoscere il proprio figlio e di mantenerlo sin dalla nascita, ma il figlio con almeno 14 anni può opporsi e impedirglielo.. È questo il succo di due

Dalla lettura del testo ci si augura emergano l’importanza e la neces- sità di saper cogliere quei segnali che all’interno dei rapporti di coppia e genitoriali sono indicativi di

successivamente, sottoposta a terzo taglio cesareo, dava alla luce un nuovo figlio.. Il neonato, complessivamente in buona salute, risultava tuttavia essere

ogni difficoltà è una chance Educa tuo/a figlio/a a vivere i momenti difficili come chance per scoprire le sue risorse.. Stagli vicino e guidalo a scoprire che si può imparare

 Continua la frequenza scolastica in attesa di effettuare il tampone rapido di controllo programmato dal personale sanitario del Dipartimento di Prevenzione direttamente a scuola