作業系統排程演算法


作業系統使用各種演算法來有效地排程處理器上的進程。

排程演算法的目的

  • 最大CPU利用率
  • 公平分配CPU
  • 最大吞吐量
  • 最短周轉時間
  • 最短的等待時間
  • 最短響應時間

有以下演算法可用於計劃作業。

1. 先來先服務

這是最簡單的演算法。 最短到達時間的過程將首先獲得CPU。 到達時間越少,進程得到CPU的速度越快。 這是非搶先式的排程。

2. 輪循

在迴圈排程演算法中,作業系統定義了一個時間片(片)。 所有的進程將以迴圈方式執行。 每個進程都會獲得CPU一小段時間(稱為時間片),然後返回就緒佇列等待下一個回合。 這是一種搶先式排程。

3. 最短作業第一
具有最短爆發時間的作業將首先獲得CPU。 突發時間越短,進程得到CPU的速度越快。 這是非搶先式的排程。

4. 首先剩餘時間最短
這是SJF的搶先形式。 在該演算法中,作業系統根據執行的剩餘時間安排作業。

5. 基於優先順序的排程

在這個演算法中,優先順序將被分配給每個進程。 優先順序越高,進程得到CPU的速度越快。 如果兩個進程的優先順序相同,則會根據他們的到達時間進行安排。

6. 最高響應率下一個

在這種排程演算法中,下一步將排程響應比率最高的進程。 這減少了系統中的飢餓。