進程切換與模式切換


進程切換

•進程切換指從正在運行的進程中收回處理器,讓待運行進程來占有處理器運行

•進程切換實質上就是被中斷運行進程與待運行進程的上下文切換,處理過程是:

  •保存被中斷進程的上下文

  •轉向進程調度

  •恢復待運行進程的上下文

 

模式切換

•進程切換必須在操作系統內核模式下完成,這就需要模式切換

•模式切換又稱處理器狀態切換,包括:

  •用戶模式到內核模式由中斷/異常/系統調用中斷用戶進程執行而觸發

  •內核模式到用戶模式由OS執行中斷返回指令將控制權交還用戶進程而觸發

 

模式切換的基本工作任務

•中斷裝置完成正向模式切換,包括:

  •處理器模式轉為內核模式

  •保存當前進程的PC/PSW值到核心棧

  •轉向中斷/異常/系統調用處理程序

•中斷返回指令完成逆向模式轉換,包括:

  •從待運行進程核心棧中彈出PSW/PC值

  •處理器模式轉為用戶模式

 

進程切換的工作過程

1. (中斷/異常等觸發)正向模式切換並壓入PSW/PC

2. 保存被中斷進程的現場信息

3. 處理具體中斷/異常

4. 把被中斷進程的系統堆棧指針SP值保存到PCB

5. 調整被中斷進程的PCB信息,如進程狀態

6. 把被中斷進程的PCB加入相關隊列

7. 選擇下一個占用CPU運行的進程

8. 修改被選中進程的PCB信息,如進程狀態

9. 設置被選中進程的地址空間,恢復存儲管理信息

10.恢復被選中進程的SP值到處理器寄存器SP

11.恢復被選中進程的現場信息進入處理器

12.(中斷返回指令觸發)逆向模式轉換並彈出PSW/PC

 

進程切換的發生時機

•進程切換一定發生在中斷/異常/系統調用處理過程中,常見的情況是:

•阻塞式系統調用、虛擬地址異常導致被中斷進程進入等待態

•時間片中斷、I/O中斷后發現更高優先級進程 導致被中斷進程轉入就緒態

•終止用系統調用、不能繼續執行的異常導致被中斷進程進入終止態

 

進程切換與模式切換

•一些中斷/異常不會引起進程狀態轉換,不會引起進程切換,只是在處理完成后把控制權交回給被中斷進程,處理流程是:

  •(中斷/異常觸發)正向模式切換壓入PSW/PC

  •保存被中斷進程的現場信息

  •處理中斷/異常

  •恢復被中斷進程的現場信息

  •(中斷返回指令觸發)逆向模式轉換彈出 PSW/PC

 

參考資料

https://www.icourse163.org/course/NJU-1001571004


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM