Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SCHED_SETPARAM(2)	       System Calls Manual	       SCHED_SETPARAM(2)

NAME
     sched_setparam, sched_getparam -- set/get scheduling parameters

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <sched.h>

     int
     sched_setparam(pid_t pid, const struct sched_param *param);

     int
     sched_getparam(pid_t pid, struct sched_param *param);

DESCRIPTION
     The  sched_setparam()  system  call  sets	the scheduling parameters of the
     process specified by pid to the values specified by the sched_param  struc-
     ture  pointed  to	by param.  The value of the sched_priority member in the
     param structure must be any integer within the inclusive priority range for
     the current scheduling policy of the process specified by pid.  Higher  nu-
     merical values for the priority represent higher priorities.

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

     If a process specified by pid exists and if the calling process has permis-
     sion, 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.

     In this implementation, the policy of when a process can affect the  sched-
     uling  parameters	of another process is specified in IEEE Std 1003.1b-1993
     ("POSIX.1") as a write-style operation.

     The target process, whether it is running or not running, will resume  exe-
     cution after all other runnable processes of equal or greater priority have
     been scheduled to run.

     If  the priority of the process specified by the pid argument is set higher
     than that of the lowest priority  running	process  and  if  the  specified
     process  is  ready  to  run, the process specified by the pid argument will
     preempt a lowest priority running process.  Similarly, if the process call-
     ing sched_setparam() sets its own priority lower than that of one	or  more
     other  nonempty  process  lists,  then  the process that is the head of the
     highest priority list will also preempt the calling process.  Thus, in  ei-
     ther  case,  the  originating process might not receive notification of the
     completion of the requested  priority  change  until  the	higher	priority
     process has executed.

     In  this implementation, when the current scheduling policy for the process
     specified by pid is normal timesharing (SCHED_OTHER, aka SCHED_NORMAL  when
     not  POSIX-source)  or  the  idle policy (SCHED_IDLE when not POSIX-source)
     then the behavior is as if the process had been running under SCHED_RR with
     a priority lower than any actual realtime priority.

     The sched_getparam() system call will return the scheduling parameters of a
     process specified by pid in the sched_param structure pointed to by param.

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

     In  this implementation, the policy of when a process can obtain the sched-
     uling parameters of another process are detailed in IEEE  Std  1003.1b-1993
     ("POSIX.1") as a read-style operation.

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

RETURN VALUES
     Upon successful completion, the value 0 is returned; otherwise the value -1
     is returned and the global variable errno is set to indicate the error.

ERRORS
     On failure errno will be set to the corresponding value:

     [ENOSYS]		The system is not configured to support this functional-
			ity.

     [EPERM]		The requesting process doesn not have permission as  de-
			tailed in IEEE Std 1003.1b-1993 ("POSIX.1").

     [ESRCH]		No  process can be found corresponding to that specified
			by pid.

     [EINVAL]		For sched_setparam():  one  or	more  of  the  requested
			scheduling  parameters	is outside the range defined for
			the scheduling policy of the specified pid.

SEE ALSO
     sched_get_priority_max(2),    sched_get_priority_min(2),	 sched_getsched-
     uler(2), sched_rr_get_interval(2), sched_setscheduler(2), sched_yield(2)

STANDARDS
     The  sched_setparam() and sched_getparam() system calls conform to IEEE Std
     1003.1b-1993 ("POSIX.1").

FreeBSD ports 15.quarterly	 March 12, 1998 	       SCHED_SETPARAM(2)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sched_setparam&sektion=2&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help