E se nel t_Mossa scrivessi prima i campi colonna e riga con i dati adeguati, e solo alla fine (subito prima di rilasciare il semaforo) aggiornassi il campo che conterrà l'id del processo che vi ha lavorato, ad esempio con una cosa così
p->proc_id = my_id;
mentre il processo attuale sta lavorando in memoria condivisa, l'altro troverebbe sempre il proprio id ed attenderebbe, giusto?
Anche in time sharing non dovrebbero esserci problemi, dato che quando il processo in attesa trova un altro id non ci saranno più istruzioni da eseguire da parte del processo concorrente.
|