为什么要区分上半部和下半部
发布时间:2023-01-24 10:48:00
发布人:wjy
中断服务程序异步执行,可能会中断其他的重要代码,包括其他中断服务程序。
因此,为了避免被中断的代码延迟太长的时间,中断服务程序需要尽快运行,而且执行的时间越短越好,所以中断程序只作必须的工作,其他工作推迟到以后处理。
所以Linux把中断处理切为两个部分:上半部和下半部。
上半部就是中断处理程序,它需要完成的工作越少越好,执行得越快越好,一旦接收到一个中断,它就立即开始执行。像对时间敏感、与硬件相关、要求保证不被其他中断打断的任务往往放在中断处理程序中执行;
而剩下的与中断有相关性但是可以延后的任务,如对数据的操作处理,则推迟一点由下半部完成。
下半部分延后执行且执行期间可以相应所有中断,这样可使系统处于中断屏蔽状态的时间尽可能的短,提高了系统的响应能力。
实现了程序运行快同时完成的工作量多的目标。