修了試験 2013-06-23実施分 基本情報技術者試験 問22
2台のCPUからなるシステムがあり,使用中でないCPUは実行要求のあったタスクに割り当てられるようになっている。 このシステムで,二つのタスクA,Bを実行する際,それらのタスクは共通の資源Rを排他的に使用する。 それぞれのタスクA,BのCPU使用時間,資源Rの使用時間と実行順序は図に示すとおりである。 二つのタスクの実行を同時に開始した場合,二つのタスクの処理が完了するまでの時間は何ミリ秒か。 ここで,タスクA,Bを開始した時点では,CPU,資源Rともに空いているものとする。 タスクA:CPU10ミリ秒→資源R50ミリ秒→CPU60ミリ秒/タスクB:CPU40ミリ秒→資源R50ミリ秒→CPU30ミリ秒
正答2
解説
正解は2です。 CPUは2台あるのでタスクAとBは同時にCPUを使えますが、資源Rは排他的に使うため、一方が使っている間は他方が待たされます。 時間の経過に沿って、各タスクが何を使っているかを順にたどります。 【処理の流れ】 0〜10ミリ秒は、AとBがそれぞれCPUを使います。 10ミリ秒でAがCPU処理を終え、空いている資源Rを10〜60ミリ秒に使います。 40ミリ秒でBがCPU処理を終えますが、資源RはAが使用中なので60ミリ秒まで待ちます。 60ミリ秒でAは資源Rを解放し、60〜120ミリ秒にCPUを使って終了します。 Bは60〜110ミリ秒に資源Rを使い、110〜140ミリ秒にCPUを使って終了します。 110〜120ミリ秒はAとBが同時にCPUを使いますが、CPUは2台あるので待ちは生じません。 したがって、両方が完了するのは140ミリ秒後です。 【選択肢別解説】 1:× 120ミリ秒はタスクAが終わる時刻です。 タスクBは資源Rの待ちがあるため、140ミリ秒まで終わりません。 2:○ BがRを20ミリ秒待つことを考慮すると、両タスクの完了は140ミリ秒となり、一致します。 3:× 150ミリ秒になる待ちは生じません。 CPUが2台あるので、CPUの取り合いによる待ちはなく、答えは140ミリ秒です。 4:× 200ミリ秒になるほどの待ちは生じません。 資源Rの待ちは20ミリ秒だけなので、正しくは140ミリ秒です。 【ポイント】 資源の排他使用がある問題は、時間軸に沿って各タスクの状態を書き出すと確実です。 どの資源で待ちが発生するかを見つけることが、解答の鍵になります。まとめて解く
修了試験 2013-06-23実施分を通しで解く(80問)→