SMP をサポートする VxWorks で実行する優先度の異なる 2 つのタスク「A」と「B」があるとします。'A' と 'B' の両方が I/O デバイス (ディスクや NIC など) にコマンドを発行し、どちらもブロックして結果を待ちます。つまり、「A」と「B」の両方が同時にブロックされます。しばらくして、I/O デバイスが割り込みを発生させ、ISR が呼び出されます。次に、ISR は延期された作業 (別名「下半分」) をワーカー タスクにディスパッチします。質問: ワーカー タスクの優先度は?
VxWorks Device Driver Developer's Guide は少しあいまいです。ワーカータスクの優先度はアプリオリに設定されているようです。結果を待ってブロックされているタスク (「A」と「B」) の優先度に基づいてワーカー タスクの優先度を上げる自動継承メカニズムはありません。これは、PREEMPT_RT Linux でスレッド化された割り込み優先度がどのように機能するかに似ています。ただし、QNX Neutrino と LynxOS の両方が、ブロックされたタスクの最大優先度でワーカー タスクをスケジュールします。優先度(ワーカー) = max_priority(A, B)。
誰でも明確にできますか?