viliml Isto bi s redovima poruka imao potencijalni deadlock kad su oni načelno implementirani kao cjevovodi. Problem deadlocka ne proizlazi iz implementacije nego iz formulacije problema.
Može li netko napisati dobar pseudokod za ovaj zadatak s putujucom znackom? Nije mi jasno def kako s njom baratati
viliml je li vidio da si koristio red poruka, a ne cjevovod?
Lyras Nije opće gledao izvorni kod.
Prilikom svakog pokretanja zadatka s vrtuljkom mi je drugaciji ispis, ponekad je skroz neispravan. Jel to zato sto je red pun ili? Ne kuzim kako bi ocistio red, probao sam u terminalu s ipcrm i za sigint sam stavio msgctl no ne rijesava problem. 🙄
neki tips & tricks za ovaj labos? trebam li proc neko gradivo u knjizi ili su dosta dane pripreme?
Zadatak s vrtuljkom mi se ponekad ne ugasi kada su procesi gotovi, jel itko imao slican problem?
Jel labos treba pisati u virtualki ili možemo i na OS-u domaćina?
Baksuz Ja u WSL-u sve radim (samo je bitno da je WSL verzija 2 jer verzija 1 ne podržava system V za redove poruka)
jel ja smijem u vrtuljku kad posjetitelj siđe s vrtuljka poslat poruku vrtuljku da je sišao, radim raspodijeljeni centralizirani protokol
steker yes
prepourka u kojem jeziku radit?
Me Kojeg god najviše znaš, obično su C(++) ili Python u igri
Jel smijemo imati više redova poruka? Imam ovaj sa značkom
Jel ima neko neki pseudokod za 2. zad, lamport?
u prvom zad kako fino randomizirat ovaj sleep u c-u, metnula sam srand(getpid()) za svaki proces, al opet nekako dolaze skoro isti brojevi u isto vrijeme na vrtuljak, eventualno ako se jedna/dvije znamenke promjeni
steker bojim se da onda stalno dobiveš iste process ID-jeve obično je kuharica staviti srand(time(NULL));, ali da ne bi svi procesi generirali iste brojeve treba nekako i to riješiti stack overflow predlaže srand(getpid() * time(NULL));
srand(time(NULL));
srand(getpid() * time(NULL));
kak da obrišem poruke iz reda? ili mozda obrisat cijeli red? jer nakon 1 pokretanja programa ostanu neke poruke valjda u redu i onda iduci put kad pokrenem program je sve nesto krivo i do sad mi je jedino radilo “ugasi upali virtualku” (probala sam ipcrm -Q id, al nakon tog se vise ne zele slat poruke)
Kako bi naš vrtuljak trebao znati kojem procesu poslati poruku sjedni? Ako npr. vrtuljak radi msgrcv od posjetitelja za poruke “želim sjest”, kako bi on trebao znat koji proces je poslao tu poruku?
Baksuz identitet procesa može biti dio poruke