組み込み技術者のための資格試験,傾向と対策(6) ―― トロン技術者認定試験
解答・解説のページ(その2)
選択肢
1.タスクAの発行したシステム・コールによって,タスクBの優先度を変更し,タスクAの優先度よりも高くした場合
2.タスクA,タスクBとは別のタスクCの発行したシステム・コールによって,タスクBの優先度を変更し,タスクAの優先度よりも低くした場合
3.タスクA,タスクBとは別のタスクCの発行したシステム・コールによって,タスクBの優先度を変更し,タスクAの優先度と同じにした場合
4.タスクAの発行したシステム・コールによって,タスクAからタスクBにディスパッチされた場合
(第11回 トロン技術者認定試験 問12より引用)
正解 2,3
解説
まずは,タスクの「優先度」と,レディ・キュー(3)の中で繋がれて待っているときの「優先順位」の用語の使い分けに注意してください.タスクの問題では,常にレディ・キューをイメージするように心がけてください.
1.タスクBの優先度がタスクAの優先度よりも高くしているので,タスクBの「優先順位」がタスクAの「優先順位」よりも高くなります.よって間違い.
2.タスクBの優先度がタスクAの優先度よりも低くした場合なので,タスクAの「優先順位」がタスクBの「優先順位」よりも高くなります.よって正解.
3.タスクBの優先度を変更し,タスクAの優先度と同じにした場合,同じ優先度なので,FCFSでスケジューリングされ,先にレディキューに入った方が優先されて,レディキューにつながれます.よって,タスクAの「優先順位」がタスクBの「優先順位」よりも高くなり,正解です.
4.タスクAからタスクBにディスパッチされたので,タスクBが実行状態になります.レディキュー先頭のタスク(最高「優先順位」)が実行状態になります.よってタスクBの「優先順位」が最高になりますので,間違いです.
なお,「優先度」という用語に関しては,タスクの「優先度」のほかにも,割り込みの「優先度」(割り込みレベル)があります.こちらも注意して使い分けてください.