URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4931
[ Назад ]

Исходное сообщение
"Вопрос по потокам"

Отправлено masta , 11-Дек-05 14:13 
Подскажите новичку. Есть процесс с несколькими потоками разных приоритетов (используется schedpolicy RoundRobin) среди которых критический поток. Каким способом гарантировано получать управление в этот критический поток каждые 400-500 мксек. В настоящий момент выставляю высшый приоритет, изменяю системный тик до 100мксек и в остальных потоках (как правило все они в ожидании синхронизирующего момента) по завершении логической операции вызываю sched_yield (напр. поток ожидает очередь исходящих пакетов, отправил пакет - не отправляем следующий а вызываем sched_yield). Как то это все не по науке.
1 Как правильно организовать управление потоками?
можно ли не полагаться на ядро, а самому полностью контролировать выделение времени потоку и контроль переключения?
2. Какая схема schedpolicy более строгая, гибкая?

Содержание

Сообщения в этом обсуждении
"Вопрос по потокам"
Отправлено ACCA , 15-Дек-05 20:17 
>Подскажите новичку. Есть процесс с несколькими потоками разных приоритетов (используется schedpolicy RoundRobin)
>среди которых критический поток. Каким способом гарантировано получать управление в этот
>критический поток каждые 400-500 мксек. В настоящий момент выставляю высшый приоритет,
[...]
>1 Как правильно организовать управление потоками?
>можно ли не полагаться на ядро, а самому полностью контролировать выделение времени
>потоку и контроль переключения?

Нельзя - ядро не даст. Если приложение реального времени вроде техпроцесса, то нужно брать RTOS вроде QNX и курить её мануалы. В обычном Unix можешь нарваться на очень серьёзные неприятности.


>2. Какая схема schedpolicy более строгая, гибкая?

Вряд ли кто скажет - слишком уж специфичная задача.