過去問解きまくり研究所 ホーム

平成22年度 秋期 午前 問18

ソフトウェア

タスクに関する問題

五つのタスク A 〜 E の優先度と,各タスクを単独で実行した場合の CPU と入出力装置(I/O)の動作順序と処理時間は,表のとおりである。優先度“高”のタスク A と B 〜 E のどのタスクを組み合わせれば,組み合わせたタスクが同時に実行を開始してから,両方のタスクの実行が終了するまでの間の CPU の遊休時間をゼロにできるか。ここで,I/O は競合せず,OS のオーバヘッドは無視できるものとする。また,表の( )内の数字は処理時間を表すものとする。

〔タスクの優先度と単独実行時の動作順序・処理時間(ミリ秒)〕

タスク A(優先度 高)… CPU(3) → I/O(3) → CPU(3) → I/O(3) → CPU(2)
答えと解説を見る

✓ これが正解ウタスク D(優先度 低)… CPU(3) → I/O(2) → CPU(3) → I/O(1) → CPU(4)

解説

優先度の高いタスクが空ける窓に、相手を収めます。

優先度が高いタスクは待たされないので、その時間割は相手によらず確定します。ですから、まずそのタスクを単独で動かしたときの並びを書き出し、入出力を行っている間、つまり処理装置が空く時間の窓を取り出します。この問では窓が 2 つあり、どちらも 3 ミリ秒です。遊休をなくすには、相手のタスクが最初に処理装置を使う時間と、次に使う時間が、それぞれの窓にちょうど収まる必要があります。どちらかが窓より短ければ、その差がそのまま空き時間になります。この条件で 4 つを見比べると、2 つの処理時間がどちらも 3 ミリ秒の組合せだけが残ります。残った 1 つは最後まで通しでなぞって確かめます。窓に順に収まり、優先度の高い側が 14 ミリ秒で終わったあとも残りの処理が続き、18 ミリ秒まで処理装置は空きません。処理時間の総和 18 が終了時刻と一致することも、遊休がないことの言い換えになります。

ほかの選択肢はなぜ違うのか

出典:平成22年度 秋期 応用情報技術者試験 午前 問18

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)