m_moshref
شنبه 30 خرداد 1388, 20:08 عصر
با سلام خدمت دوستان عزیز
یه سوال در مورد الگوریتم بیکر که در کتاب استالینگ برای کنترل ناحیه بحرانی مطرح شده دارم
الگوریتم به صورت زیر:
boolean choosing[n];
int number[n];
while (true) {
choosing[i] = true;
number[i] = 1 + getmax(number[], n);
choosing[i] = false;
for (int j = 0; j < n; j++){
while (choosing[j]) { };
while ((number[j] != 0) && (number[j],j) < (number[i],i)) { };
}
/* critical section */;
number [i] = 0;
/* remainder */;
}
البته یک نوتیشن هم داره و در مورد این عبارته
(number[j],j) < (number[i],i)
که به صورت زیر تعریف شده
(a,b) < (c,d) is defined as (a< c)or (a= cand b< d)
حالا سوال من درمورد حلقه زیر:
while (choosing[j]) { };
کاربرد این حلقه چیست؟
باتشکر
یه سوال در مورد الگوریتم بیکر که در کتاب استالینگ برای کنترل ناحیه بحرانی مطرح شده دارم
الگوریتم به صورت زیر:
boolean choosing[n];
int number[n];
while (true) {
choosing[i] = true;
number[i] = 1 + getmax(number[], n);
choosing[i] = false;
for (int j = 0; j < n; j++){
while (choosing[j]) { };
while ((number[j] != 0) && (number[j],j) < (number[i],i)) { };
}
/* critical section */;
number [i] = 0;
/* remainder */;
}
البته یک نوتیشن هم داره و در مورد این عبارته
(number[j],j) < (number[i],i)
که به صورت زیر تعریف شده
(a,b) < (c,d) is defined as (a< c)or (a= cand b< d)
حالا سوال من درمورد حلقه زیر:
while (choosing[j]) { };
کاربرد این حلقه چیست؟
باتشکر