<div dir="ltr">Salut, Alex!<br><br><div class="gmail_quote"><div dir="ltr">On Wed, May 9, 2018 at 5:26 PM Alexandru Militaru via so <<a href="mailto:so@cursuri.cs.pub.ro">so@cursuri.cs.pub.ro</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Salut,<div><br></div><div>Am și eu câteva nelămuriri în ceea ce privește enunțul temei. </div><div><br></div><div>1. Cum folosesc timpul de execuție? Cum știu când unui thread/proces i-a expirat cuanta? Cum măsor acest timp?</div></div></blockquote><div><br></div><div>După cum este specificat și în enunț[1], trebuie să folosiți un timp logic. Fiecare instrucțiune durează o singură perioadă de ceas - prin urmare, pentru măsurarea timpului, poți calcula numărul total de rulări ale funcțiilor.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>2. În enunț se spune: ”<span style="color:rgb(51,51,51);font-family:Verdana,"Lucida Grande",Lucida,Helvetica,Arial,sans-serif;font-size:13px;text-align:justify">Handlerul executat de thread va primi ca parametru prioritatea acestuia”. </span><span style="color:rgb(51,51,51);font-size:13px;text-align:justify"><font face="arial, helvetica, sans-serif">Ce face handler-ul cu prioritatea? De ce are nevoie de ea? De prioritate nu are nevoie doar scheduler-ul pentru a trimite thread-urile pe procesor?</font></span></div></div></blockquote><div><br></div><div>Ai dreptate, în mod normal handler-ul nu ar avea nevoie de prioritate.</div><div>În schimb testele construite de noi folosesc acest parametru pentru a identifica cu ce prioritate rulează un anumit handler. O implementare mai "curată" ar fi să păstrăm în binarul de test o mapare a handler-ului și prioritatea cu care rulează el, dar momentan nu este implementat așa. Vom avea în vedere acestă schimbare pentru anul viitor. Desigur, dacă vreți să contribuiți cu această schimbare, sunteți bine-veniți să deschideți un pull request[2], pentru care veți fi cu siguranță răsplătiți cu karma points :). </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><span style="color:rgb(51,51,51);font-size:13px;text-align:justify"><font face="arial, helvetica, sans-serif"><br></font></span></div><div><span style="color:rgb(51,51,51);font-size:13px;text-align:justify"><font face="arial, helvetica, sans-serif">3. Cum ar trebui să implementăm funcția </font></span><code style="font-size:13px;padding:0px;margin:0px;background-color:rgb(251,250,249);color:rgb(51,51,51);border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;font-family:monospace,serif">void so_exec()</code><span style="font-size:13px;color:rgb(51,51,51);font-family:Verdana,"Lucida Grande",Lucida,Helvetica,Arial,sans-serif;text-align:justify">? </span></div></div></blockquote><div><br></div><div>so_exec ar trebui să aștepte până când logica de planificare îi permite să ruleze, după care incremenează timpul logic și iese.</div><div> </div><div>[1] <a href="https://ocw.cs.pub.ro/courses/so/teme/tema-4#timp_executie">https://ocw.cs.pub.ro/courses/so/teme/tema-4#timp_executie</a></div><div>[2] <a href="https://github.com/systems-cs-pub-ro/so-assignments/tree/master/4-scheduler">https://github.com/systems-cs-pub-ro/so-assignments/tree/master/4-scheduler</a></div><div><br></div><div>Sport!</div><div>Răzvan</div></div></div>