2015-05-16 1:31 GMT+03:00 Raluca-Elena GRIGORESCU via so <[email protected]>: > Bună, > > Am o nelămurire legată de testele pentru tema 4(windows). Acestea nu au un > timeout precum cele de pe linux? > Local îmi trec 18 teste din 20, celelalte 2 blocându-se, într-adevăr. Totuși, > când pățeam ceva asemănător pe linux, > timeout-ul bloca rularea testului la infinit si primeam totuși punctajul pe > celelalte teste. > > Am încărcat pe vmchecker arhiva cu tema pe windows si nu primesc outputul > niciunui test(tema rulează foarte mult si am presupus că din cauza testelor > care se blochează este oprită forțat la un moment dat). >
Bună Raluca, Am făcut puțin debugging pe implementarea ta și am ajuns la următoarea concluzie. Testele care creează un număr mare de thread-uri (testele 16 și 20) aproape blochează mașina virtuală iar output-ul checker-ului nu mai apucă să fie afișat. Cauza blocării este sincronizarea prin busy-waiting (prin while-uri) pe care o folosești. Astfel multe thread-uri ajung să consume inutil procesorul, întreg sistemul fiind aproape blocat. Pentru această temă nu trebuie să folosești busy-waiting, un thread trebuie să se blocheze (fiind introdus în coada READY a planificatorului) atunci când așteaptă să fie planificat. Adrian _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
