int nr=0; int nw=0; int dr=0; int dw=0; sem e; e.valor = 1; sem r; r.valor = 0; sem w; w.valor = 0; void le(...) { void escreve(...) { P(e); P(e); if (nw>0) { if (nr>0 || nw>0) { dr++; dw++; V(e); V(e); P(r); P(w); } } nr++; nw++; if (dr>0) { V(e); dr--; V(r); escreve { else /* dr==0*/ P(e); V(e); nw--; if (dr>0) { le a base de dados dr--; V(r); P(e); } nr--; else if (dw>0) { if (nr==0 && dw>0) { dw--; dw--; V(w); V(w); else /* dr==0 && dw==0 */ } V(e); else /* nr>0 || dw==0 */ } V(e); }Sugira como ela poderia ser alterada de forma a dar preferência aos leitores, ie: