pthread_setprogramparam Subroutine
Propósito
Configura os atributos schedpolicy e schedparam de um encadeamento
Biblioteca
Biblioteca de encadeamentos (libpthreads.a)
Sintaxe
#include <pthread.h>
#include <sys/sched.h>
int pthread_setschedparam (thread, schedpolicy, schedparam)
pthread_t thread;
int schedpolicy;
const struct sched_param *schedparam;Descrição
A sub-rotina pthread_setschedparam configura dinamicamente os atributos schedpolicy e schedparam do encadeamento thread.. O atributo agendamento especifica a política de agendamento do encadeamento. O atributo schedparam especifica os parâmetros de planejamento de um encadeamento criado com esse objeto de atributo. O campo sched_priority da estrutura sched_param contém a prioridade do encadeamento.. É um valor inteiro.
Se o encadeamento de destino tiver escopo de contenção do sistema, o processo deverá ter autoridade raiz para configurar a política de planejamento para SCHED_FIFO ou SCHED_RR.
-D_THREAD_SAFE deverá ser usada ou o compilador cc_r usado. Neste caso, a sinalização é automaticamente definida.Esta subroutine faz parte do Tempo de Execução do Sistema Operacional de Base (BOS). A implementação dessa sub-rotina depende da opção POSIX de planejamento de prioridades A opção de agendamento de prioridade POSIX é implementada no sistema operacional.
Parâmetros
| Item | Descrição |
|---|---|
| Encadeamento | Especifica o encadeamento de destino. |
| agendamento | Aponta para o atributo de agendamento para definir. Ele deve ter um dos seguintes valores:
Nota: Prioridade de threads com um escopo de contenção de processo e uma política SCHED_OUTROS é controlada pelo kernel; assim, configurar a prioridade de tal thread não tem efeito. No entanto, prioridade de threads com um escopo de contenção do sistema e uma política SCHED_OUTROS podem ser modificadas. A modificação afeta diretamente o valor
nice do encadeamento kernel subjacente. |
| programar | Aponta para onde os parâmetros de planejamento a serem configurados são armazenados. O campo sched_priority deve estar no intervalo de 1 a 127, em que 1 é a prioridade menos favorecida e 127 é a mais favorecida Se schedpolicy for SCHED_OTHER, então sched_priority deverá estar no intervalo de 40 a 80, em que 40 é a prioridade menos favorecida e 80 é a mais favorecida Os usuários podem alterar a prioridade de um encadeamento ao definir sua política de planejamento para SCHED_OUTROS. Os valores legais que podem ser passados para pthread_setschedparam variam de 40 a 80. Apenas usuários privilegiados podem estabelecer uma prioridade superior a 60. Um valor que varia de 1 39 fornece a mesma prioridade de 40, e um valor que varia de 81 a 127 fornece a mesma prioridade de 80. |
Valores De Retorno
Após a conclusão bem-sucedida, 0 é devolvido. Caso contrário, um código de erro é retornado.
Códigos De Erro
A sub-rotina pthread_setschedparam será malsucedida se o seguinte for verdadeiro:
| Item | Descrição |
|---|---|
EINVAL |
Os parâmetros thread ou planejparam não são válidos. |
ENOSYS |
A opção de agendamento de prioridade POSIX não é implementada. |
ENOTSUP |
O valor dos atributos de agendamento ou agendamento não são suportados. |
EPERM |
O encadeamento de destino tem permissão insuficiente para realizar a operação ou já está engajado em um protocolo mutex. |
ESRCH |
A thread thread não existe. |