对于当前线程来说,要交出CPU的控制有如下几个常见的场景:
(1)当前线程为内核线程,主动调用(schedule)交出控制权
(2)当前线程为内核线程,中断产生后,当前线程保持现状
(3)当前线程为内核线程,中断产生后,当前线程被占先调度。
(4)当前线程为用户线程,主动发起调度(schedule) 系统调用交出控制权
(5)当前线程为用户线程,中断产生后,返回用户态时保持现状
(6)当前线程为用户线程,中断产生后,返回用户态时被调度
其中(1)最为简单,他不涉及中断处理程序。剩下的5种情况都是有中断处理程序参与其中。
按照我们的常规定义中断处理程序的印象:中断程序不可重入,