Difference between revisions of "ProvaTeorica 2011.02.11"
Jump to navigation
Jump to search
Stefano 92 (talk | contribs) (Created page with "Esercizio 1 <syntaxhighlight lang="C"> /*Esercizio 1: Il monitor lifocs che lo studente deve implementare, realizza una critical section LIFO. I processi per usare la critic...") |
Stefano 92 (talk | contribs) |
||
Line 37: | Line 37: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | -furt |
Latest revision as of 19:14, 16 March 2014
Esercizio 1
/*Esercizio 1: Il monitor lifocs che lo studente deve implementare, realizza una critical section LIFO. I processi per usare
la critical section LIFO usano il seguente protocollo:
n1=lifocs.enter()
…. codice critico
n2=lifocs.exit()
quando un processo rilascia la sezione critica e ci sono processi in attesa di entrare, deve venir assegnata la sezione
critica al processo che ha fatto l'ultima richiesta (in ordine di tempo).
Le funzioni enter e exit devono dare come valore di ritorno il numero di processi in attesa di entrare nella sezione critica.
I valori n1 e n2 sono correlati fra loro?*/
monitor lifocs
{
int inc=0;
bool occupy=false;
condition *pila;
procedure entry enter()
{
inc++;
if(occupy)
pila[k-1].wait();
inc--;
occupy=true;
return i;
}
procedure entry exit()
{
occupy=false;
if(k!=0)
pila[k-1].signal();
return k;
}
}
-furt