平成30年度秋期 応用情報技術者試験 午前 問17
プリエンプション方式のタスクスケジューリングにおいて,タスクBの実行中にプリエンプションが発生する契機となるのはどれか。ここで,タスクの優先度は,タスクAが最も高く,タスクA>タスクB=タスクC>タスクDの関係とする。
- ア タスクAが実行可能状態になった。
- イ タスクBが待ち状態になった。
- ウ タスクCが実行可能状態になった。
- エ タスクDが実行可能状態になった。
解答・解説を見る
正解:ア
AI解説
プリエンプションとは、実行中のタスクからOSが強制的にCPU使用権を奪い、より優先度の高いタスクに割り当てることである。タスクB(優先度中)の実行中にそれより優先度の高いタスクAが実行可能状態になると、OSはBを中断してAにCPUを割り当てるため、アがプリエンプション発生の契機となる。 ア: 正しい。実行中のBより優先度が高いAが実行可能になった時点で、BからCPUを奪ってAを実行するプリエンプションが発生する。 イ: タスクBが待ち状態になるのはB自身が自発的にCPUを手放すケースであり、強制的に奪うプリエンプションではない。 ウ: タスクCはBと同じ優先度であり、同順位のタスクが実行可能になっても実行中タスクからCPUを奪うことはない。 エ: タスクDはBより優先度が低く、低優先度タスクが実行可能になってもプリエンプションは発生しない。 💡 プリエンプション=「高優先度タスクによる強制的な横取り」。『自ら待ち状態になる』のはディスパッチの契機ではあってもプリエンプションではない、という区別がひっかけの定番である。
出典:平成30年度 秋期 応用情報技術者試験 午前 問17 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。