1
$ sudo time -f '%c %w' chrt -f 99 ./ft 1234567890
26 1

スケジューラーを最大優先度 99 の FIFO に設定しているにもかかわらず、なぜ私のプロセスが意図せずに (タイム スライスが期限切れになったため) コンテキスト スイッチを 26 回行ったのか知りたいです。

$ chrt -m
SCHED_OTHER min/max priority    : 0/0
SCHED_FIFO min/max priority         : 1/99
SCHED_RR min/max priority           : 1/99
SCHED_BATCH min/max priority    : 0/0
SCHED_IDLE min/max priority         : 0/0

$ uname -a
Linux localhost.localdomain 2.6.32-358.2.1.el6.x86_64 #1 SMP Wed Mar 13 00:26:49 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

何か案が?

前もって感謝します。

4

1 に答える 1

2

実行できるプロセスが他にない場合でも、スケジューラはタイム スライスごとに 1 回実行されます。プロセスにすぐに戻りますが、それでもプロセスは短期間延期されています。

FTRACE は非常に優れています。このページ、特にセクション 3.3.1 をご覧ください。このページは OMAP ARM デバイスについて話していますが、他の Linux でも問題なく動作します。そのビューアは、システムの内部動作に関する膨大な量の情報を明らかにします!

于 2013-06-30T05:29:16.903 に答える