進程調度發生的時機取決於調度原因與調度方式(可剝奪/不可剝奪)。以下為可剝奪模式下的典型觸發條件:
sleep)進入睡眠態。P 操作因資源不足阻塞;V 操作喚醒等待隊列進程。| 模式 | 特徵 | 調度觸發點 |
|---|---|---|
| 可剝奪式(Preemptive) | 高優先級就緒進程立即搶佔 CPU | 優先級變化、中斷返回、時間片結束等 |
| 不可剝奪式(Non-preemptive) | 當前進程主動放棄前持續佔用 CPU | 阻塞、睡眠、時間片用完、主動調用調度器 |
阻塞:資源不可用時掛起進程,釋放 CPU,條件滿足再喚醒。
自旋鎖:獲取失敗進入死循環檢查,不釋放 CPU,屬於「忙等待」,不屬於阻塞狀態。
理解調度時機與阻塞機制,是掌握作業系統併發控制、優化多線程程序性能的基石。區分內核/用戶線程調度模型、阻塞與自旋的適用場景,能避免常見的死鎖、活鎖與優先級反轉問題。