[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