sched_setscheduler(2) set/get scheduling policy and scheduler parameters

Other Alias

sched_getscheduler

LIBRARY

Lb libc

SYNOPSIS

In sched.h Ft int Fn sched_setscheduler pid_t pid int policy const struct sched_param *param Ft int Fn sched_getscheduler pid_t pid

DESCRIPTION

The Fn sched_setscheduler system call sets the scheduling policy and scheduling parameters of the process specified by Fa pid to Fa policy and the parameters specified in the Vt sched_param structure pointed to by Fa param , respectively. The value of the Fa sched_priority member in the Fa param structure must be any integer within the inclusive priority range for the scheduling policy specified by Fa policy .

In this implementation, if the value of Fa pid is negative the system call will fail.

If a process specified by Fa pid exists and if the calling process has permission, the scheduling policy and scheduling parameters will be set for the process whose process ID is equal to Fa pid .

If Fa pid is zero, the scheduling policy and scheduling parameters are set for the calling process.

In this implementation, the policy of when a process can affect the scheduling parameters of another process is specified in St -p1003.1b-93 as a write-style operation.

The scheduling policies are in Fa <sched.h> :

Bq Er SCHED_FIFO
First-in-first-out fixed priority scheduling with no round robin scheduling;
Bq Er SCHED_OTHER
The standard time sharing scheduler;
Bq Er SCHED_RR
Round-robin scheduling across same priority processes.

The Vt sched_param structure is defined in Fa <sched.h> :

struct sched_param {
        int sched_priority;     /* scheduling priority */
};

The Fn sched_getscheduler system call returns the scheduling policy of the process specified by Fa pid .

If a process specified by Fa pid exists and if the calling process has permission, the scheduling parameters for the process whose process ID is equal to Fa pid are returned.

In this implementation, the policy of when a process can obtain the scheduling parameters of another process are detailed in St -p1003.1b-93 as a read-style operation.

If Fa pid is zero, the scheduling parameters for the calling process will be returned. In this implementation, the Fa sched_getscheduler system call will fail if Fa pid is negative.

RETURN VALUES

Rv -std

ERRORS

On failure errno will be set to the corresponding value:

Bq Er ENOSYS
The system is not configured to support this functionality.
Bq Er EPERM
The requesting process doesn not have permission as detailed in St -p1003.1b-93 .
Bq Er ESRCH
No process can be found corresponding to that specified by Fa pid .
Bq Er EINVAL
The value of the Fa policy argument is invalid, or one or more of the parameters contained in Fa param is outside the valid range for the specified scheduling policy.

STANDARDS

The Fn sched_setscheduler and Fn sched_getscheduler system calls conform to St -p1003.1b-93 .