<div dir="auto">E simplu: când un thread este blocat (wait pe orice primitivă de sincronizare) ai garanția că schedulerul din kernel va pune la un moment dat un thread al procesului tău care nu e blocat. Deci simplu blochezi thread-ul care nu vrei să se execute. Orice funcție de wait merge.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 1, 2019, 7:24 PM Ionuț Mihalache <<a href="mailto:ipopescu46@gmail.com">ipopescu46@gmail.com</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">Pentru întrebarea 2: Nu modific nimic în kernel dar trebuie să mi se asigure cumva că dacă eu îi zic thread-ului 2 să face wait până când este primul în coada cu priorități, o să fie pus alt thread pe procesor.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">În mie., 1 mai 2019 la 19:20, Paul Olaru <<a href="mailto:olarupaulstelian97@gmail.com" target="_blank" rel="noreferrer">olarupaulstelian97@gmail.com</a>> a scris:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>2. Nu trebuie să umblăm la kernel altfel decât prin a lăsa un singur thread activ la un moment dat în general.<div dir="auto">1. Decrementarea se poate face oricând, dar "context switch-ul" se va face după, dacă e cazul.</div><div dir="auto">3. Am și eu întrebarea asta. Parcă am văzut un mail în care se spunea că ambele abordări sunt ok.</div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 1, 2019, 7:17 PM Ionuț Mihalache via so <<a href="mailto:so@cursuri.cs.pub.ro" target="_blank" rel="noreferrer">so@cursuri.cs.pub.ro</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Salut,<div><br></div><div>După ceva timp în care am tot încercat diferite variante de implementare pentru a rezolva prima partea a testelor, cele până la round robin inclusiv am niște întrebări punctuale:</div><div><br></div><div>1. În cazul so_fork() începem să scadem cuanta înainte sau după pthread_create?</div><div>2. Noi trebuie să modificăm ordinea thread-urilor noastre și în cadrul planificatorului din kernel sau trebuie să lucrăm doar cu thread-urile pe care le avem noi în coada cu priorități din cadrul planificatorului nostru la un moment dat?</div><div>3. Thread-ul care face primul so_fork(), cel din test, trebuie să apară în coada noastră? Și dacă nu trebuie să avem noi grijă cumva să nu mai fie pe procesor până când nu se execută thread-urile din cadrul planificatorului nostru?</div><div><br></div><div>Mulțumesc,</div><div>Ionuț Mihalache</div></div>
_______________________________________________<br>
<a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer noreferrer noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a></blockquote></div></div></div>
</blockquote></div>
</blockquote></div>