Милость и приоритетность процессов
Согласно некоторым ресурсам, которые я прочитал, процесс с низким значением nice имеет больший приоритет. Поскольку он имеет больший приоритет, CPU выделяет больше времени для этого процесса.
Тем не менее, это звучит немного странно, потому что значение приоритета процесса вычисляется путем суммирования значения nice с 20.
PR = NI + 20. Это легко увидеть с помощью команды top
Согласно этой формуле, процессы с более высокими значениями приятных имеют более высокие приоритеты, но некоторые ресурсы говорят, что процесс с более низкими значениями приятных имеет больший приоритет.
Какой из них является правдой?
1 ответ
Согласно этой формуле, процессы с более высокими значениями приятных имеют более высокие приоритеты, но некоторые ресурсы говорят, что процесс с более низкими значениями приятных имеет больший приоритет.
Закрыть, но без печенья. То, что числовое значение приоритета является высоким, не означает, что приоритет является высоким. top
читает приоритет от /proc/<pid>/stat
, Увидеть man 5 proc
для объяснения этого файла:
(18) priority %ld
(Explanation for Linux 2.6) For processes running a real-time scheduling
policy (policy below; see sched_setscheduler(2)), this is the negated
scheduling priority, minus one; that is, a number in the range -2 to
-100, corresponding to real-time priorities 1 to 99. For processes
running under a non-real-time scheduling policy, this is the raw nice
value (setpriority(2)) as represented in the kernel. The kernel stores
nice values as numbers in the range 0 (high) to 39 (low), corresponding
to the user-visible nice range of -20 to 19.
Before Linux 2.6, this was a scaled value based on the scheduler
weighting given to this process.
Итак: PR идет от 0 (высокий) до 39 (низкий).