Alguém pode explicar como trabalhar com prioridades de thread no OpenBSD?
As informações sobre essa questão nas páginas da MAN são ruins, não fornecem uma compreensão clara. Em particular:
sched_get_priority_min/max
fornece o intervalo. Eu tenho o OpenBSD 6.3 amd64 e o intervalo é 0-31
.
Se eu vir a política / nível de prioridade padrão do primeiro thread de processo criado, vejo: (SCHED_OTHER, 0)
. Se 0
for menor, como posso especificar o encadeamento ocioso? Ou prioridade abaixo do normal? Posso apenas aumentar a prioridade ? Qual prioridade tem encadeamentos do sistema? Por ideia, o nível de prioridade padrão deve ser normal
.
A página MAN pthread_setschedparam()
diz: "A política de agendamento para um segmento pode ser SCHED_FIFO
(primeiro a entrar, primeiro a sair) ou SCHED_RR
(round-robin)". Por que não SCHED_OTHER
? O primeiro thread padrão tem esta política.
Essas prioridades são em tempo real ou são normais?
Alguém pode deixar claro?
No Windows, posso definir idle
priority e vejo que esse thread está agendado somente quando não há outro trabalho em um sistema. Eu posso definir time_critical
, e este segmento tem quase todo o tempo do processador.
Como resolver essas tarefas no OpenBSD? Quais são os análogos das prioridades do Windows: idle
, lowest
, below_normal
, normal
, above_normal
, highest
, time_critical
?
Como escolher entre políticas? FIFO
, OTHER
ou RR
? Essas políticas são iguais na concessão de tempo de processamento quando o nível de prioridade é o mesmo?
Muitas perguntas sem respostas nas páginas da MAN.