中断

上半部分

  在内核响应一个中断时,会执行特定的中断处理程序(中断处理程序不和设备关联,而是和特定中断关联,一个设备可以有多个中断),当中断来临时,它立即执行,但只做严格有限的工作。

  比如:网卡收包,当数据来时,cpu需要立即处理数据,以便网卡能继续收包,在中断处理程序中应答硬件,拷贝最新的数据到内存中,然后网卡读更多的数据,这是在中断处理程序中执行的;处理数据和其它的工作在下半部分执行。

  中断处理程序打断了其它代码,所以中断处理程序应该尽可能的短。

  如果当前有一个中断处理程序正在执行,设置SA_INTERRUPUT与该中断同级的其它中断会被屏蔽;最坏情况,该处理器上的其它中断都被屏蔽。

上班部分和下半部分

  1. 如果对时间敏感,将其放到中断处理程序中
  2. 如果任务和硬件相关,将其放到中断处理程序中
  3. 如果保证任务不被其它中断打断,将其放到中断处理程序中

posted on 2020-11-22 11:15  tianzeng  阅读(193)  评论(0编辑  收藏  举报

导航