ソフトウェア
基本情報技術者試験 科目A免除 修了試験 20140727 実施分 問16
二つのタスク A,B を単独で実行した場合の CPU と入出力装置(I/O)の動作順序と処理時間は,表のとおりである。次の条件で二つのタスクが同時に実行可能状態になってから,タスク B の実行が完了するまでの時間は何ミリ秒か。ここで,表の( )内の数字は処理時間を表すものとする。
〔条件〕
(1) タスク A,B は同一の I/O を使用し,タスク A が先に実行される。
(2) CPU 処理を実行中のタスクは,入出力処理を開始するまでは処理を継続し,中断されない。
(3) I/O も入出力が終了するまで処理を中断されない。
(4) その他のオーバヘッドは考慮しない。
| タスク | 単独実行時の動作順序と処理時間(単位 ミリ秒) |
|---|---|
| A | CPU(20) → I/O(30) → CPU(20) → I/O(40) → CPU(10) |
| B | CPU(10) → I/O(30) → CPU(20) → I/O(20) → CPU(20) |
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20140727 実施分 問16(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:ウ
覚える知識
CPUとI/O競合下のタスク実行時間計算
共用I/Oがある場合、後のタスクは先のタスクのI/O終了まで待たされるため、時系列で追って完了時間を求める。
この問題で必要なこと
I/Oは共用で中断されない。タスクAを先に実行し、B はCPU終了後、AのI/O終了待ちでI/Oを使う。時系列を追うとBの完了は160ミリ秒となる。
ひっかけ
I/O待ちの競合を無視して合計時間を単純に足してしまう。
この知識の出題:本試験系 0 回・免除試験 7 回(公開問題での観測値)