當前位置:編程學習大全網 - 編程語言 - #中斷 vs 進程調度

#中斷 vs 進程調度

對於中斷處理和進程調度的 搶占方式 (處理機調度),因為二者都有 打斷 的性質,都是 搶占了CPU ,所以容易混淆。

壹、首先,中斷處理是 外設 打斷進程,比如壹個進程在使用cpu,它的 某條指令到達了中斷周期 ,那麽,這個進程被中斷。( 註意:是被外設中斷而不是被壹個進程打斷。) 就算中斷嵌套,嵌套的也是其他中斷而不是進程。 中斷服務程序 的執行並不視為進程執行。

二、進程調度 搶占方式 則是 CPU中壹個進程打斷另壹個執行中的進程 。(如處於改進程某條指令的取值、執行或者非中斷處理的任何時候)

所以可以這麽認為——中斷處理是進程A執行過程中發生的,且壹旦發生無法切換為另壹個進程B。

因為 中斷恢復 所需要的所有數據都放在被中斷進程的內核棧中,如果發生切換就找不到之前的被中斷進程了,使得中斷無法恢復。

註:中斷處理保存PC(隱指令保存斷點)和PSW、通用寄存器內容(保護現場)都是為了恢復被中斷進程。

進程切換保存PC、PSW是為了下次再輪到被切換進程執行時該從哪開始。從這點看,他們的任務是壹致的。(都是保存在被 中斷 / 切換進程的PCB 中)

進程切換必定使用中斷 ,這似乎與上文所述發生了矛盾,但實際上—— 上文所有中斷說的都是外中斷,而不是內中斷 。

? 因為 進程切換 必定發生在 內核態 (管態),而“中斷”,嚴格地說——“內中斷”是目態進入管態的必要不充分條件,所以可見進程切換必定借助內中斷且必定發生了處理機模式切換。

(更確切的說這個內中斷是軟中斷(指令產生的),是自願的, 往往這個軟中斷就是訪管指令 )

內中斷:信號來源於CPU內部,與當前執行的指令有關。如整數除0。

外中斷:信號來源於CPU外部,與當前執行的指令無關。(廣義的中斷)如用戶強制結束壹個進程。

  • 上一篇:沖床、臺鉆、油壓切割機算不算特種設備?
  • 下一篇:培訓中心起名 機構霸氣好聽名字推薦
  • copyright 2024編程學習大全網