SchedInfo(), SchedInfo_r()

Получить параметры планирования

Прототип:

#include <sys/neutrino.h>
int SchedInfo( pid_t pid,
int policy,
struct _sched_info *info );
int SchedInfo_r( pid_t pid,
int policy,
struct _sched_info *info );

Аргументы:

pid
Идентификатор процесса или 0, чтобы получить информацию о текущем процессе.
policy
Дисциплина планирования, которая должна быть одной из следующих:
SCHED_FIFO
планировщик с фиксированным приоритетом, в котором готовый поток с наивысшим приоритетом работает до тех пор, пока он не заблокируется или не будет вытеснен потоком с более высоким приоритетом.
SCHED_RR
аналогично SCHED_FIFO, за исключением того, что потоки с одинаковым уровнем приоритета принудительно вытесняются по исчерпании заданного бюджета времени (round robin), равного 4 × период работы таймера (см. ClockPeriod()).
SCHED_OTHER
тоже самое, что и SCHED_RR.
SCHED_SPORADIC
спорадическое планирование.
info
Указатель на struct _sched_info, где функция хранит информацию планировщика.

Библиотека:

libc

Описание:

Данные вызовы ядра возвращают информацию о планировщике потоков ядра, включая минимальный и максимальный приоритет потока для процесса pid при использовании дисциплины планирования policy. Если pid равен 0, возвращается информация о текущем процессе. В любом случае struct _sched_info, на который указывает info, заполняется соответствующей информацией.

Функции SchedInfo() и SchedInfo_r() идентичны за исключением способа возврата ошибок.


Note: Рекомендуется использовать функции sched_get_priority_max(), sched_get_priority_min(), или sched_rr_get_interval() вместо прямых вызовов ядра.

Возвращаемое значение:

SchedInfo()
Если возникла ошибка функция возвращает -1, код ошибки записывается в errno. Любое другое возвращенное значение считается успешным завершением.
SchedInfo_r()
EOK возвращается при успешном завершении. Функция НЕ устанавливает errno. При возникновении ошибки функция возвращает один из представленных ниже кодов.

Коды ошибок:

EINVAL
pid или policy недействительны.
ENOSYS
Система не поддерживает функцию SchedInfo().
ESRCH
Процесс, указанный в pid, не существует.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

struct _sched_info, sched_get_priority_max(), sched_get_priority_min(), sched_rr_get_interval(), SchedGet(), SchedSet()




Предыдущий раздел: Описание API системной библиотеки