到着順方式

読み:とうちゃくじゅんほうしき / 英語表記:First Come First Served

ジョブやプロセスを、到着した順番に実行するスケジューリングの方式。先に来たものから順に処理し、途中で割り込むことはない。FCFS(First Come First Served)ともいう。

イマシルちゃんの解説

スーパーのレジに並ぶときと同じで、先に並んだ人から順番にお会計してもらうのが到着順方式なんだ。

とってもわかりやすくて公平だけど、
前の人がカゴいっぱいに買い物していると、牛乳1本だけの人も長く待たされちゃう。
そこで、ほかにもいろんな順番の決め方があるんだよ!

より深い解説

定義

到着順方式(FCFS:First Come First Served、FIFO方式)は、実行可能になった順(到着順)にジョブやプロセスをCPUに割り当てるスケジューリングの方式である。実行中のジョブは、終了するまで(または入出力などで自ら待ちになるまで)CPUを使い続ける、ノンプリエンプティブ(横取りしない)方式である。

特徴

長所短所
仕組みが単純で、オーバーヘッドが小さい処理時間の長いジョブが先にあると、後ろの短いジョブも長く待たされる(コンボイ効果)
到着順なので公平で、いつまでも実行されないジョブ(飢餓状態)が生じない対話型の処理では、応答時間が長くなることがある

主なスケジューリングの方式

方式実行する順番横取り
到着順(FCFS)到着した順しない
処理時間順(SPT)処理時間が短い順しない
優先度順優先度が高い順する方式もある
ラウンドロビン一定の時間(タイムクウォンタム)ずつ、順番に実行する。時間を使い切ったら列の最後に回すする
多重レベルフィードバックキュー優先度の異なる複数の列を使い、長く実行したジョブほど優先度を下げるする

処理時間順(SPT:Shortest Processing Time first)は、平均のターンアラウンドタイムを最小にできるが、長いジョブが後回しにされ続ける飢餓状態が起こりうる。ラウンドロビンは、すべてのジョブに少しずつ実行の機会を与えるため、対話型のシステムに向く。

到着順方式での計算例

ジョブ到着時刻処理時間
X06
Y12
Z31
ジョブ開始終了ターンアラウンドタイム
X066
Y687
Z896

Zは処理時間が1しかないのに、Xの終了を待つために、ターンアラウンドタイムが6になっている。これがコンボイ効果である。

処理時間順(SPT)で実行すると、時刻6の時点で待っているYとZのうち、処理時間の短いZを先に実行する。Zのターンアラウンドタイムは 7 − 3 = 4 に縮み、その代わりYは 9 − 1 = 8 に延びる。3つのジョブの平均は、到着順の約6.3から6.0に短くなる。

ネットワークとの関係

到着順の考え方は、ネットワーク機器の送信待ちのキュー(FIFOキュー)にも使われる。FIFOキューでは、音声のように遅延に弱いパケットも、大きなデータのパケットの後ろで待たされるため、優先度の高いパケットを先に送る優先キューイングなどのQoSの仕組みが使われる。

実際の試験ではここに出る!

↑