基本情報技術者平成15年春期 午前問31

問31

2台のCPUからなるシステムがあり,使用中でないCPUは,実行要求のあったタスクに割り当てられるようになっている。このシステムで,二つのタスクA,Bを実行し,それらのタスクは共通の資源Rを排他的に使用する。それぞれのタスクA,BのCPU使用時間,資源Rの使用時間と実行順序は図に示すとおりである。二つのタスクの実行を同時に開始した場合,二つのタスクの処理が完了するまでの時間は何ミリ秒か。
31.png/image-size:299×76
  • 120
  • 140
  • 150
  • 200
  • [出題歴]
  • 基本情報技術者 H22秋期 問20
  • 基本情報技術者 H26秋期 問17

分類

テクノロジ系 » ソフトウェア » オペレーティングシステム

正解

解説

この問題のポイントは、二つのタスクは「共通の資源Rを排他的に使用する」ということです。

排他的ということはひとつのタスクが資源Rを使用している場合、もう一方のタスクは使用できずに待ち状態になります。CPUは2つ用意されているので、各タスクに占有的に割り当てることでCPU処理待ちはしないため、資源Rの使用状態にさえ気を付ければ解ける問題です。

資源Rが最初に割り当てられるのは、先にCPU処理が終わるタスクAでが開始から10ミリ秒後です。その後開始から60ミリ秒後まで資源Rを占有し続けます。
タスクBは、開始からCPU処理を40ミリ秒に終え、資源Rを要求しますがタスクAが使用中なので、タスクAの使用が終わるまで20ミリ秒待たなければなりません。
両方のタスクとも待ち時間がなければ、処理は120ミリ秒で終了しますが、資源Rの使用待ちによってタスクBに生じた20ミリ秒の待ち時間だけ全体の終了時間が遅くなります。

したがって二つのタスクが処理完了するまでの時間は、

 120+20=140

140ミリ秒が適切となります。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop