КДП/Рандеву — разлика између измена
< КДП
Пређи на навигацију
Пређи на претрагу
(randevu kategorija) |
м (Kategorizacija) |
||
Ред 2: | Ред 2: | ||
'''Рандеву''' је концепт из дистрибуираног програмирања из трећег блока наставе и долази на дистрибуираном делу испита за СИ и РТИ. | '''Рандеву''' је концепт из дистрибуираног програмирања из трећег блока наставе и долази на дистрибуираном делу испита за СИ и РТИ. | ||
{{категорија задатка|Рандеву}} | {{категорија задатка|Рандеву}} | ||
[[Категорија:КДП]] |
Тренутна верзија на датум 11. фебруар 2023. у 18:45
Рандеву је концепт из дистрибуираног програмирања из трећег блока наставе и долази на дистрибуираном делу испита за СИ и РТИ.
Август 2021, 3. задатак
Поставка
Решити проблем филозофа који ручавају (Dining Philosophers Problem) користећи концепт рандевуа (Rendezvous).
Решење
Module Server
op dohvatiViljuske(idF);
op vratiViljuske(idF);
Body
Process Server{
const int N = 5;
boolean jedu[N] = {false};
while(true){
//pretpostavka da kompajler vraca negativne vrednosti za moduo
in dohvatiViljusku(i) and !jedu[(i-1)%N<0 ? ((i-1)%N+N) : (i-1)%N] and !jedu[(i+1)%N] -> jedu[i] = true;
[] vratiViljuske(i) -> jedu[i] = false;
ni
}
}
End Server;
procces Filozof[i=0..4]{
while(true){
misli;
call Server.dohvatiViljuske(i);
jedi;
call Server.vratiViljuske(i);
}
}