修了試験 2017-07-23実施分 基本情報技術者試験 問16
二つのタスクA,Bを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。 次の条件で二つのタスクが同時に実行可能状態になってから,タスクBの実行が完了するまでの時間は何ミリ秒か。 ここで,表の()内の数字は処理時間を表すものとする。 〔条件〕 (1) タスクA,Bは同一のI/Oを使用し,タスクAが先に実行される。 (2) CPU処理を実行中のタスクは,入出力処理を開始するまでは処理を継続し,中断されない。 (3) I/Oも入出力が終了するまで処理を中断されない。 (4) その他のオーバヘッドは考慮しない。 表:タスク|単独実行時の動作順序と処理時間(単位 ミリ秒) A|CPU(20)→I/O(30)→CPU(20)→I/O(40)→CPU(10) B|CPU(10)→I/O(30)→CPU(20)→I/O(20)→CPU(20)
正答3
解説
正解は3です。 2つのタスクは、CPUとI/Oをそれぞれ共有します。 一方のタスクがCPUやI/Oを使っている間、もう一方は空くまで待つ必要があります。 タスクAが先に実行されるという条件に従い、時刻を追って各処理の開始と終了を調べます。 【計算】 0〜20ミリ秒:AがCPU(20)を実行します。 20〜50ミリ秒:AがI/O(30)を実行し、その間の20〜30ミリ秒にBがCPU(10)を実行します。 50〜80ミリ秒:I/Oが空いたので、BがI/O(30)を実行します。 50〜70ミリ秒:同時に、AがCPU(20)を実行します。 70〜80ミリ秒:AはI/O(40)を始めたいのですが、Bが使用中なので待ちます。 80〜120ミリ秒:AがI/O(40)を実行し、その間の80〜100ミリ秒にBがCPU(20)を実行します。 100〜120ミリ秒:BはI/O(20)を始めたいのですが、Aが使用中なので待ちます。 120〜140ミリ秒:BがI/O(20)を実行し、その間の120〜130ミリ秒にAが最後のCPU(10)を実行して完了します。 140〜160ミリ秒:Bが最後のCPU(20)を実行し、160ミリ秒で完了します。 【選択肢別解説】 1:× 120ミリ秒は、タスクAを単独で実行したときの合計時間(20+30+20+40+10)です。 Bの処理時間や待ち時間が含まれていません。 2:× 140ミリ秒は、BがI/O(20)を終える時点です。 Bにはその後、CPU(20)の処理が残っています。 3:○ 時刻を追うと、Bの最後のCPU処理は140〜160ミリ秒に行われます。 したがって、Bの実行完了は160ミリ秒です。 4:× 180ミリ秒は、待ち時間を多く見積もりすぎた値です。 Aの最後のCPU処理はBのI/Oと並行して行えるため、Bは160ミリ秒で完了します。 【ポイント】 CPUとI/Oは並行して動けますが、同じ装置を同時に使えるのは1つのタスクだけです。 時刻ごとに「CPU」と「I/O」の2本の帯を書いて追うと、待ちの発生を見落としにくくなります。まとめて解く
修了試験 2017-07-23実施分を通しで解く(80問)→