Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sched_set_sched_param(3) — OSF/1 1.0 (TIN) MIPS

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getpid(2)

sched_getscheduler(3)

sched_get_sched_param(3)

sched_setscheduler(3)

sched_set_sched_param(3)  —  Subroutines

Digital

NAME

sched_set_sched_param − set the scheduling parameters of the specified process (P1003.4/D10)

SYNOPSIS

#include <sched.h>

int sched_set_sched_param (
pid_t pid ,
struct sched_param ∗param) ;

PARAMETERS

pid The process identification of the process whose scheduling parameters are set. If pid is zero, the scheduling parameters of the calling process are set. 

param A pointer to a sched_param structure, which contains the scheduling parameters of the specified process.  Currently, the sched_param structure contains only a priority field.  The value of the priority value in the param structure is any integer within the priority range for the current scheduling policy of the process specified by pid. 

DESCRIPTION

The sched_set_sched_param function changes the scheduling parameters of a process. Setting priorities such that the most critical process has the highest priority allows applications to determine more effectively when a process will run. 

At runtime, a process starts out with an initial priority of SCHED_PRIO_USER_MAX. A call to the sched_set_sched_param function that raises the priority of a process, also raises the maximum priority for the process. This higher maximum priority exists for the life of the process or until the priority is set to a new, higher priority through another call to the sched_set_sched_param function. The maximum priority cannot be adjusted downward, but subsequent calls to the sched_set_sched_param or sched_setscheduler functions can specify that a process run at a lower priority. 

You must have superuser privileges to set the priority above the maximum. 

The target process, whether it is running or not, resumes execution after all other runnable processes of equal or greater priority are scheduled to run.  If the priority of the target process is set higher than that of the calling process, and if the target process is ready to run, then the target process will preempt the calling process. If the calling process sets its own priority lower than some other process, then the other process will preempt the calling process. In either situation, the calling process might not receive notification of the completion of the requested priority change until the target process has executed. 

The scheduling parameters of the process as indicated by pid are obtained with a call to the sched_get_sched_param function. 

The priority of a process is inherited across fork and exec calls. 

RETURN VALUES

On a successful call to the sched_set_sched_param function, a value of 0 is returned. On an unsuccessful call, a value of −1 is returned and errno is set to indicate that an error occurred and the specified priority is unchanged. 

ERRORS

The sched_set_sched_param function fails under the following conditions:

[EINVAL] One or more of the requested scheduling parameters is outside the range defined for the specified pid’s scheduling policy. 

[EPERM] The requesting process does not have the permission to set the scheduling parameters as requested for the specified process, or does not have permission to invoke the function. 

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

[ENOSYS] P1003.4/D10 priority scheduling is not configured in this implementation.  Refer to the DEC OSF/1 Realtime Installation Guide for information on how to install the realtime software. 

RELATED INFORMATION

getpid(2), sched_getscheduler(3), sched_get_sched_param(3), sched_setscheduler(3)
 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026