[SZRUSV] 2. laboratorijska vježba - 2021/2022
[obrisani korisnik]
jel ima netko tko može i ima volje malo pojasniti kako bi ovo trebalo izgledati? pretpostavljam da nam je lift jedna dretva i generator putnika posebna dretva (+ neka koja se koristi za ispis u konzolu), ali nije mi baš jasno kako srediti komunikaciju, ne znam jel overthinkam zbog labosa iz NOS-a, ali krenuo sam razmišljati o nekim redovima poruka i slično pa ne znam jel idem u skroz krivom smjeru?
nnn
[obrisani korisnik] Ne znam u čemu radiš ali evo ti moj postupak otprilike.
Imaš dretve: graphics (1), elevator (1 ili 2 ovisno radiš li lab3 ili lab4), passengers (random broj njih). Za komunikaciju koristim globalne varijable, ili zajedničku memoriju kako god hoćeš to nazvat.
Neke od globalnih varijabli: lokacija lifta 1 (int), lokacija lifta 2 (int), jesu li otvorena vrata lifta 1 (bool), tko sve čeka lift na katu 1 (list), tko je izašao na katu 3 (list), tko je u liftu 1 (list) etc.
- Graphics samo rendera te podatke i ne mijenja ih. Ja koristim string formatiranje i samo to printam kao output.
- Elevator dretva gleda di treba ići gore ili dole a za to koristim globalnu varijablu kao listu na koje katove treba ići. Ako ide lift sa 1 na 4 kat a netko čeka na 3 onda stane na 3 i otvori vrata. Nakon tog mora 3 izbaciti sa liste katova na koje treba ići.
- Passenger dretva dodaje kat na kojem čeka u listu koju lift gleda. Kad uđe u lift dodaje kat na koji ide. Ovdje možeš imat problem ako ti liste u tom jeziku nisu thread safe. Npr u Pythonu jesu.
Prvi labos sam radio sa socketima i bilo je puno kompliciranije od ovoga postupka (varijable i dretve), barem što se sinkronizacije tiče.
[obrisani korisnik]
dinoo hvala ti! imam samo pitanje za Passenger dretvu, jel ti ta dretva samo generator putnika - odnosno nešto što puni globalne varijable s random podacima, ili ti je svaki putnik jedna dretva (koja je živa dok god je putnik u sustavu)?
member
Kako izgleda odgovaranje labosa? Jel pita po kodu di je šta i kako smo izveli ili?
Ardura
[obrisani korisnik] Ovo prvo, rekao je prof da putnici ne moraju biti dretve
[obrisani korisnik]
jel vama isto ovako na repozitoriju na gitu?
Ardura
Koliko je dovoljno rijesiti za labos da se smatra obavljenim?
[obrisani korisnik]
Maddy jesi kojim slucajem saznala? jel itko imao ovo danas da podijeli iskustva?
Ardura
[obrisani korisnik]
Imala danas, pokrenes prvo program, on samo gleda kako se odvija i tjt. Meni je zamjerio sto mi generator kad ga opet pokrenem ne nastavlja s id-jem nego opet ide od 1 i nije mu bas bilo drago to. Nije gledao imas li radno cekanje ni imas li prioritete, mislim da mu je najbitnije da generator salje por i da ih moze vide dretvi obradivati bez zastoja. Od kodova mi je samo generator pogledao, zanimao ga je red poruka, nista predetaljno. Ako ti kod ne radi poslat ce te na nadoknadu, i ako primjeti nesto da nemas pitat ce te kako/zasto i mozes li srediti. Cini mi se da ima malo vise kriterije sad nego prije, ali vrijedi doc pa sto bude.
[obrisani korisnik]
jel za zadatak s raskrscem svakih nekoliko sekundi stvaramo random pjesaka ili auto na random strani krizanja?
Jokke
[obrisani korisnik] Ja sam napravio da unosim tipa “P-NW-NE” za pjesaka koji ide sa NW na NE. Vjerojatno mozes i da se generiraju random, sumnjam da mu je to bitno
joj
[obrisani korisnik] ja sam tak napravila i bilo je dobro
nnn
Kako ste implementirali fifo listu sa ovim zadnjim u poslužitelj.c
?
paradajz
dinoo Ja sam posudio implementaciju najobicnije liste za c. Mislim da ima primjer na gitu ovdje na studosima. Ugl. obican list.append i list.remove, samo zakljucano u kriticni odsjecak naravno