在Linux系統下,CPU總是處於下面三種狀態之一:
1、內核態,運行進程上下文。
2、內核態,運行於中斷上下文。
3、用戶態,運行進程上下文。
進程上下文和中斷上下文是Linux系統一個比較重要的概念,下面從程序的角度總結一下各屬於哪種上下文:
1、中斷處理程序處於中斷上下文。
2、異常處理程序通常從用戶空間的進程發起,處於進程上下文,可以切換到其他進程。
3、軟中斷(softirq)、tasklet等可延遲函數通常運行在中斷上下文,而工作隊列運行在進程上下文。
4、系統調用屬於異常處理程序,運行在進程上下文。
注:系統調用是通過叫software interruppt的軟件中斷(一種異常)來實現的,跟軟中斷(softirq)沒有關係。
5、信號處理函數屬於異常處理程序,運行在進程上下文,在函數運行過程中可發生進程切換。
(完)