本文主要是介绍【Linux内核笔记】中断、中断处理程序和下半部 概念简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 中断
- 中断上下文
- 中断处理程序
- 中断处理
- 下半部与下半部机制
中断
硬件在需要的时候向内核发出信号
硬件 -电信号-> 中断控制器输入引脚 -中断号->处理器
不考虑时钟同步
(异常考虑时钟同步,处理方式和中断相似)
中断上下文
也称原子上下文,与进程无关。不可阻塞
中断处理程序
interrupt handler、interrupt service routine, ISR 是驱动程序的一部分
Linux内核中是C函数
驱动request_irq() 注册中断处理程序,激活中断线。包含参数:isq 中断号 handler 指针,实际操作函数 flags 标志 name 设备 dev 共享中断线(该函数可能会休眠,因为调用了kmalloc()函数)
卸载驱动、注销中断处理程序、释放中断线 free_irq(irq, dev)
中断处理
分为上半部和下半部,
上半部:立即执行的任务,简洁迅速。时间敏感、硬件相关、不被其他中断打断的工作 放在中断处理程序
下半部:允许稍后执行的工作,中断处理程序不执行的工作
下半部与下半部机制
下半部:指代中断处理流程中推后处理的部分;由链表组成,不允许打断
下半部机制:所有推后执行的内核机制。软中断(性能最高, 无顺序保障)、tasklet(同类型tasklet不能同时处理)、任务队列(是进程,可休眠,无顺序保障)
这篇关于【Linux内核笔记】中断、中断处理程序和下半部 概念简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!