Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/s/sched_setscheduler.html on line 1
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/s/sched_setscheduler.html on line 1
Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/s/sched_setscheduler.html on line 8
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/s/sched_setscheduler.html on line 8
Change the priority and scheduling policy of a process
#include <sched.h>
int sched_setscheduler(
pid_t pid,
int policy,
const struct sched_param *param );
- pid
- The ID of the process whose priority and scheduling policy you want to
set, or zero if you want to set them for the current process.
- policy
- The scheduling policy, which must be one of:
- SCHED_FIFO — a fixed-priority scheduler in which
the highest priority ready thread runs until it blocks or is preempted
by a higher priority thread.
- SCHED_RR — similar to SCHED_FIFO,
except that threads at the same priority level timeslice (round robin)
every 4 × the clock period (see
ClockPeriod()).
- SCHED_OTHER — currently the same as
SCHED_RR.
- SCHED_SPORADIC — sporadic scheduling.
For more information, see
“Thread scheduling”
in the QNX Neutrino Microkernel chapter of the
System Architecture guide.
- param
- A pointer to a
sched_param
structure whose
sched_priority member holds the priority that you want to
assign to the process.
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
The sched_setscheduler() function changes the priority of
process pid to that of the sched_priority member in
the sched_param structure passed as param, and the
scheduling policy is set to policy.
If pid is zero, the policy and priority of the calling process are set.
The sched_priority member in param must lie between
the minimum and maximum values returned by
sched_get_priority_max() and
sched_get_priority_min().
By default, process priority and scheduling algorithm are inherited from or explicitly set by the parent process.
Once running, the child process may change its priority by
using this function.
The previous scheduling policy, or -1 if an error occurs (errno is set).
- EFAULT
- A fault occurred trying to access the buffers provided.
- EINVAL
- The priority or scheduling policy isn't a valid value.
- EPERM
- The calling process doesn't have sufficient privilege to set the priority.
- ESRCH
- The process pid doesn't exist.
See
sched_getparam().
POSIX 1003.1 PS
Safety: | |
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |
In a multithreaded program, sched_setscheduler() sets
the scheduling policy for thread 1 in the process pid,
or for the calling thread if pid is 0.
errno,
getprio(),
sched_getparam(),
sched_get_priority_max(),
sched_get_priority_min(),
sched_getscheduler(),
sched_param,
sched_setparam(),
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
Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/lib_ref/s/sched_setscheduler.html on line 228
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/lib_ref/s/sched_setscheduler.html on line 228