Semafori

Messaggioda enigmagame » 22/06/2006, 14:49

Ciao a tutti :-D
qualcuno ha seguito un corso di Sistemi Operativi? O comunque conosce i semafori per la sincronizzazione dei processi? Se si fatamelo sapere cosi posto un esercizio d'esame che ho provato a risolvere.
Grazie :D
enigmagame
Average Member
Average Member
 
Messaggio: 141 di 729
Iscritto il: 22/07/2005, 16:27
Località: Mantova

Messaggioda TheWiz@rd » 25/06/2006, 14:55

posta pure... :)
TheWiz@rd
TheWiz@rd
Junior Member
Junior Member
 
Messaggio: 140 di 172
Iscritto il: 27/01/2004, 18:11
Località: Italy

Messaggioda enigmagame » 27/06/2006, 16:48

Ciao, ok provo a postare un esercizio.
Si considerino i segneti processi (eseguiti sulla stessa CPU) in cui S, T e U sono semafori binari mentre x è una variabile intera condivisa tra P1, P2 e P3 inizializzata a 100.

Codice:
Processo P1
{
   P(S);
   if(x=0) then
      V(T);
      P(U);
   else
      V(U);
   endif;
   P(S);
   write(x);
}

Processo P2
{
   P(T);
   x:=x-1;
   V(S);
}

Processo P3
{
   P(U);
   x:=x+1;
   V(S);
}


Quale è l'output del processo P1 se i semafori sono inizializzati come segue?
(a) S=1; T=0; U=0;
(b) S=0; T=1; U=1;
(c) S=1; T=1; U=1;

Nel caso (a) l'output dovrebbe essere 101. Negli altri casi non cabisco bene come procedere, in quanto bisogna consideare vari casi, ovvero quale processo parte prima...?
Che ne dite?
enigmagame
Average Member
Average Member
 
Messaggio: 144 di 729
Iscritto il: 22/07/2005, 16:27
Località: Mantova


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite