オペレーティングシステム(全107問中38問目)
No.38解説へ
2台のCPUからなるシステムがあり,使用中でないCPUは実行要求のあったタスクに割り当てられるようになっている。このシステムで,二つのタスクA,Bを実行する際,それらのタスクは共通の資源Rを排他的に使用する。それぞれのタスクA,BのCPU使用時間,資源Rの使用時間と実行順序は図に示すとおりである。二つのタスクの実行を同時に開始した場合,二つのタスクの処理が完了するまでの時間は何ミリ秒か。ここで,タスクA,Bを開始した時点では,CPU,資源Rともに空いているものとする。
出典:平成26年秋期 問17
- 120
- 140
- 150
- 200
正解 イ問題へ
広告
解説
この問題のポイントは、二つのタスクは「共通の資源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(ミリ秒)」です。
排他的ということは一つのタスクが資源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(ミリ秒)」です。
広告