Страница 1 из 1

приоритет потоков

Добавлено: 20 фев 2007, 03:34
unq
доброго всем времени суток

у меня возник следующий вопрос, при создании потока хочу поменять у него приоритет. Делаю вот так:

Код: Выделить всё

pthread_attr_t attr;
pthread_attr_init(&attr);

struct sched_param sched;
if(pthread_attr_getschedparam(&attr,&sched) == 0){
  sched.sched_priority = 5;
  pthread_attr_setschedparam(&attr,&sched);
}

pthread_create(
			&oshandle,
			&attr,
			entry,
			(void*)handle);
так вот очень бы хотелось узнать следующее: max and min значения для sched_priority и вообще является ли это верным?
Дело в том что покопавшись в нете нашел много непонятного, при том что пример от туда же:
"SCHED_OTHER can only be used at static priority 0"
а сделав небольшой тест получил док-во:
sched_get_priority_min(SCHED_OTHER) ==
sched_get_priority_max(SCHED_OTHER) == 0

так как установлавть приоритет? и какие значения возможны?

Добавлено: 21 фев 2007, 01:02
unq
хм... nice не подойдет, он поменяет приоритет всего процесса и его потоков, я прав?
мне надо иметь возможность менять приоритет одного отдельного потока при создании (а можно ли это сделать при его работе?).
Будет ли правильно пользовать вместо SCHED_OTHER, SCHED_FIFI or SCHED_RR ?? у них приоритет как я понял меняется от 1 до 99. как отразится использование этих политик на SCHED_OTHER и какую их низ лучше пользовать?

будет ли правильно работать(и будет ли вообще) конкуренция если все потоки в процессе будут иметь SCHED_OTHER, а один поток иметь CHED_FIFI or SCHED_RR?