centurione_agrippa ha scritto:
Quindi nel Main creo n processi thread che farò partire con lo start. Nella classe thread nel metodo run() utilizzerò la chiamata cpu.calcola().
Sì
centurione_agrippa ha scritto:
Nella classe cpu utilizzerò un solo semaforo dato che la risorsa condivisa è una sola
Sì, però c'è dettaglio importante che avevi detto all'inizio: "
in modalità round-robin a partire da P0".
Quando fai partire i thread con start(), ad esempio
ta.start();
tb.start();
non c'è alcuna garanzia che il run() di ta inizi sempre davvero prima del run() di tb.
Inoltre come è l'ordine di acquisizione del semaforo in relazione all'ordine di richiesta?
Tutto questo solo per portare a galla la questione: chi/dove deve gestire la logica round-robin?
centurione_agrippa ha scritto:
e in questa classe andrò a decrementare il tempo di ogni processo thread. Ora come farò ad eliminare un thread ?
Questo potresti gestirlo in processo. Cioè dare al processo un numero di "quanti" per cui eseguirà N volte calcola(). Era così che intendeva il testo iniziale, giusto?