PDA

View Full Version : [Programmazione generale] Sistemi Operativi: Realizzazione variabili conditions


spidey
10-06-2008, 16:44
Salve a tutti. Nella realizzazione delle variabili conditions nel caso di monitor con soluzione di Hoare ho un dubbio:

Supponiamo esistano due processi P e Q.
Q esegue una signal su P che era in wait. Secondo la soluzione di Hoare Q sblocca P e attende la fine di P fine per proseguire la sua esecuzione. Ma dal codice seguente a me sembra che Q sia sbloccato dal prossimo processo che esegue una wait, e non dalla fine di P.. Qualcuno potrebbe spiegarmi il seguente codice? :muro:


wait(){
condcount++;
if (urgentcount>0)
signal(urgent);
else
signal(mutex);
wait(condsem);
condcount--;
}

signal(){
urgentcount++;
if condcount>0 {
signal(condsem);
wait(urgent);
}
urgentcount--;
}