sched_rr_get_interval — get the SCHED_RR interval for the named process
#include <sched.h>
int
sched_rr_get_interval( |
pid_t | pid, |
struct timespec * | tp) ; |
sched_rr_get_interval
()
writes into the timespec
structure pointed to
by tp
the round-robin
time quantum for the process identified by pid
.
The timespec
structure has the following form:
struct timespec { }; time_t tv_sec
;/* seconds */ long tv_nsec
;/* nanoseconds */
If pid
is zero,
the time quantum for the calling process is written into
*tp
. The identified
process should be running under the SCHED_RR
scheduling policy.
POSIX systems on which sched_rr_get_interval
() is available define
_POSIX_PRIORITY_SCHEDULING
in
<unistd.h>.
On success, sched_rr_get_interval
() returns 0. On
error, −1 is returned, and errno
is set appropriately.
Problem with copying information to userspace.
Invalid pid.
The system call is not yet implemented (only on rather old kernels).
The process whose ID is pid
could not be
found.
POSIX does not specify any mechanism for controlling the size of the round-robin time quantum. However, Linux provides a (non-portable) method of doing this. The quantum can be controlled by adjusting the process's nice value (see setpriority(2)). Assigning a negative (i.e., high) nice value results in a longer quantum; assigning a positive (i.e., low) nice value results in a shorter quantum. The default quantum is 0.1 seconds; the degree to which changing the nice value affects the quantum has varied somewhat across kernel versions.
sched_setscheduler(2) has a description of the Linux scheduling scheme.
Programming for the real world − POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0
|