Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sezione critica test and set

8 views
Skip to first unread message

Jackob

unread,
Dec 31, 2009, 6:09:40 AM12/31/09
to

Salve

fermo restante che ho compreso il concetto di sezione critica e di
istruzione testAndSet, vorrei un aiutino a comprendere cosa fa il codice
dopo la Sezione Critica. Quiesta versione risolve il problema della
attesa limitata, in pratica ᅵ uno pseudocodice C, e non ho compreso se
l'IF ELSE finale fa parte del corpo dell'ultimo while oppure no....

do {

attesa[i] = true;
chiave = true;

while (attesa[i] && chiave)
chiave = TestAndSet(&lock);

attesa[i] = false;

//sezione critica

j = (i + 1) % n;

while ((j != i) && !attesa[i]) <----
j = (j + 1) % n;

if (j==i)
lock = false;
else
attesa[j] = false; <------

//sezione non critica

} while(true);


grazie e buon anno!

Jack

unread,
Jan 12, 2010, 5:25:44 AM1/12/10
to
On 31 Dic 2009, 12:09, Jackob <J...@spammy.it> wrote:
> Salve
>
> fermo restante che ho compreso il concetto di sezione critica e di
> istruzione testAndSet, vorrei un aiutino a comprendere cosa fa il codice
> dopo la Sezione Critica. Quiesta versione risolve il problema della
> attesa limitata, in pratica uno pseudocodice C, e non ho compreso se

> l'IF ELSE finale fa parte del corpo dell'ultimo while oppure no....
>
> do {
>
> attesa[i] = true;
> chiave = true;
>
> while (attesa[i] && chiave)
> chiave = TestAndSet(&lock);
>
> attesa[i] = false;
>
> //sezione critica
>
> j = (i + 1) % n;
>
> while ((j != i) && !attesa[i])   <----
> j = (j + 1) % n;

il while finisce qui.

> if (j==i)
> lock = false;
> else
> attesa[j] = false;    <------
>
> //sezione non critica
>
> } while(true);
>
> grazie e buon anno!

Ciao Jack

Jack

unread,
Jan 12, 2010, 5:27:11 AM1/12/10
to
On 12 Gen, 11:25, Jack <jack4...@gmail.com> wrote:

ok, scusate, potevo quotare un po' meglio :P

Ciao Jack

0 new messages