跳轉至

進程調度

進程調度

進程調度是低階調度,負責在多個就緒進程中選擇一個進程,分配CPU,使其得以運作。其目標是有效利用CPU並滿足系統的效能需求。

進程調度的主要功能

選擇進程

  • 從就緒佇列中挑選一個最適合目前運行的進程,將CPU分配給它。

管理CPU的分配

  • 動態調整CPU分配策略,使CPU資源在進程間合理共享。

儲存與復原行程上下文

  • 在切換CPU控制權時,儲存目前進程的運作狀態(上下文);
  • 恢復被調度進程的運作狀態,使其能繼續運作。

公平性與優先控制

  • 確保所有進程能公平競爭CPU;
  • 依優先權、緊急程度等調度策略合理分配CPU。

支援多種調度演算法

  • 支援先來先服務(FCFS)、時間片輪轉、高反應比優先(HRRF)等多種演算法,以適應不同的系統需求。

進程調度的時機

進程調度通常在以下幾種情況下觸發:

進程運行結束

  • 目前進程執行完畢,CPU空閒,需要調度一個新的進程運行。

行程進入阻塞狀態

  • 目前進程因I/O請求、等待資源等原因無法繼續執行,從運行狀態切換到阻塞狀態,調度其他進程運行。

時間片用完(分時系統中)

  • 目前進程的時間片耗盡,觸發進程切換,將CPU分配給下一個進程。

優先權搶佔

  • 在搶佔式調度中,當更高優先權的程序進入就緒佇列時,目前運行程序會中斷,CPU被指派給高優先權行程。

進程從阻塞狀態變成就緒狀態

  • 阻塞進程等待的事件完成後,會重新進入就緒狀態,可能會觸發新的進程調度。

系統呼叫完成後回傳

  • 系統呼叫或其他系統任務完成後,可能需要重新調度使用者程序。