平成22年度 秋期 午前 問20
ソフトウェア
タスクの処理が完了するまでの時間
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ミリ秒 ]
- ア120
- イ140
- ウ150
- エ200
答えと解説を見る
✓ これが正解イ140
解説
資源Rの待ちだけが効いて140ミリ秒で終わります。
処理装置が2台あるので、2つのタスクのCPU処理は取り合いになりません。取り合いになるのは、排他的に使うと決められた資源Rだけです。そこで時間の流れを追います。一方のタスクは10ミリ秒のCPU処理を終えた時点で資源Rを要求し、まだ空いているのでそのまま50ミリ秒使います。もう一方は40ミリ秒のCPU処理を終えた時点で資源Rを要求しますが、先に使っている側が終わるまで20ミリ秒待つことになります。待ってから50ミリ秒使い、その後に30ミリ秒のCPU処理をして終わります。先に資源を使った側は残る60ミリ秒のCPU処理を並行して進めるので、最後に終わるのは待たされた側です。判定の軸は、待ちが生じるのが資源の取り合いだけであることと、両方が終わる時刻を見ることです。
ほかの選択肢はなぜ違うのか
- ア120:先に資源Rを使えたタスクが、最後のCPU処理まで終える時刻です。もう一方は資源の空きを20ミリ秒待った分だけ後ろにずれているので、この時点ではまだ終わっていません。
- ウ150:資源を待った側の最後のCPU処理を、もう一方のCPU処理が終わってから始めた場合の時刻です。処理装置は2台あるので、その順番待ちは生じません。
- エ200:図の6つの区間を1つも重ねずに順に並べても、合計は240ミリ秒でこの値にはなりません。実際には2つのCPU処理が並行して進むため、完了はもっと早くなります。
出典:平成22年度 秋期 基本情報技術者試験 午前 問20(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)