Книга: Linux программирование в примерах
9.1.3.1. POSIX против действительности
9.1.3.1. POSIX против действительности
Диапазон значений относительного приоритета от -20 до 19, которые использует Linux, имеет исторические корни; он ведет начало по крайней мерее V7. POSIX выражает состояние менее прямым языком, что дает возможность большей гибкости, сохраняя в то же время историческую совместимость. Это также затрудняет чтение и понимание стандарта, вот почему вы и читаете эту книгу. Итак, вот как описывает это POSIX
Во-первых, значение относительного приоритета процесса, поддерживаемое системой, колеблется от 0 до '(2 * NZERO) - 1
'. Константа NZERO
определена в <limits.h>
и должна равняться по крайней мере 20. Это дает диапазон 0–39.
Во-вторых, как мы описывали, сумма текущего значения относительного приоритета и приращение incr
загоняются в этот диапазон.
В заключение, возвращаемое nice()
значение является значением относительного приоритета процесса минус NZERO
. При значении NZERO
20 это дает первоначальный диапазон от -20 до 19, который мы описали вначале.
Результатом является то, что возвращаемое nice() значение в действительности изменяется от '-NZERO
' до 'NZERO-1
', и лучше всего писать свой код в терминах этой именованной константы. Однако, на практике трудно найти систему, в которой NZERO
не было бы равно 20.
- 14.2.2. Блокировка POSIX: fcntl() и lockf()
- Глава 12 Потоки POSIX
- Лекарства против страхов
- «БОМБЫ» ПРОТИВ «ЭНИГМЫ»
- 2.10.5. Безопасность против производительности
- 9.1.6.1. Использование функций POSIX: wait() и waitpid()
- Posix
- 12.6.2. Функции POSIX: random() и srandom()
- Противостояние атаке конкурентов
- Восстановление в POSIX
- Стратегические противоречия
- 18. Каннские противоречия «И только потом – отдых на пляже»