执行顺序

在我的大学里,我正在研究一个涉及一些内核编程的项目。 其中一部分是可加载的内核模块,它为某些给定的中断注册中断处理程序。

现在我共享了中断处理程序和tasklets使用的数据结构,我想知道是否可以确定tasklet是按照它们被调度的相同顺序执行还是未定义?

例如,我的中断处理程序在时间t1和时间t2调用,每个调用执行tasklet_schedule(&customTasklet); 。 现在,我可以确定在时间t1安排的tasklet会先执行吗?


计划tasklet都存储在一个列表中; 系统以FIFO的顺序读取这个列表,所以:是的t1t2之前执行。

这里有一些代码来理解机制。

编辑

正如CL提醒的那样,每个CPU都有一个tasklet列表; 所以当你制作一个tasklet的时候,你正在调度它在活动的CPU上。 所以tasklet在同一个CPU上被序列化。 如果在CPU2上计划t1 un CPU1和t2 ,可能会发生t2t1之前执行。

链接地址: http://www.djcxy.com/p/84793.html

上一篇: order of execution

下一篇: What is the difference between tasklet and workqueue