2015-11-24 2 views
0

Я работаю над программой обработки насыщенного изображения, которая не требует внимания пользователя и требует выбора уровня приоритета для этого процесса.Исправить «хороший» приоритет планирования POSIX для программы пакетной обработки

Суперпользователь может устанавливать значения от PRI_MIN (-20) до PRI_MAX (+20), а обычные пользователи могут устанавливать от 0 до PRI_MAX. Уровень по умолчанию равен нулю.

В Mac OS X 10.11 документация man nice(1) обсуждает уровни приоритета и примечания к POSIX.2 (IEEE Std 1003.2-1992). Однако эта документация составляет not publicly available, а также имеет been superseded.

Помимо случайного выбора номера между 0 и 20 включительно, существует ли предписанный, осмысленный способ выбора уровня приоритета на основе какого-либо стандарта POSIX или Mac?

+0

Я спрашиваю с точки зрения человека, пишущего программное обеспечение, а не пользователя. –

ответ

1

Приоритет пакетной обработки часто зависит от ОС и обычно не покрывается POSIX.

Проверьте заголовок sched.h и функцию sched_get_priority_min. Это более новый, более продвинутый интерфейс, по сравнению с nice.

Linux дополнительно поддерживает SCHED_BATCH и SCHED_IDLE политики, в то время как Mac OS X обеспечивает совершенно другой интерфейс, который называется Grand Central Dispatch с DISPATCH_QUEUE_PRIORITY_BACKGROUND.

+0

Очень приятно, спасибо! –