修了試験 2020-01-26実施分 基本情報技術者試験 問18
2台のCPUから成るシステムがあり,使用中でないCPUは実行要求があったタスクに割り当てられるようになっている。 このシステムで,二つのタスクA,Bを実行する際,それらのタスクは共通の資源Rを排他的に使用する。 それぞれのタスクA,BのCPU使用時間,資源Rの使用時間と実行順序は図に示すとおりである。 二つのタスクの実行を同時に開始した場合,二つのタスクの処理が完了するまでの時間は何ミリ秒か。 ここで,タスクA,Bを開始した時点では,CPU,資源Rともに空いているものとする。

正答2
解説
正解は2です。 2台のCPUで二つのタスクを同時に開始し、資源Rの排他使用による待ちを考慮して完了時刻を求める問題です。 図では、タスクAはCPU10ミリ秒、資源R50ミリ秒、CPU60ミリ秒の順に処理します。 タスクBはCPU40ミリ秒、資源R50ミリ秒、CPU30ミリ秒の順に処理します。 【計算】 CPUが2台あるので、AとBは0ミリ秒から同時にCPUを使えます。 Aは0〜10ミリ秒でCPUを使い、10〜60ミリ秒で資源Rを使います。 Aは60〜120ミリ秒でCPUを使い、120ミリ秒で完了します。 Bは0〜40ミリ秒でCPUを使い終えますが、資源RはAが60ミリ秒まで使っています。 Bは60ミリ秒まで待ち、60〜110ミリ秒で資源Rを使います。 Bは110〜140ミリ秒でもう1台のCPUを使い、140ミリ秒で完了します。 したがって両方の完了までは140ミリ秒です。 【選択肢別解説】 1:× 120ミリ秒はタスクAの完了時刻です。 タスクBは資源Rの待ちがあるため、まだ完了していません。 2:○ Bが資源Rを20ミリ秒待つため、Bの完了が140ミリ秒になります。 これが二つのタスクの完了時刻です。 3:× 150ミリ秒は、CPUが1台しかなく、AとBがCPUを順番に使うと考えた場合の値です。 CPUは2台あるので、AとBのCPU処理が重なっても待ちは生じません。 4:× 200ミリ秒は、Bが先に資源Rを使い、Aが90ミリ秒まで待たされたと考えた場合の値です。 実際はAが10ミリ秒の時点で先に資源Rを使い始めるので、待つのはBの側で、待ち時間は20ミリ秒だけです。 【ポイント】 排他資源がある問題は、時刻ごとに「誰がCPUと資源を使っているか」を線表に書くと待ちが見えます。まとめて解く
修了試験 2020-01-26実施分を通しで解く(80問)→