[so2] [Actiuni amanabile]

Daniel Baluta daniel.baluta at gmail.com
Thu Apr 2 20:33:54 EEST 2015


2015-04-02 19:47 GMT+03:00 Adrian Bogatu via so2 <so2 at cursuri.cs.pub.ro>:
>> "Acțiunile astfel planificate pot rula fie în context proces, fie în
>> context
>> întrerupere, în funcție de tipul de acțiune amânabilă. "
>>
>> Deci e corect in laborator? Pot rula si in context proces?
>
> Scrie clar in laborator: "Puteți folosi workqueue-uri pentru a planifica
> acțiuni care să ruleze în context proces"[1]
>
> Cum a zis si Tavi la curs, softirq-urile si tasklet-urile ruleaza _doar_ in
> context proces.
>
> La curs ai intrebat, daca nu ma insel, daca intreruperile pot rula in
> context proces. Raspunsul este: nu. Actinile amanabile, da (doar
> workqueue-urile).

Tratarea unei intreruperi a fost impartia in doua bucati in functie de
restrictiile contextului in care executam codul:

* (1) "top half" - parte ce se executa cu linia de intrerupere mascata.
Actiunile executate aici trebuie sa dureze putin, de cele mai multe
ori aici dăm ACK controlerului de intrerupere si amanam restul operatiilor
pe mai tarziu.

* (2)"bottom half" - partea mai relaxata. In functie de operatiile pe care
dorim sa le facem aici, putem folosi:
** (a) tasklet sau timer - daca operatiile pe care le facem nu sunt blocante.
** (b) workqueue sau un custom thread - daca operatiile pe care le
facem pot fi blocante.

Intrucat cazul 2b este foarte comun au fost introduse "threaded interrupts".
http://lwn.net/Articles/302043/


More information about the so2 mailing list