応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
次回試験:2025年10月12日(あと54日)

応用情報技術者試験 平成30年春 午前問17 解説付き過去問

問題

三つのタスクA~Cの優先度と各タスクを単独で実行した場合のCPUと入出力(I/O)装置の動作順序と処理時間は、表のとおりである。
優先順位方式のタスクスケジューリングを行うOSの下で、三つのタスクが同時に実行可能状態になってから、タスクCが終了するまでに、タスクCが実行可能状態にある時間は延べ何ミリ秒か。
ここで、I/Oは競合せず、OSのオーバヘッドは考慮しないものとする。
また、表中の()内の数字は処理時間を示すものとする。

正解

解説

この問題は、優先順位方式のタスクスケジューリングにおける「実行可能状態」にある時間を正確に求めることが求められます。
特に、CPU待機中の状態とI/O中の状態を区別し、タスクCがCPUの割当てを待っていた時間を正しく特定することが重要です。

  1. 優先順位方式とは
    優先順位方式は、複数のタスクが同時に実行可能状態にある場合、優先度の高いタスクから順にCPUを割り当てる方式です。
    本問では、タスクAが最も高く、次にタスクB、最後にタスクCの順で優先順位が設定されています。

  2. 実行可能状態の定義
    「実行可能状態」とは、CPUの処理を受ける準備が整っていて、かつCPUが割り当てられていない状態を指します。
    一方、I/O装置を使用している間は「待機状態」にあり、実行可能状態には含まれません。

  3. 各タスクの処理構成
    各タスクの構成は以下のとおりです。
    ・タスクA:CPU(2) → I/O(6) → CPU(4)
    ・タスクB:CPU(2) → I/O(4) → CPU(2)
    ・タスクC:CPU(2) → I/O(2) → CPU(3)

  4. スケジューリングの時系列とタスクCの状態
    処理の流れとタスクCの状態を以下に示します。
    1. 0~2:タスクAがCPUを使用。BとCは同時に実行可能状態にあるが、優先度が低いためCPUを使えない

    2. 2~4:タスクBがCPUを使用。AはI/O中、Cは引き続き実行可能状態

    3. 4~6:タスクCがCPUを使用(初回)

    4. 6~8:A、B、CすべてI/O中

    5. 8~12:タスクAがCPUを使用。BとCはI/Oを終えて実行可能状態

    6. 12~14:タスクBがCPUを使用。Cは引き続き実行可能状態

    7. 14~17:タスクCがCPUを使用し、処理完了

    この時系列のうち、タスクCが「実行可能状態」にあったのは以下の時間帯です。
    ・0~4(タスクAとBの処理中) → 4ミリ秒
    ・8~14(タスクAとBの再処理中) → 6ミリ秒
    合計:10ミリ秒

  5. 結論
    タスクCが実行可能状態にあった時間は、0~4ミリ秒および8~14ミリ秒の合計10ミリ秒です。
    したがって、正解は10となります。

タスクCの実行可能状態を正しく見極めるには、I/O中とCPU待機中の状態を明確に区別する必要があります。
提示されたタイムチャートに従えば、CPU待機時間は合計10ミリ秒であることが分かります。