平成26年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問9
テクノロジ/ソフトウェアCPU 時間を多く必要とするタスク A と,入出力処理が多く CPU 時間をほとんど必要としないタスク B で構成されているシステムがある。このシステムのスループットを高くする方法として,適切なものはどれか。
出典:平成26年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問9
- アタスク A とタスク B の優先度を同じにして,一定時間間隔ごとに処理を切り替えることによって平等に処理する。
- イタスク A とタスク B の優先度を同じにして,先に開始したタスクが終了後に別のタスクを処理する。
- ウタスク A の優先度を高くして,タスク A を優先して処理する。
- エタスク B の優先度を高くして,タスク B を優先して処理する。
正解:エ
解説
CPU 時間を多く必要とする CPU バウンドなタスク A と,入出力待ちが多くほとんど CPU を使わない I/O バウンドなタスク B が混在する場合,タスク B の優先度を高くしておくと,タスク B は短い CPU 使用の後すぐに入出力要求を発行して待ち状態に入るため,その間 CPU をタスク A の処理に振り向けることができます。これによって CPU と入出力装置を同時に稼働させやすくなり,システム全体のスループットを高めることができます。
選択肢ごとの解説
- ア誤り。優先度を同じにして一定時間ごとに切り替えるラウンドロビン方式では,入出力待ちが多いタスク B の CPU 利用機会が固定的になり,CPU と入出力装置を効率よく同時に稼働させにくくなります。
- イ誤り。優先度を同じにして先に開始したタスクの終了を待ってから次のタスクを処理する方式では,タスク A が CPU を占有している間タスク B が全く実行されず,入出力装置が遊んでしまい,スループットが低下します。
- ウ誤り。CPU 時間を多く必要とするタスク A の優先度を高くすると,タスク B が実行される機会が減り,入出力装置の稼働率が低下してシステム全体のスループットはかえって低下します。
- エ正しい。入出力処理が多いタスク B の優先度を高くすることで,タスク B がすぐに入出力要求を発行して CPU を明け渡し,その間 CPU 資源をタスク A に使わせることができるため,CPU と入出力装置を並行して稼働させやすくなり,スループットが向上します。