Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

AnaCal

Linux Tratamento de tempos - programa concorrente

Mensagens Recomendadas

AnaCal    0
AnaCal

Boas, pretendo criar threads de x em x tempo mas através do sleep crio um atraso e não é isso que pretendo. Estive a ver o time stamp que me a hora actual mas se obter a hora actual e adicionar o tempo para a nova criação da tarefa não é calculado o tempo certo. Alguém me pode dar alguma sugestão?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1123
HappyHippyHippo

não vai conseguir eliminar esse atraso porque nunca conseguiras controlar o agendador do sistema operativo.

no entanto podes "rodear" esse problema:

imagina isto:

- tens de agendar para t+delta

- fazes sleep para t+delta-gama (gama menor que o atraso de agendamento do processador)

- "comes" o processador com um ciclo até chegar ao tempo pretendido

uma solução ... pode não ser ideal mas deve funcionar

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Flinger    50
Flinger

não vai conseguir eliminar esse atraso porque nunca conseguiras controlar o agendador do sistema operativo.

Não te esqueças que não tens controlo sobre que processo está a correr, e por muito que tentes acertar isso, estás sempre sujeito ao scheduler, como disse o Hyppo. Podes tentar modificar a prioridade do processo, de forma a que o CPU lhe dê prioridade máxima, mas mesmo assim não é garantido.

E eu não colocava espera activa. Podes usar o alarm, ou o nano_sleep se quiseres maior precisão.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade