|
sched_setparam(3)
Contents
|
sched_setparam - Sets the scheduling parameters of the
specified process (P1003.1b)
#include <sched.h>
int sched_setparam ( pid_t pid, const struct sched_param
*param);
Realtime Library (librt.so, librt.a)
Specifies the ID of the process whose scheduling parameters
are set. If pid is zero, the scheduling parameters of
the calling process are set. Specifies a pointer to a
sched_param structure, which contains the scheduling
parameters of the specified process. Currently, the
sched_param structure contains only a priority field. The
value of the priority value is any integer within the priority
range for the current scheduling policy of the process
specified by pid.
The sched_setparam function changes the scheduling parameters
of a process. Setting priorities such that the most
critical process has the highest priority allows applications
to determine more effectively when a process will
run.
At run time, a process starts out with an initial priority
of SCHED_PRIO_USER_MAX. A call to the sched_setparam
function that raises the priority of a process also raises
the maximum priority for the process. This higher maximum
priority exists for the life of the process or until the
priority is set to a new, higher priority through another
call to the sched_setparam function. The maximum priority
cannot be adjusted downward, but subsequent calls to the
sched_setparam or sched_setscheduler functions can specify
that a process run at a lower priority.
You must have superuser privileges to set the priority
above the user maximum, SCHED_PRIO_USER_MAX. A superuser
can set the priority outside the range of the specified
pid's scheduling policy.
When the function completes, the target process resumes
execution after all other runnable processes of equal or
greater priority are scheduled to run. If the priority of
the target process is set higher than that of the calling
process, and if the target process is ready to run, then
the target process will preempt the calling process. If
the calling process set its own priority lower than some
other process, then the other process will preempt the
calling process. In either situation, the calling process
might not receive notification of the completion of the
requested priority change until the target process has
executed.
The scheduling parameters of the process as indicated by
pid are obtained with a call to the sched_getparam function.
The priority of a process is inherited across fork and
exec calls.
On a successful call to the sched_setparam function, the
scheduling parameters are set and a value of 0 (zero) is
returned. On an unsuccessful call, a value of -1 is
returned and errno is set to indicate that an error
occurred and the priority is unchanged.
The sched_setparam function fails under the following conditions:
One or more of the requested scheduling parameters
is outside the range defined for the specified pid's
scheduling policy. This error does not apply for superusers.
The requesting process does not have permission
to set the scheduling parameters for the specified process,
nor does it have appropriate privilege to invoke the
sched_setparam function. No process can be found corresponding
to that specified by pid.
Functions: getpid(2), sched_getparam(3), sched_getscheduler(3), sched_setscheduler(3)
Guide to Realtime Programming
sched_setparam(3)
[ Back ] |