talosのプログラミング教室

【基本・応用情報技術者】スケジューリング

スポンサーリンク

こんにちは。たろすです。

今回はスケジューリングの説明をします。

プロセス

スケジューリングの説明する前にプロセスについて説明します。

プロセスはプログラムを実行する際に、CPUが処理する実行単位です。

プロセスは以下の状態をとります。


待ち状態:CPUが割り当てられても実行できない状態

実行可能状態:CPUが割り当てられれば実行できる状態

実行状態:CPUが割り当てられていて実行中の状態


これらの状態は図のような関係性にあります。

f:id:talosta:20210529100605p:plain

スケジューリング

プロセスをどのような順番で処理するかを決めることです。

スケジューリングにはいくつか種類があるので、それぞれ説明していきます。

到着順方式

名前の通り、到着順(=実行可能状態になった順)に実行していく方式です。

優先度順方式

各プロセスに予め優先度を設定しておき、優先度が高いものから実行していく方式です。

優先度順方式には静的優先度順方式と動的優先度順方式があります。

静的優先度順方式は優先度が一度決められたら変わることはありません。

動的優先度順方式は実行可能状態の時間が長いほど、プロセスの優先度を高く設定し直します。

処理時間順方式

所持時間が短いものから実行していく方式です。

ラウンドロビン方式

プロセスにCPUを割り当てられる時間(=タイムクォンタム)が決められており、タイムクォンタム分実行したら待ち行列の最後尾に並べる方式です。

おわりに

今回はスケジューリングの説明をしました。

ラウンドロビン方式はよく問われるので、次回詳しく説明します。