中断、上下部分
问:写一个中断服务需要注意哪些?如果中断产生之后要做比较多的事情你是怎么做的?
答:中断处理例程应该尽量短,把能放在后半段(tasklet,等待队列等)的任务尽量放在后半段。
评:写一个中断服务程序要注意快进快出,在中断服务程序里面尽量快速采集信息,包括硬件信息,然后推出中断,要
做其它事情可以使用工作队列或者tasklet方式。也就是中断上半部和下半部。
第二:中断服务程序中不能有阻塞操作。为什么?大家可以讨论。
第三:中断服务程序注意返回值,要用操作系统定义的宏做为返回值,而不是自己定义的OK,FAIL之类的。
用户空间与内核空间,进程上下文与中断上下文[总结]_漫不经心-CSDN博客_进程内核空间
Linux 进程控制——等待队列详解_漫不经心-CSDN博客_linux 等待队列
这个把上下部分的用法讲得听清楚
linux中断的上半部和下半部 【转】 - sky-heaven - 博客园
自旋锁、信号量、互斥
自旋锁和信号量在互斥使用时需要注意哪些?在中断服务程序里面的互斥是使用自旋锁还是信号量?还是两者都能
用?为什么?
答:使用自旋锁的进程不能睡眠,使用信号量的进程可以睡眠。中断服务例程中的互斥使用的是自旋锁,原因是在中断处理例程中,硬中断是关闭的,这样会丢失可能到来的中断。
【同步与并发】信号量、互斥锁、自旋锁相关问题_诸葛一帆丶的博客-CSDN博客
[Linux]互斥机制(中断屏蔽、原子操作、自旋锁、信号量)_Younix凌乱的草稿本-CSDN博客_linux 中断 信号量