[NOS] 1. laboratorijska vježba - 2021/2022
Rene
Rene Tj. jel treba omogućit da maksimalan broj filozofa jede istovremeno, ili samo jedan? Ovaj dio s prilaženjem stolu me zbunio
Lyras
Rene Filozofi i mjesto na stolu nemaju ikakve veze jedno s drugim. Filozof k i filozof j su zamjenjivi. Omogućuješ da maksimalni broj filozofa jede istovremeno. Prilaženje stolu je potpuno nebitno
ana
Imam dva pitanja (vjv su glupa al eto):
- koliko redova poruka trebam imati u centraliziranom protokolu u vrtuljak zadatku (tipa dal svaki posjetitelj treba imati svoj il sta?)
- kako vrtuljak zna da su svi procesi zavrsili, tj kad bi on trebao ispitivati ako mu je u red poruka dosla poruka o zavrsetku posjetitelja?
micho
anci koliko redova poruka trebam imati u centraliziranom protokolu u vrtuljak zadatku (tipa dal svaki posjetitelj treba imati svoj il sta?)
Koliko god ti treba, najmanje će to biti in-out po posjetitelju.
anci kako vrtuljak zna da su svi procesi zavrsili, tj kad bi on trebao ispitivati ako mu je u red poruka dosla poruka o zavrsetku posjetitelja?
Procesi mu dojave ili možda ima informaciju nekog objekta o stanju procesa. Nakon što završi s vrtnjom treba čekati da se svi skinu, pa tad ispituje.
Baksuz
Jel zna netko kako bismo mogli riješiti lamporta za 2. zadatak? Kakvu vrstu strukture bi trebali koristiti? Jel koristimo redove poruka ili cjevovod?
Daeyarn
Baksuz
mislim da bi trebalo koristiti cjevovod za drugi zadatak, bar tak pise za b)
Baksuz
Daeyarn a to sam i pretpostavio, al ne vidim gdje ih uopće koristim. Btw, jel se može implementirati zadatak tako da glavni proces provjerava cjevovode za tih 5 štapića (u koje procesi koji dijele taj štapić šalju zahtjeve), te onda da glavni proces šalje poruke onom procesu koji smije koristiti taj štapić (ima manji Ci od susjeda)?
Lyras
Lyras kolega, lamport zapravo uistinu rješava deadlock. Ne trebaju nikakvi random sleepovi. Ako slijediš ispravno algoritam, doći ćeš do toga da će svi recimo imati u svom desnom redu svoju poruku na prvom mjestu, no razlika će se dogoditi upravo između 0. i 4. (ili 1. i 5., ovisi odakle započinješ brojanje) filozofa. Naime, oni će si međusobno poslati zahtjeve (istovremeno, po njihovim satovima), no prevladati će 0. filozof, jer on ima manji id, (odnosno i). Napraviš while petlju koja će biti istinita sve dok se oba zahtjeva filozofa ne pojave na vrhu njegovog reda. On čita poruke svojih susjeda sve dok se taj uvjet u while petlji ne ispuni. Ako uđe u lock u readu, nema veze, jer će zasigurno primiti poruku izlazak svojeg susjeda eventualno. Postupak jedenja se dogodi tek onda kada ima oba štapića na raspolaganju i isključivo samo tada.
Daeyarn
Baksuz e ne znam, nisam jos dosao do filozofa 😅
Ardura
Koristim mkfifo za cjevovode i imam problem jer mi nijedan proces ne može krenuti pisati dok na drugoj strani netko ne krene čitati. Mogu li pri pokretanju programa odlučiti tko će prvi pisati/čitati od filozofa ili ima neki bolji način?
ZliDule
Moraju li nam oba zadatka biti skroz funkcionalna da zadovoljimo uvjet za izlazak na ispit? Malo mi je nejasno ovo što im piše na stranici labosa, kažu:
“Uvjet za izlazak na ispit: ostvareni su SVI zadaci obje vježbe, postavljeni su svi izvorni tekstovi programa u sustav ferko i predane su sve vježbe, tj. sve su vježbe pokazane nastavniku u terminima labosa.”
Ostavlja li to mogućnost da dođem tamo s polufunkcionalnim filozofima, pokupim neke polovicne bodove i ostvarim izlazak na ispit?
Uchenikowitz
ZliDule ja danas isao, vrtuljak mi je radio, filozofe nisam bas rijesio dobro jer deadlockaju nakon nekog vremena, ali sreca rekao mi je da prekinem ispis (savjet: ispisuj dosta toga da mu se ne da to gledat). Objasni po kodu sve, pricaj stalno, ne daj da dode do rijeci. Ja dobio 8/10. Takoder pise da moras predat labos najkasnije 24 sata prije prijavljenog termina, ja sam kasnio i nije bio problem.
bodilyfluids
Kako je izgledalo ispitivanje? Jel problem ako dobro implmentiram algoritam putujuce znacke, al sam hackovo vrtuljak? Vrtuljak mi nije zaseban proces nego ga simuliram brojem zauzetih mjesta zapisanih u datoteci… Toj datoteci pristupaju procesi visitori kad imaju znacku.
viliml
Dragi prijatelj strojnog učenja Mislim da je ok koristiti falj jer to nije specificirano kako treba, ali vrtuljak ipak ima svoju ulogu.
Tko ti ispisuje “vrtuljak počinje” i “vrtuljak završava”? Kako posjetitelji znaju kad se vrte i kad stoje?
Ne vjerujem da se zbilja uspio riješiti zadatak bez vrtuljka.
Shvaćaš da se onaj pseudokod odnosi na sve, ne samo na centralizirani? Značka se koristi samo za pristup dijeljenoj memoriji (kod tebe fajlu), sve ostalo su poruke. Osim poruka za sinkronizaciju kritičnog odjeljka imaju te poruke opisane u pseudokodu, sve treba zajedno
Daeyarn
Maddy
ovo je ok izlaz onda za putujucu znacku?
gad_gadski
Za ove s neparnim jmbagom, vezano za cjevovod i protokol Ricarta i Agrawala, sto nije po tom protokolu da će moć u kritični odsječak filozofi ulazit samo jedan po jedan? Jer po onim njihovim pravilima za taj protokol u prezi proces može uć u krit. ods. samo kad dobije odgovore od svih ostalih procesa, a dok je u kritičnom odsjecku, proces ne može poslati odgovor na zahtjeve drugih procesa. Ako sam ja dobro shvatio, to znači da ako je jedan protokol u kritičnom odsječku (jede), i ako neki drugi proces želi u K.O., on će morati čekati ovog da završi pošto čeka njegov odgovor.
Rene
gad_gadski to i meni nije bilo jasno, pa sam napravio fiksno da sjede za stolom i cekaju potvrdu samo od svojih susjeda
Ne znam jel tako zamisljeno al s obzirom da pise da napravis kako zelis valjda je okej, nema deadlocka i nikad ne jedu dva susjeda istovremeno
Spuk
Moze netko napisat kako izgleda ispitivanje. Gore je netko napisao da se kod nije ni gledo pa sta onda ispituju tih pol sata?
KiflaKiflic
Za protokol Ricarta i Agrawala, povecavamo li logicki sat ako filozof primi odgovor? Ili samo na primitak poruke zahtjev?