Pthread методы планирования? - PullRequest
       7

Pthread методы планирования?

3 голосов
/ 01 сентября 2009

Без явного планирования ядро ​​планирует запуск pthreads случайным образом.

Есть ли какие-либо методы планирования, определенные в библиотеке pthread для таких же, как приоритеты?

Ответы [ 2 ]

4 голосов
/ 01 сентября 2009

Приоритет потока указывается в виде дельты, которая добавляется к приоритету процесса. Изменение приоритета процесса влияет на приоритет всех потоков в этом процессе. Приоритет по умолчанию для потока - DEFAULT_PRIO_NP, который не отличается от приоритета процесса.

Эти API-интерфейсы Pthread поддерживают только политику планирования SCHED_OTHER.

  1. pthread_setschedparam (поддерживается только SCHED_OTHER)
  2. pthread_getschedparam
  3. pthread_attr_setschedparam
  4. pthread_attr_getschedparam

Поток AS / 400 конкурирует за планирование ресурсов с другими потоками в системе, а не только с другими потоками в процессе. Планировщик представляет собой планировщик затрат на задержку, основанный на нескольких кривых затрат на задержку (диапазоны приоритетов). Стандарт Posix и спецификация Single Unix называют это областью планирования и политикой планирования, которая в этой реализации не может быть изменена по умолчанию на SCHED_OTHER.

2 голосов
/ 14 января 2010

Это можно контролировать несколько. Для потоков с одинаковым приоритетом стандарт pthreads определяет варианты FIFO (поток работает до его блокировки или выхода), Round Robin (поток выполняется в течение фиксированного периода времени) или значение по умолчанию «Другое». Единственное, что требуется по стандарту, это «Другое», поведение которого зависит от реализации, но обычно это комбинация FIFO и Round Robin (например, поток запускается до тех пор, пока не заблокируется, не завершится или не будет использован временной интервал, в зависимости от того, что произойдет раньше).

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