2013-06-20 3 views
1
$ sudo time -f '%c %w' chrt -f 99 ./ft 1234567890 
26 1 

Мне интересно, почему мой процесс был непроизвольно (потому что квант времени истекло) переключение контекста 26 раз, даже если я установить планировщик FIFO с максимальным приоритетом 99:Процесс с расписанием FIFO все еще отключен?

$ 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 

Любая идея?

Заранее спасибо.

ответ

2

Даже если другого процесса, способного запускать планировщик, все равно будет выполняться один раз каждый раз. Он вернется обратно к вашему процессу, но тем не менее ваш процесс был запланирован на короткий период времени.

FTRACE очень хорошо, посмотрите на страницу this, особенно раздел 3.3.1. Страница говорит об устройствах OMAP ARM, но все это отлично работает на других Linux. Этот зритель раскрывает огромное количество информации о внутренней работе вашей системы!

+1

Хотя новая [таймерная многозадачность] (http://kernelnewbies.org/LinuxChanges#head-952efcf3f3e5ce7120213222805c1847429ae3fc) в ядре 3.10 может помочь в этом. – Joe

+0

@bazza, похоже, что контекстное переключение 26 раз за несколько минут немного меньше, чем если бы ОС заменила мой процесс на основе временного фрагмента. – Hei

+0

@Joe - это *. * Интересно, спасибо! – bazza

Смежные вопросы