エンベデッドシステムスペシャリスト 2021年 午前2 問07
問題文
プロセスのスケジューリングに関する記述のうち、ラウンドロビン方式の説明として、適切なものはどれか。
選択肢
ア:各プロセスに優先度が付けられていて、後に到着してもプロセスの優先度が実行中のプロセスよりも高ければ、実行中のものを中断し、到着プロセスを実行する。
イ:各プロセスに優先度が付けられていて、イベントの発生を契機に、その時点で最高優先度のプロセスを実行する。
ウ:各プロセスの処理時間に比例して、プロセスのタイムクウォンタムを変更する。
エ:各プロセスを待ち行列に並んだ順にタイムクウォンタムずつ実行し、終了しないときは待ち行列の最後につなぐ。(正解)
🔒 解説は解答すると表示されます
ラウンドロビン方式【午前2解説】
正解の理由
ラウンドロビン方式は、実行可能なプロセスを待ち行列に並べ、各プロセスに一定時間(タイムクウォンタム)ずつCPUを割り当てる方式です。
割り当て時間内に処理が終わらなかったプロセスは、実行を中断して待ち行列の末尾に戻ります。この動作を説明しているエが適切です。
解法ステップ
- ラウンドロビン方式の特徴である「一定時間ずつ実行する」ことに注目します。
- タイムクウォンタム内に終了しない場合の動作を確認します。
- プロセスを待ち行列の末尾に戻す説明があるエを選びます。
選択肢別の誤答解説
- ア:優先度の高いプロセスが到着すると、実行中のプロセスを中断して切り替える方式です。優先度に基づくプリエンプティブなスケジューリングの説明です。
- イ:イベント発生時に、最高優先度のプロセスを実行する方式です。優先度に基づいて実行プロセスを選ぶ方式であり、ラウンドロビン方式ではありません。
- ウ:プロセスの処理時間に比例してタイムクウォンタムを変更する方式ではありません。ラウンドロビン方式では、通常、各プロセスに同じ長さのタイムクウォンタムを割り当てます。
- エ:待ち行列の順にタイムクウォンタムずつ実行し、処理が終わらないプロセスを末尾に戻すため、ラウンドロビン方式の説明です。
よくある誤解
- タイムクウォンタムを「プロセスごとに処理時間に合わせて変える」と考えてしまうことがあります。基本的には、各プロセスに同じ長さの実行時間を割り当てます。
- タイムクウォンタムが終了したらプロセスを終了させる、と誤解しがちです。処理が残っていれば、プロセスは待ち行列の末尾に戻って順番を待ちます。
- 待ち行列を使う点だけで判断しないようにしましょう。ラウンドロビン方式の要点は、順番に一定時間ずつ実行し、未完了なら末尾に戻すことです。
補足コラム
タイムクウォンタムが短いと、プロセス間の応答性は高まりやすい一方、切替えの回数が増えてオーバーヘッドも大きくなります。反対に長すぎると、プロセスが順番に実行される方式に近づき、応答性が低下することがあります。
FAQ
Q. タイムクウォンタム内に処理が終わったプロセスはどうなりますか?
A. 処理を終了し、待ち行列には戻りません。
A. 処理を終了し、待ち行列には戻りません。
Q. ラウンドロビン方式は優先度を使いますか?
A. 基本的なラウンドロビン方式は、待ち行列の順番とタイムクウォンタムに基づいて実行します。選択肢のように優先度で実行順を決める方式とは区別します。
A. 基本的なラウンドロビン方式は、待ち行列の順番とタイムクウォンタムに基づいて実行します。選択肢のように優先度で実行順を決める方式とは区別します。
関連キーワード: プロセススケジューリング、ラウンドロビン方式、タイムクウォンタム、待ち行列、プリエンプション

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

