問題
スケジューリングに関する記述のうち,ラウンドロビン方式の説明として,適切なものはどれか。
- ア:各タスクに,均等にCPU時間を割り当てて実行させる方式である。
- イ:各タスクに,ターンアラウンドタイムに比例したCPU時間を割り当てて実行させる方式である。
- ウ:各タスクの実行イベント発生に応じて,リアルタイムに実行させる方式である。
- エ:各タスクを,優先度の高い順に実行させる方式である。
基本情報技術者平成30年秋期 午前問18
問題
ノンプリエンプティブなスケジューリング方式の説明として,適切なものはどれか。
- ア:新しいタスクが実行可能状態になるたびに,各タスクの残りの実行時間を評価し,その時間が短いものから順に実行する。
- イ:実行状態としたタスクが決められた時間内に待ち状態に遷移しないときに,そのタスクを中断して実行待ち行列にある次のタスクを実行状態とする。
- ウ:実行状態としたタスクが自ら待ち状態に遷移するか終了するまで,他のタスクを実行状態とすることができない。
- エ:タスクが実行可能状態になったときに,そのタスクの優先度と,その時,実行状態であるタスクの優先度とを比較して,優先度が高い方のタスクを実行状態とする。
基本情報技術者平成27年春期 午前問19
基本情報技術者試験や応用情報技術者試験の過去問では、タスクスケジューリングの方式についての問題が出題されています。
本記事では、タスクスケジューリングについて図解を利用して分かりやすく解説しています。
本記事で学べること
- タスクスケジューリングについて理解する
- タスクスケジューリングの各方式の動きを覚える
- 基本情報技術者試験の過去問の解き方を学ぶ
目次
タスクスケジューリング
タスクとは、コンピュータが処理する作業の最小単位のことです。
例えば、アプリケーションのアイコンをクリックすると、クリックしたアプリケーションを開くように命令します。このような命令により発生する処理の単位をタスクといいます。コンピュータの頭脳である「CPU」がこのタスクを処理します。
コンピュータに対する命令はひとつとは限りません。マウスを操作したり、キーボードを入力したり、アプリケーションを実行したりと、コンピュータは複数の命令を処理しています。
そのためタスクを管理して「CPU」にどのタスクを処理させるか、タスクの実行順序を定める必要があります。これをタスクスケジューリングといいます。
スポンサーリンク
タスクスケジューリング方式の種類
タスクスケジューリングには、実行の途中でCPUの使用権を奪うことができる「プリエンプティブ」と実行の途中でCPUの使用権が奪われることのない「ノンプリエンプティブ」の方式があります。
タスクスケジューリングの方式には次のようなものがあります。
到着順方式
到着順方式とは、実行可能状態になったタスクから順番に処理していく方式です。
実行可能状態になったタスクから順番に並び、並んでいる順番に処理していきます。優先度の概念がないので、実行の途中でCPUの使用権が奪われることはありません。(ノンプリエンプティブ)
優先度順方式
優先度順方式とは、タスクに優先度を設定し優先度の高いものから順番に実行していく方式です。
実行中のタスクよりも優先度が高いタスクが追加されると、実行の途中でCPUの使用権を奪い、優先度の高いタスクを実行します。(プリエンプティブ)
以下の図のようにタスクには優先度が設定され、優先度が高いものから順番に処理します。
もし、実行中のタスクよりも優先度が高いタスクが追加された場合は、実行中のタスクを中断し優先度の高いタスクを処理します。
そして、優先度の高いタスクの処理が終わると、次に優先度の高いタスクを処理します。(先ほど中断したタスクの優先度が一番高ければ中断したタスクを再開する)
動的優先度順方式
動的優先度順方式とは、優先度順方式と同じでタスクに優先度を設定し優先度の高いものから順番に実行していく方式です。優先度順方式との違いは、待ち時間が一定時間以上になったタスクの優先度を徐々に上げていくところです。
動的優先度順方式では、タスクに優先度と待ち時間が設定され、優先度の高いタスクから順番に処理していきます。
優先度順だと優先度の低いタスクがなかなか処理されません。そこで待ち時間が一定時間(以下図のは例では100)を超えたタスクの優先度を上げる(以下の例ではタスクCの優先度が低→中に上がっている)ことで、優先度の低いタスクが処理されない問題を解消しています。
ラウンドロビン方式
ラウンドロビン方式とは、CPUを使用できる時間(タイムクォンタム)を定め、その時間内に処理が終わらない場合は、次のタスクにCPUの使用権が与えられる方式です。
規定の時間内に処理が終わらなかった実行中のタスクは、処理を中断し待ち行列の最後尾に移動します。
スポンサーリンク
次の図のようにタスクBを処理しているとします。
ラウンドロビン方式では、規定の時間内に処理が終わらなかった場合は、待ち行列の最後に回され次のタスクにCPUの使用権が与えられます。
多重待ち行列方式
多重待ち行列方式とは、ラウンドロビン方式に優先度を加味させた方式です。
タスクには優先度が設定され、優先度順にタスクを処理します。またCPUを使用できる時間(タイムクォンタム)が定められており、規定の時間内に処理が終わらなかった実行中のタスクは、処理を中断し優先度を下げて待ち行列の最後尾に移動します。
多重待ち行列方式では、次の図のようにタスクに優先度を設定し、優先度の高いタスクから処理します。(図の例ではタスクAを処理中)
そして、規定の時間内に処理が終わらなかった場合は、タスクの優先度を下げて(以下の例ではタスクBの優先度が高→中に下がっている)待ち行列の最後に移動し次のタスクにCPUの使用権が与えられます。
処理時間順方式
処理時間順方式とは、タスクの実行時間(ターンアラウンドタイム)がより短いものから順に処理していく方式です。
イベントドリブン方式
イベントドリブン方式とは、マウス操作やキーボード入力などのイベントに応じてCPUの使用権を切り替える方式です。
イベントドリブンプリエンプション方式
イベントドリブンプリエンプション方式とは、イベントドリブン方式に優先度を組み合わせた方式のことです。リアルタイムに処理を行う(優先度の高いタスクを確実に実行する)リアルタイムOSなどで利用されています。
基本情報技術者試験 過去問の解説
スポンサーリンク
基本情報技術者平成30年秋期 午前問18
問題
スケジューリングに関する記述のうち,ラウンドロビン方式の説明として,適切なものはどれか。
- ア:各タスクに,均等にCPU時間を割り当てて実行させる方式である。
- イ:各タスクに,ターンアラウンドタイムに比例したCPU時間を割り当てて実行させる方式である。
- ウ:各タスクの実行イベント発生に応じて,リアルタイムに実行させる方式である。
- エ:各タスクを,優先度の高い順に実行させる方式である。
基本情報技術者平成30年秋期 午前問18
ラウンドロビン方式の説明として適切なものはどれか、解答のア~エを順番に確認していきます。
解答ア
ア:各タスクに,均等にCPU時間を割り当てて実行させる方式である。
ラウンドロビン方式の説明なので正解です。
ラウンドロビン方式は、タスクに一定のCPU時間(タイムクォンタム)を与え、その時間内に処理が終わらない場合は、次のタスクにCPUの使用権が与えられる方式です。
解答イ
イ:各タスクに,ターンアラウンドタイムに比例したCPU時間を割り当てて実行させる方式である。
処理時間順方式の説明なので不正解です。
処理時間順方式は、タスクの実行時間(ターンアラウンドタイム)がより短いものから順に処理していく方式です。
解答ウ
ウ:各タスクの実行イベント発生に応じて,リアルタイムに実行させる方式である。
イベントドリブンプリエンプション方式の説明なので不正解です。
イベントドリブンプリエンプション方式は、イベントドリブン方式に優先度を組み合わせた方式で、優先度の高いタスクをリアルタイムに実行します。
解答エ
エ:各タスクを,優先度の高い順に実行させる方式である。
優先度順方式の説明なので不正解です。
優先度順方式はタスクに優先度を設定し、優先度の高いものから順番に実行していく方式です。
基本情報技術者平成27年春期 午前問19
問題
ノンプリエンプティブなスケジューリング方式の説明として,適切なものはどれか。
- ア:新しいタスクが実行可能状態になるたびに,各タスクの残りの実行時間を評価し,その時間が短いものから順に実行する。
- イ:実行状態としたタスクが決められた時間内に待ち状態に遷移しないときに,そのタスクを中断して実行待ち行列にある次のタスクを実行状態とする。
- ウ:実行状態としたタスクが自ら待ち状態に遷移するか終了するまで,他のタスクを実行状態とすることができない。
- エ:タスクが実行可能状態になったときに,そのタスクの優先度と,その時,実行状態であるタスクの優先度とを比較して,優先度が高い方のタスクを実行状態とする。
基本情報技術者平成27年春期 午前問19
ノンプリエンプティブなスケジューリング方式の説明として、適切なものはどれか解答のア~エを順番に確認していきます。
解答ア
ア:新しいタスクが実行可能状態になるたびに,各タスクの残りの実行時間を評価し,その時間が短いものから順に実行する。
処理時間順方式の説明なので不正解です。
処理時間順方式は、タスクの実行時間(ターンアラウンドタイム)がより短いものから順に処理していく方式です。
解答イ
イ:実行状態としたタスクが決められた時間内に待ち状態に遷移しないときに,そのタスクを中断して実行待ち行列にある次のタスクを実行状態とする。
ラウンドロビン方式の説明なので不正解です。
ラウンドロビン方式は、タスクに一定のCPU時間(タイムクォンタム)を与え、その時間内に処理が終わらない場合は、次のタスクにCPUの使用権が与えられる方式です。
解答ウ
ウ:実行状態としたタスクが自ら待ち状態に遷移するか終了するまで,他のタスクを実行状態とすることができない。
ノンプリエンプティブなスケジューリング方式の説明なので正解です。
タスクスケジューリングには、実行の途中でCPUの使用権を奪うことができる「プリエンプティブ」と実行の途中でCPUの使用権が奪われることのない「ノンプリエンプティブ」の方式があります。
解答エ
エ:タスクが実行可能状態になったときに,そのタスクの優先度と,その時,実行状態であるタスクの優先度とを比較して,優先度が高い方のタスクを実行状態とする。
優先度順方式の説明なので不正解です。
優先度順方式はタスクに優先度を設定し、優先度の高いものから順番に実行していく方式です。