上一篇篇幅有點長,所以補一篇
上一篇我們說道,時間片中斷會導致線程切換,但並不是說只要有時鍾中斷就一定切換線程,時鍾中斷時,會有兩種情況導致線程切換:
- 當前線程的CPU時間到期
- 有備用線程(KPCR.PrcbData.NextThread)
CPU時間片
線程時間片存儲在_KTHREAD.Quantum,所以每次切換時,都會對這個值進行初始化
存在備用線程
這個值被設置時,即使當前線程的CPU時間片沒有到期,仍然會被切換,參考KiDispatchInterrupt
上一篇篇幅有點長,所以補一篇
上一篇我們說道,時間片中斷會導致線程切換,但並不是說只要有時鍾中斷就一定切換線程,時鍾中斷時,會有兩種情況導致線程切換:
線程時間片存儲在_KTHREAD.Quantum,所以每次切換時,都會對這個值進行初始化
這個值被設置時,即使當前線程的CPU時間片沒有到期,仍然會被切換,參考KiDispatchInterrupt
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。