[NOS] 1. laboratorijska vježba - 2021/2022
jobi
branimir1999 ja sam ima ukupno 16 cjevovoda, svaki ima r/w za lijevog i desnog susjeda
branimir1999
Radim Lamportov algoritam i cini mi se da sam ga dobro implementirao, ali mi zakoci algoritam s 5 filozofa. Kada stavim 3 filozofa, onda mi prode par rundi i onda zablokira. Cime ovo moze biti uzrokovani? Ako prvo provjeravam lijevi cjevovod, pa desni, je li moguce da je zapeona lijevom cjevovodu koja nikada nece doci ili se radi o necem drugom ovdje?
micho
branimir1999 Imaš deadlock i to je upravo primjer koji ilustrira mogućnost toga uz sinkronizaciju, skrolaj gore jer smo pričali o rješenjima.
ana
Meni se u lamportu dogada deadlock zato sto zapne na read funkciji jer nije non blocking. Jel zna netko kako napraviti da ili bude non blocking ili da mogu provjeriti jel postoji nesto u cjevovodu jer ja vec sat vremena googlam i nisam s nicim jos to uspjela rijesiti.
Baksuz
Što ako filozof n šalje zahtjev filozofu lijevo od sebe, a ovaj je u fazi razmišljanja? Hoće li naš filozof n morati čekati da lijevi filozof poželi jesti da bi mu ovaj poslao odgovor? Jer koliko sam skužio za vrijeme razmišljanja filozofi nemaju interakciju jedni a drugima.
micho
Baksuz Upravo u vremenu razmišljanja mu i jedino može odgovoriti
tomekbeli420
Baksuz da tak sam ja riješio, imao sam Ricarta i Agrawalu
Dakle filozof šta radi je
spava (misli)
Kad odspava svoje, onda gleda koje poruke koje je dobio i reagira na njih (reagira kao da on još ne želi uzimati štapće/ulaziti u kritični odsječak.)
Tek kad nema nikakvih poruka za njega, e tek onda on odluči poslati zahtjev susjednim filozofima da hoće štapiće (hoće u KO), i onda čeka poruke
Kad mu se osiguraju uvjeti za ulazak u KO onda opet odspava (dakle baš sleep, ne gleda šta mu dolazi u porukama)
Nakon izlaska obavi sta treba za izlazak (za Ricarta i Agrawalu salje odgovore samo onima koji cekaju na njega)
I onda opet na početak (spavanje/razmišljanje)
I onda na početak (ope
Baksuz
M̵̧̩͑̀͝î̶͍̉ć̴̝̾́̀o̶̺̟̣͂̽ što nije da je vrijeme razmišljanja kao sleep funkcija, a dio kada jede je zapravo dio kada se bori za svoje štapiće i naposljetku jede? Možda sam ja krivo shvatio.
micho
Baksuz Ne znam kako si to shvatio jer to uopće nije definirano u zadatku, to se rješava proizvoljno. Iz perspektive sustava, vrijeme razmišljanja je idleanje, no to može biti i jedenje. Meni je logičnije da kad jedeš ne odgovaraš na nikakve zahtjeve za vilicama, a filozofiranje je lako prekinuti.
Baksuz
tomekbeli420 e tako sam i ja mislio riješit. Hvala na info.
[obrisani korisnik]
na koji način ste provjerili da treba ubit vrtuljak proces? (centralni čvor varijanta)
tomekbeli420
[obrisani korisnik] sa wait(NULL)
sačekaš da proces dijete (posjetitelj u kontekstu ovog zadatka) završi.
Pozoveš to onoliko puta koliko ima djece. Nakon što mu svi procesi djeca završe, tek onda završi glavni proces. Imaš primjere korištenja ovdje
Baksuz
Na koji način ste obavili sinkronizaciju između 2 susjedna filozofa? S obzirom da samo 2 filozofa dijele štapić u određenom trenutku, imam osjećaj da je redundatno da stalno šalju zahtjeve, pa odgovore pa izlazak?
tomekbeli420
Baksuz ako ćeš sinkronizirati dva susjedna to nije dobro jer ti se može dogoditi stanje u kojem svaki filozof drži jedan štapić i ne može do drugog, što je deadlock. Da bi neki filozof išta napravio sa bilo kojim štapićem pokraj sebe, mora dobiti odobrenje od oba susjedna filozofa.
[obrisani korisnik]
moze netko pojasnit ovaj dio s filozofima, procitao sam o Lamportu, ali mi nije jasno kakve to veze ima s cjevovodima te kako se to ukljucuje u cijelu pricu? pogotovo jer se u udzbeniku cijelo vrijeme spominju redovi poruka
anon00
Moze li mi tko reci je li ovo okej ispis za Ricarta i Agrawalu?
flicka
moze neko napisat šta ispituju?
AK10
flicka
malo po kodu, i razlika izmedu ricarta i agrawala i lamporta te o tim algoritmima malo ispita i tjt
Daeyarn
endyyyy jel veliki problem/jel provjeravaju “tocnost” implementacije algoritma u kodu ili nije velik naglasak na to(za cjevovode)?
micho
Daeyarn Što znači točnost? Ako ti rješenje nije fer to nije problem. Ako ti je rješenje konceptualno krivo onda da, skidaju za to, čak i ako ti se čini da dobro radi. Npr. meni su prošle godine skinuli bod za jedan previd. Sve je to radilo ali je konceptualno bila greškica