平成26年度 春期 午前Ⅱ 問9
オペレーティングシステム
スループットを高くする方法
CPU時間を多く必要とするタスクAと,入出力処理が多くCPU時間をほとんど必要としないタスクBで構成されているシステムがある。このシステムのスループットを高くする方法として,適切なものはどれか。
- アタスクAとタスクBの優先度を同じにして,一定時間間隔ごとに処理を切り替えることによって平等に処理する。
- イタスクAとタスクBの優先度を同じにして,先に開始したタスクが終了後に別のタスクを処理する。
- ウタスクAの優先度を高くして,タスクAを優先して処理する。
- エタスクBの優先度を高くして,タスクBを優先して処理する。
答えと解説を見る
✓ これが正解エタスクBの優先度を高くして,タスクBを優先して処理する。
解説
入出力の多いタスクBを優先すると、CPUと入出力が並行して働きます。
スループットは、単位時間に処理できる仕事の量です。タスク B は入出力が多く、CPU を少し使っては入出力の完了を待つ、という動きを繰り返します。タスク B の優先度を高くすると、B は必要なときにすぐ CPU を使って入出力を開始し、入出力の完了を待つ間は CPU をタスク A に明け渡します。こうすると、入出力装置と CPU が同時に働く時間が長くなり、どちらも遊ぶ時間が減るので、システム全体のスループットが高くなります。CPU をあまり使わないタスクを優先して、その待ち時間に CPU を多く使うタスクを動かす、と押さえると見分けられます。
ほかの選択肢はなぜ違うのか
- アタスクAとタスクBの優先度を同じにして,…:一定時間ごとに処理を切り替える方式では、タスク B が入出力を始めたいときにも CPU の順番を待たされることがあります。入出力の開始が遅れて入出力装置が遊ぶ時間が増えるので、スループットを高める方法としては劣ります。
- イタスクAとタスクBの優先度を同じにして,…:先に始めたタスクが終わるまで次を処理しない方式では、A が先なら長い計算の間に入出力が全く進まず、B が先なら B の入出力待ちの間 CPU が遊びます。CPU と入出力を重ねて使えないので、スループットは上がりません。
- ウタスクAの優先度を高くして,タスクAを優…:タスク A を優先すると、A が CPU を長く使い続ける間、B は入出力を始められず、入出力装置が遊んでしまいます。CPU と入出力を並行して働かせる機会が減るので、全体のスループットは下がります。
出典:平成26年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問9
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)