Vxworks でラウンド ロビンを有効にしていて、タスクがより優先度の高いタスクによってプリエンプトされた場合、残りのタイム スライスはどうなりますか?
1 に答える
3
タスクは実行を再開し、残りのタイム スライスを終了します。
タイム スライスの粒度は 1 クロック ティックであるため、1 タイム ティックでジッターが発生することに注意してください。
例:
10 クロック ティックのタイム スライスでラウンド ロビンを有効にするとします。1 クロック ティックは 10 ミリ秒です。タイム スライスごとに 100 ミリ秒が必要です。
5 ミリ秒 (最初のティックの中央) でプリエンプトされます。さらに 95 ミリ秒実行する必要がありますが、VxWorks はまだ 10 ティック残っていると見なします。
タスクが CPU を 11 ミリ秒に戻すと、さらに 99 ミリ秒実行されます。
タスクの CPU が 19 ミリ秒に戻った場合、さらに 91 ミリ秒実行されます。
プリエンプトされるたびに、タスクは絶対時間で +/- 1 ティック実行される可能性があります。
于 2008-09-18T01:11:53.530 に答える