Salut, Alex!

On Wed, May 9, 2018 at 5:26 PM Alexandru Militaru via so <
so@cursuri.cs.pub.ro> wrote:

> Salut,
>
> Am și eu câteva nelămuriri în ceea ce privește enunțul temei.
>
> 1. Cum folosesc timpul de execuție? Cum știu când unui thread/proces i-a
> expirat cuanta? Cum măsor acest timp?
>

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.


>
> 2. În enunț se spune: ”Handlerul executat de thread va primi ca parametru
> prioritatea acestuia”. 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?
>

Ai dreptate, în mod normal handler-ul nu ar avea nevoie de prioritate.
Î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 :).


>
> 3. Cum ar trebui să implementăm funcția void so_exec()?
>

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.

[1] https://ocw.cs.pub.ro/courses/so/teme/tema-4#timp_executie
[2]
https://github.com/systems-cs-pub-ro/so-assignments/tree/master/4-scheduler

Sport!
Răzvan
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Raspunde prin e-mail lui