HP-UX Reference (11i v2 04/09) - 2 System Calls (vol 5)
r
rtsched(2) rtsched(2)
scheduling policy of the process specified by pid.
Higher numerical values for the priority represent higher (stronger) priorities. Note that this is different
from the
SCHED_HPUX, SCHED_TIMESHARE
, SCHED_NOAGE, and SCHED_RTPRIO scheduling policies,
where higher numerical values represent lower (weaker) priorities. See the
PRI_HPUX_TO_POSIX()
and PRI_POSIX_TO_HPUX()
functions, and SCHED_RTPRIO, SCHED_NOAGE
, and SCHED_OTHER in
"Scheduling Policies" below.
If a process described by pid exists and if the calling process has permission, the scheduling parameters
are set for the process whose process ID is equal to pid.
If pid is zero, the scheduling parameters are set for the calling process.
If the process pid contains more than one thread or lightweight process (that is, the process is mul-
tithreaded), this function will affect the policy and priority of individual kernel schedulable entities in the
process depending on their scheduling contention scope.
• For threads created with system contention scope, this system call will have no effect on their
scheduling or the scheduling of the underlying kernel scheduled entities.
• For threads with process contention scope, the threads’ scheduling parameters will not be
affected. However, the underlying kernel scheduled entities for the process contention scope
threads will have their scheduling parameters changed to the value specified in param. Kernel
scheduled entities for use by process contention scope threads that are created after this call
completes, inherit their scheduling policy and associated scheduling parameters from the pro-
cess.
• For single threaded processes, the scheduling parameters of its thread are also changed.
The priority returned is the old priority of the target process, though individual threads or lightweight
processes may have a different value if some other interface is used to change an individual thread or
lightweight processes priority.
Only a superuser may change the scheduling parameters of another process.
The calling process must have the appropriate privileges or be a member of a group having
PRIV_RTSCHED access to successfully call sched_setparam()
.
The target process, whether it is running or not running, will resume execution after all other runnable
processes of equal or greater priority have been scheduled to run.
If the priority of any kernel schedulable entities (threads) in the process is changed and is set higher than
that of the lowest priority running thread, and if any of the modified threads is ready to run, then it will
preempt the lower-priority running thread. Similarly, if the process calling
sched_setparam() sets
its own priority lower than that of one or more other nonempty thread lists, then the thread that is the
head of the highest priority list will also preempt the calling thread. Thus, in either case, the originating
process may not receive notification of the completion of the requested priority change until the higher
priority thread has executed.
sched_getparam()
The
sched_getparam() function returns the scheduling parameters of a process specified by pid in
the sched_param structure pointed to by param.
If a process described by pid exists, the scheduling parameters are returned for the process whose process
ID is equal to pid.
If the process pid contains more than one thread or lightweight process (that is, the process is mul-
tithreaded), this function shall only return the process scheduling policy and priority. Individual threads
or lightweight processes in the target process will have their own scheduling policies and priorities which
may be different from the scheduling policy and priority of their process.
If pid is zero, the scheduling parameters are returned for the calling process.
sched_setscheduler()
The
sched_setscheduler() function sets the scheduling policy and scheduling parameters of the
process specified by pid to policy and the parameters specified in the sched_param structure pointed to by
param, respectively. The value of the sched_priority member in the param structure can be any integer
within the inclusive priority range for the scheduling policy specified by policy .
Section 2−−296 Hewlett-Packard Company − 2 − HP-UX 11i Version 2: September 2004