[so] [Tema4][Linux] Nelamurire logica test Ring
Traian-Andrei Popeea
traian.popeea at yahoo.com
Sat May 23 11:28:10 EEST 2009
Salut
Acum am inteles din punct de vedere logic problema, dar ma depaseste partea de implementare.
In codul meu, exista:
- in partea de signal:
if(m->policy==SIGNAL_AND_CONTINUE){
// daca SIGNAL & CONTINUE, semnaleaza si continua operatiile
if(pthread_cond_signal( m->cond[cond] )!=0) return -1;
}
// elibereaza monitorul
if(pthread_mutex_unlock( m->excl )!=0) return -1;
return 0;
-in partea de wait
if(pthread_mutex_lock( m->excl )!=0) return -1;
<snip>
if(pthread_cond_wait( m->cond[cond], m->excl )!=0) return -1;
m->excl este mutexul de acces exclusiv in cadrul monitorului, mutex care protejeaza conditia de mai sus
Imi dau seama ca lipseste ceva, dar nu stiu ce.
Traian
P.S. Scuze ca sunt mai incoerent, dar o noapte nedormita pe tema asta isi spune cuvantul
----- Original Message ----
From: Andrei Ismail <iandrei at gmail.com>
To: Sisteme de Operare <so at cursuri.cs.pub.ro>
Sent: Saturday, May 23, 2009 11:07:01 AM
Subject: Re: [so] [Tema4][Linux] Nelamurire logica test Ring
Salut,
Raspunsurile Adinei si lui Victor sunt corecte. O mica observatie,
pentru o portabilitate maxima, tema poate fi rezolvata si doar cu
semafoare (desi e putin mai subtila justificarea functionarii
corecte).
Citez din enuntul temei (de la descrierea operatiei Wait):
"În momentul în care este semnalizat, el va fi trecut în coada Waiting
(de către altcineva)".
Spor la rezolvat,
Andrei
_______________________________________________
so mailing list
so at cursuri.cs.pub.ro
http://cursuri..cs.pub.ro/cgi-bin/mailman/listinfo/so
More information about the so
mailing list