«« ( Date ) »» // «« ( Thread ) »» // drs - 2004

CSP

by Nikola Knezevic
sreda, 29. septembar 2004 - 10:04.

Pozdrav,
malo me muči CSP, pa bih bio zahvalan ako mi neko razbistri neke stvari.
U zbirci stoji da je sva komunikacija sinhrona, tj. da se i pozivar i
pozivani blokiraju kad naiđu na ! i ?.
Ali nije precizno objašnjeno kako to radi u alternativnoj komandi.
Pretpostavljam da se uslov koji sadrži čitanje podatka od nekog drugog
procesa blokira, ali kako se onda tretira? Kao tačan ili netačan, ili je
čitava alternativna komanda blokirana? Šta onda ako ima više uslova sa
čitanjem iz različitih procesa? Alternativna komanda se onda odblokira
kad primi podatke od svih, ili kad primi od prvog (ja mislim da se
uopšte ne blokira, ali onda ispada da komunikacija nije sinhrona...)

U 21. zadatku (Erastotenovo sito), sem što SIEVE(0) pokušava da dobije
signal od nepostojećeg proces (treba SIEVE(100)?done()), malo je nejasno
šta se tačno dešava. Naime, alternativna komanda je nedeterministička,
a u oba uslova figurira b, koje je tačno. Ako SIEVE(0) primi signal od
SIEVE(100), oba uslova su tačna, ali po implenentaciji, može se uvek
birati prvi uslov, tako da do drugog nikada neće ni doći.

Može li mi neko ovo razjasniti. Kako tačno radi alternativna komanda?
Kako radi repetativna, kad je upleten i prijem poruka od drugih procesa?

Hvala.



--
Best regards,
Nikola mailto:nikkne@gmx.ch