Linux2.6 内核中”下半部分”分析
View
64
Download
0
Embed Size (px)
344 x 292429 x 357514 x 422599 x 487
DESCRIPTION
Linux2.6 内核中”下半部分”分析. Group:N3608. 目录. 简介 历史 & 发展 实现机制 软中断 Tasklet 工作队列 (new) 总结. 目录. 简介 历史 & 发展 实现机制 软中断 Tasklet 工作队列 (new) 总结. 中断服务一般都是在将中断请求关闭的条件下执行,以避免嵌套而使控制复杂化。可是如果关中断的时间太长就可能因为 CPU 不能及时响应其他的中断请求而使中断丢失;如果在将中断服务程序挂入中断请求队列时开中断,又会使中断过程不安全。 如何解决这种矛盾?. - PowerPoint PPT Presentation
Text of Linux2.6 内核中”下半部分”分析
Linux2.6Group:N3608
&Tasklet(new)
&Tasklet(new)
CPU
&Tasklet(new)
bottom half(BH)
BH32bottom half32bottom halfBHbottom half
Softirq & tasklet2.3BH32Tasklettasklettasklet
work quque2.5BHwork queue
2.6tasklet
&Tasklet(new)
softirq_action
Kernel/softirq.c32softirq_action322.6.24.18
void softirq_handler(struct softirq_action *) actionsoftirq_action
ksoftirqd
do_softirq()
pendinglocal_softirq_pending()hsoftirq_vecpending h->action(h)1softirq_vec
pendingpending
&Tasklet(new)
TaskletTasklettasklet_structtasklet.Tasklet
tasklettasklettasklet_vectasklet_hi_vectasklet_structTasklettasklet_schedule()tasklet_hi_schedule()tasklet_struct
do_irqtasklet_action()tasklet_hi_action()tasklet
&Tasklet(new)
cpu_workqueue_structcpu_workqueue_struct
worker_tread().
work_struct()
work_struct
Work_thread()
forschedule()TASK_RUNNINGrun_workquque()
&Tasklet(new)