Get the current scheduling parameters of a process
#include <sched.h> int sched_getparam( pid_t pid, struct sched_param *param );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The sched_getparam() function gets the current scheduling parameters (including the original and current priorities) of the process specified by pid, and puts them in the sched_param structure pointed to by param.
If pid is zero, function gets the parameters for the calling process.
#include <sched.h> #include <stdio.h> #define PRIORITY_ADJUSTMENT 5 int main (void) { int max_priority; struct sched_param param; /* Find out the MAX priority for the FIFO Schedular */ max_priority = sched_get_priority_max(SCHED_FIFO); /* Find out what the current priority is. */ sched_getparam(0, ¶m); printf("The assigned priority is %d.\n", param.sched_priority); printf("The current priority is %d.\n", param.sched_curpriority); param.sched_priority = ((param.sched_curpriority + PRIORITY_ADJUSTMENT) <= max_priority) ? (param.sched_curpriority + PRIORITY_ADJUSTMENT) : -1; if (param.sched_priority == -1) { printf( "Cannot increase the priority by %d. Try a smaller value\n", PRIORITY_ADJUSTMENT); return(0); } sched_setscheduler (0, SCHED_FIFO, ¶m); sched_getparam(0, &qparam); printf("The newly assigned priority is %d.\n", param.sched_priority); printf("The current priority is %d.\n", param.sched_curpriority); return(0); }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
In a multithreaded program, sched_getparam() returns the scheduling parameters for thread 1 in the process pid, or for the calling thread if pid is 0.
errno, getprio(), sched_get_priority_max(), sched_get_priority_min(), sched_getscheduler(), sched_param, sched_setparam(), sched_setscheduler(), sched_yield(), setprio()
“Thread scheduling” in the QNX Neutrino Microkernel chapter of the System Architecture guide
“Scheduling algorithms” in the Programming Overview chapter of the QNX Neutrino Programmer's Guide