任务内核态堆栈和用户态堆栈之间的切换
(1)所有中断服务程序都属于内核代码,如果一个中断产生时任务正在用户代码中执行,那么该中断就会引起CPU特权等级从3级到0级的变化,CPU就会进行用户态堆栈到内核态堆栈的切换操作。因为中断服务程序在内核中。
(2)如果一个任务正在内核态中运行,那么若CPU响应中断就不再需要进行堆栈切换操作,因为此时该任务运行的内核代码已经在使用内核态堆栈,并且不涉及优先级别的变化。
任务内核态堆栈和用户态堆栈之间的切换
(1)所有中断服务程序都属于内核代码,如果一个中断产生时任务正在用户代码中执行,那么该中断就会引起CPU特权等级从3级到0级的变化,CPU就会进行用户态堆栈到内核态堆栈的切换操作。因为中断服务程序在内核中。
(2)如果一个任务正在内核态中运行,那么若CPU响应中断就不再需要进行堆栈切换操作,因为此时该任务运行的内核代码已经在使用内核态堆栈,并且不涉及优先级别的变化。