Linux SCHED_OTHER (CFS) Пользовательское время против SCHED_RR и SCHED_FIFO Пользовательское время - PullRequest
1 голос
/ 23 марта 2012

Интересно, есть ли здесь хорошо осведомленные гуру Linux, которые могут ответить на мой вопрос. Я проводил статистический анализ для своего класса ОС, на котором планировщик более эффективен / эффективен для процессов, связанных с процессором и вводом-выводом. Один результат, который я получаю из времени GNU, который я не могу объяснить, - это то, почему идентичные процессы, выполняющиеся под SCHED_OTHER, завершаются за меньшее пользовательское время, чем SCHED_RR и SCHED_FIFO (для процесса, связанного с процессором). Я думал, что время пользователя не будет зависеть от политики расписания. Может кто-нибудь пролить свет или указать мне ресурс, который может объяснить это (помимо прохождения исходного кода, это просто класс старшекурсника).

Данные, которые я использую, были собраны за несколько прогонов с множеством одновременно запущенных процессов, связанных с процессором, поэтому данные должны быть достаточно точными. Спасибо.

Ответы [ 2 ]

1 голос
/ 03 апреля 2015

Это может быть связано с эффектами кэширования (которые регулярно возникают при сравнении производительности).

При каждом переключении контекста вы теряете кусок кеша, так как процесс (и ядро) поменялся местами по всем строкам вашего кеша.

0 голосов
/ 23 марта 2012

Возможно, что процессы реального времени с привязкой к процессору SCHED_FIFO не дают другим процессам возможности инициировать асинхронное чтение. В то время как при SCHED_OTHER больше процессов инициирует асинхронное чтение, тратя при этом меньше общего времени на ожидание данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...