修了試験 2011-12-18実施分 基本情報技術者試験 問21
2台のCPUからなるシステムがあり,使用中でないCPUは実行要求のあったタスクに割り当てられるようになっている。 このシステムで,二つのタスクA,Bを実行する際,それらのタスクは共通の資源Rを排他的に使用する。 それぞれのタスクA,BのCPU使用時間,資源Rの使用時間と実行順序は図に示すとおりである。 二つのタスクの実行を同時に開始した場合,二つのタスクの処理が完了するまでの時間は何ミリ秒か。 ここで,タスクA,Bを開始した時点では,CPU,資源Rともに空いているものとする。 タスクA:CPU(10ミリ秒)→資源R(50ミリ秒)→CPU(60ミリ秒) タスクB:CPU(40ミリ秒)→資源R(50ミリ秒)→CPU(30ミリ秒)
正答2
解説
正解は2です。 CPUは2台あるので、タスクAとBは開始と同時にそれぞれCPU処理を始められます。 一方、資源Rは排他的に使うため、先に確保したタスクが使い終わるまで、もう一方は待たされます。 時刻を追って、各タスクの処理を並べます。 【計算】 タスクAは、0〜10ミリ秒にCPU処理を行います。 タスクAは、10ミリ秒に資源Rを確保し、10〜60ミリ秒に使用します。 タスクBは、0〜40ミリ秒にCPU処理を行います。 タスクBは、40ミリ秒に資源Rを要求しますが、Aが使用中なので60ミリ秒まで待ちます。 タスクBは、60〜110ミリ秒に資源Rを使用します。 タスクAは、60〜120ミリ秒に2回目のCPU処理を行い、120ミリ秒に完了します。 タスクBは、110〜140ミリ秒に2回目のCPU処理を行い、140ミリ秒に完了します。 110〜120ミリ秒はAとBが同時にCPUを使いますが、CPUは2台あるので待ちは生じません。 したがって、両方が完了するのは140ミリ秒です。 【選択肢別解説】 1:× 120ミリ秒はタスクAが完了する時刻で、このときタスクBはまだ処理中です。 2:○ 資源Rの待ちを考慮して時刻を追うと、両タスクの完了は140ミリ秒になります。 3:× 150ミリ秒は、時刻を追って求めた140ミリ秒と一致しません。 4:× 200ミリ秒は、タスクBが先に資源Rを使い、Aが90ミリ秒まで待たされた場合の完了時刻です。 実際にはAが10ミリ秒で先に資源Rを確保するので誤りです。 【ポイント】 排他的に使う資源がある問題は、「誰がいつ要求し、いつ解放されるか」を時刻順に書き出すのが確実です。 各時間帯でCPUの台数が足りているかも確認しましょう。まとめて解く
修了試験 2011-12-18実施分を通しで解く(80問)→