Считываю приоритет процесса из ядра, из тестовой проги и с помощью вывода ps.
Почему разные значения приоритета для одного и того же прооцесса?
Тестовая прога:
#include <stdio.h>
#include <sys/resource.h>
int main( int argc, char *argv[] ) {
int which = PRIO_PROCESS;
id_t pid;
int ret;
while (1) {
pid = getpid();
ret = getpriority (which, pid);
printf ("Prio=%d pid=%d\n",ret,pid);
sleep (10);
}
}
Получаю значение приоритета 0
При выводе команды ps получаю значение приоритета 80 для этого процесса.
При считывании приоритета (опятьже для этого процесса) из функции ядра __sched schedule (void), которая находится в файле sched.c получаю значение 120.
Цифра 120 с одной стороны вроде адекватна (поскольку во всех доках она чаще всего приводится...) но считывая приоритеты остальных процессов также получаю 120. Поле prio структуры task_struct
Как можно обосновать такие разные данные?