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.
On Wed, May 1, 2019, 7:24 PM Ionuț Mihalache <[email protected]> wrote: > 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. > > În mie., 1 mai 2019 la 19:20, Paul Olaru <[email protected]> a > scris: > >> 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. >> 1. Decrementarea se poate face oricând, dar "context switch-ul" se va >> face după, dacă e cazul. >> 3. Am și eu întrebarea asta. Parcă am văzut un mail în care se spunea că >> ambele abordări sunt ok. >> >> >> On Wed, May 1, 2019, 7:17 PM Ionuț Mihalache via so <[email protected]> >> wrote: >> >>> Salut, >>> >>> 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: >>> >>> 1. În cazul so_fork() începem să scadem cuanta înainte sau după >>> pthread_create? >>> 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? >>> 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? >>> >>> Mulțumesc, >>> Ionuț Mihalache >>> _______________________________________________ >>> http://ocw.cs.pub.ro/courses/so/info/lista-discutii >> >>
_______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
