Linux x86_64Escalonamento#144
sched_setscheduler
Define a política de escalonamento e os parâmetros de prioridade de um processo.
Descrição
Escolhe entre políticas normais (SCHED_OTHER, SCHED_BATCH, SCHED_IDLE) e de tempo real (SCHED_FIFO, SCHED_RR), que preemptam threads de política normal e exigem CAP_SYS_NICE para a maioria dos ajustes.
Header:
sched.hman 2Nota
Para controle mais fino (ex.: SCHED_DEADLINE), veja `sched_setattr`.
Assinatura
int sched_setscheduler(
pid_t pid,
int policy,
const struct sched_param * param
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| pid | pid_t | PID alvo; 0 significa o chamador. |
| policy | int | Nova política: SCHED_OTHER, SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_IDLE. |
| param | const struct sched_param * | Prioridade estática associada à política. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | pidpid_t |
| rsi | argumento 2 | policyint |
| rdx | argumento 3 | paramconst struct sched_param * |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EINVAL(22)
- Argumento inválido.
- EPERM(1)
- Operação não permitida (falta de privilégio).
- ESRCH(3)
- Processo inexistente.