[so2] Planificarea de tasklet-uri mutiple
Vlad Dogaru
ddvlad at herebedragons.ro
Fri Jul 25 16:22:30 EEST 2014
On Fri, Jul 25, 2014 at 03:56:35PM +0300, Catalin Vasile wrote:
> Lab6:
> "
> Dacă un tasklet a fost planificat de mai multe ori și nu a rulat între
> planificări, el va rula o singură data:
>
> tasklet_schedule(&tasklet);
> /* presupunem ca tasklet-ul nu a rulat inca */
>
> tasklet_schedule(&tasklet);
> /* in aceste condiții tasklet-ul va rula o singura data */
> "
>
> La ce se refera printr-un tasklet planificat de mai multe ori? Ce intelegem
> prin "acelasi tasklet", daca folosim aceeasi variabila pentru schedule sau
> acelasi handler?
Se referă la aceeași variabilă de tip struct tasklet_struct.
Te poți convinge urmărind funcția tasklet_schedule din interrupt.h:
static inline void tasklet_schedule(struct tasklet_struct *t)
{
if (!test_and_set_bit(TASKLET_STATE_SCHED, &t->state))
__tasklet_schedule(t);
}
Nu se uită la handler, ci doar la parametrul de tip tasklet_struct *.
Este posibil ca, la un moment dat, să fie programați spre rulare mai
mulți taskleți (adică mai multe tasklet_struct-uri) cu același handler.
Vlad
More information about the so2
mailing list