8.Windows线程切换_时间片管理
生活随笔
收集整理的這篇文章主要介紹了
8.Windows线程切换_时间片管理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
時鐘中斷會導致線程進行切換,但并不是說只要有時鐘中斷就一定會切換線程,時鐘中斷時,兩種情況會導致線程切換:
關于CPU時間片
時鐘中斷會導致線程進行切換,但并不是說,只要有時鐘中斷就一定會切換線程,時鐘中斷時,兩種情況會導致線程切換:
存在備用線程(NextThread)
這個值被設置時,即使當前線程的CPU時間片沒有到期,仍然會被切換.參見KiDispatchInterrupt代碼
線程切換的三種情況:
(1)、當前線程主動調用API:
API函數->KiSwapThread ->KiSwapContext->SwapContext
(2)、當前線程時間片到期:
KiDispatchlnterrupt->KiQuantumEnd ->KiSwapContext ->SwapContext
(3)、有備用線程(KPCR.PrcbData.NextThread)
KiDispatchInterrupt->SwapContext
總結
以上是生活随笔為你收集整理的8.Windows线程切换_时间片管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7.Windows线程切换_时钟中断切换
- 下一篇: 9.Windows线程切换_TSS