平成26年度春期 エンベデッドシステムスペシャリスト試験 午前II 問9
【問題9】
CPU時間を多く必要とするタスクAと、入出力処理が多くCPU時間をほとんど必要としないタスクBで構成されているシステムがある。このシステムのスループットを高くする方法として、適切なものはどれか。
タスクAとタスクBの優先度を同じにして、一定時間間隔ごとに処理を切り替えることによって平等に処理する。
タスクAとタスクBの優先度を同じにして、先に開始したタスクが終了後に別のタスクを処理する。
タスクAの優先度を高くして、タスクAを優先して処理する。
タスクBの優先度を高くして、タスクBを優先して処理する。
【解説】
ア: タスクAとタスクBの優先度を同じにして、一定時間間隔ごとに処理を切り替えることによって平等に処理する。
誤り。スループットを高めるためには、タスクA(CPUを多く必要とする)とタスクB(I/Oが多い)の特性に応じて切り替えを最適化する必要があり、平等に処理するのは適切ではありません。
イ: タスクAとタスクBの優先度を同じにして、先に開始したタスクが終了後に別のタスクを処理する。
誤り。タスクAが終了するまでタスクBが待たされるため、I/O待ちの時間が増え、スループットが低下します。
ウ: タスクAの優先度を高くして、タスクAを優先して処理する。
誤り。タスクBのI/O処理が待たされるため、システム全体のスループットが低下する可能性があります。
エ: タスクBの優先度を高くして、タスクBを優先して処理する。
正しい。I/O待ちの時間を最小化することでCPUを効率的に活用し、システムのスループットを向上させることができます。
【答え】
エ: タスクBの優先度を高くして、タスクBを優先して処理する。
出典:平成26年度 春期 エンベデッドシステムスペシャリスト試験 午前II 問9