[so] [Tema4][Linux | Windows] Partea de preemptare

Ionuț Mihalache ipopescu46 at gmail.com
Wed May 1 21:31:19 EEST 2019


Și încă o întrebare pe care am uitat să o adresez: Cum să fac debug pentru
că dacă folosesc printf pot apărea sincronizări nedorite?

În mie., 1 mai 2019 la 19:26, Paul Olaru <olarupaulstelian97 at gmail.com> a
scris:

> 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 <ipopescu46 at gmail.com> 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 <olarupaulstelian97 at gmail.com>
>> 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 <
>>> so at cursuri.cs.pub.ro> 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
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20190501/6e4da6bf/attachment-0001.html>


More information about the so mailing list