sched_setscheduler(3p) - phpMan

SCHED_SETSCHEDULER(3P)     POSIX Programmer's Manual    SCHED_SETSCHEDULER(3P)

PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the  corresponding
       Linux  manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.
NAME
       sched_setscheduler - set scheduling policy and parameters (REALTIME)
SYNOPSIS
       #include <sched.h>
       int sched_setscheduler(pid_t pid, int policy,
              const struct sched_param *param);

DESCRIPTION
       The sched_setscheduler() function shall set 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 sched_param
       structure shall be any integer within the inclusive priority range  for
       the scheduling policy specified by policy.  If the value of pid is neg-
       ative, the behavior of the sched_setscheduler()  function  is  unspeci-
       fied.
       The  possible  values  for  the  policy  parameter  are  defined in the
       <sched.h> header.
       If a process specified by pid exists, and if the  calling  process  has
       permission,  the  scheduling  policy and scheduling parameters shall be
       set for the process whose process ID is equal to pid.
       If pid is zero, the scheduling policy and scheduling  parameters  shall
       be set for the calling process.
       The conditions under which one process has the appropriate privilege to
       change the scheduling parameters of another process are implementation-
       defined.
       Implementations may require that the requesting process have permission
       to set its own scheduling parameters or those of another process. Addi-
       tionally,  implementation-defined  restrictions  may  apply  as  to the
       appropriate privileges required to set a process' own  scheduling  pol-
       icy, or another process' scheduling policy, to a particular value.
       The  sched_setscheduler() function shall be considered successful if it
       succeeds in setting the scheduling policy and scheduling parameters  of
       the  process specified by pid to the values specified by policy and the
       structure pointed to by param, respectively.
       If the scheduling policy specified by  policy  is  SCHED_SPORADIC,  the
       value  specified by the sched_ss_low_priority member of the param argu-
       ment shall be any integer within the inclusive priority range  for  the
       sporadic server policy. The sched_ss_repl_period and sched_ss_init_bud-
       get members of the param argument shall represent the  time  parameters
       used  by  the sporadic server scheduling policy for the target process.
       The sched_ss_max_repl member of the param argument shall represent  the
       maximum  number of replenishments that are allowed to be pending simul-
       taneously for the process scheduled under this scheduling policy.
       The specified sched_ss_repl_period shall be greater than  or  equal  to
       the  specified  sched_ss_init_budget for the function to succeed; if it
       is not, then the function shall fail.
       The value of sched_ss_max_repl shall be within the inclusive range  [1,
       {SS_REPL_MAX}]  for the function to succeed; if not, the function shall
       fail.
       If the scheduling policy specified by policy is  either  SCHED_FIFO  or
       SCHED_RR,    the   sched_ss_low_priority,   sched_ss_repl_period,   and
       sched_ss_init_budget members of the param argument shall have no effect
       on the scheduling behavior.
       The  effect  of this function on individual threads is dependent on the
       scheduling contention scope of the threads:
        * For threads with system scheduling contention scope, these functions
          shall have no effect on their scheduling.
        * For  threads  with process scheduling contention scope, the threads'
          scheduling policy and associated parameters shall not  be  affected.
          However,  the scheduling of these threads with respect to threads in
          other processes may be dependent on  the  scheduling  parameters  of
          their process, which are governed using these functions.
       If  an  implementation  supports  a two-level scheduling model in which
       library threads are multiplexed  on  top  of  several  kernel-scheduled
       entities,  then the underlying kernel-scheduled entities for the system
       contention scope threads shall not be affected by these functions.
       The underlying kernel-scheduled entities  for  the  process  contention
       scope  threads shall have their scheduling policy and associated sched-
       uling parameters changed to the values specified in policy  and  param,
       respectively.  Kernel-scheduled  entities for use by process contention
       scope threads that are created after this call completes shall  inherit
       their  scheduling  policy and associated scheduling parameters from the
       process.
       This function is not atomic  with  respect  to  other  threads  in  the
       process.   Threads  may continue to execute while this function call is
       in the process of changing the scheduling policy and associated  sched-
       uling  parameters  for the underlying kernel-scheduled entities used by
       the process contention scope threads.
RETURN VALUE
       Upon successful completion, the function shall return the former sched-
       uling  policy  of  the  specified  process. If the sched_setscheduler()
       function fails to complete  successfully,  the  policy  and  scheduling
       parameters  shall  remain  unchanged,  and  the function shall return a
       value of -1 and set errno to indicate the error.
ERRORS
       The sched_setscheduler() function shall fail if:
       EINVAL The value of the policy parameter is invalid, or one or more  of
              the parameters contained in param is outside the valid range for
              the specified scheduling policy.
       EPERM  The requesting process does not have permission to set either or
              both  of  the  scheduling parameters or the scheduling policy of
              the specified process.
       ESRCH  No process can be found corresponding to that specified by pid.

       The following sections are informative.
EXAMPLES
       None.
APPLICATION USAGE
       None.
RATIONALE
       None.
FUTURE DIRECTIONS
       None.
SEE ALSO
       sched_getparam(), sched_getscheduler(), sched_setparam(), the Base Def-
       initions volume of IEEE Std 1003.1-2001, <sched.h>
COPYRIGHT
       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003  by  the  Institute  of
       Electrical  and  Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained  online
       at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group                  2003               SCHED_SETSCHEDULER(3P)