Semafori
Ciao a tutti
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

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

Risposte
posta pure...

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.
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?
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.
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?