Questão:
- Como é calculado um tick de CPU e o que representa?
- Um único
tick
equivale a10 miliseconds
isso, se algum encadeamento relatado não for chamado (5 * 10 ticks = 500 ticks
), isso significa que a CPU estava talvez muito ocupada para agendar o encadeamento mencionado para funcionar ?
Respostas:
Um tick é uma unidade arbitrária para medir o tempo interno do sistema. Geralmente, existe um contador interno do SO para ticks; a hora e a data atuais usadas por várias funções do sistema operacional são derivadas desse contador.
A quantidade de milissegundos que um tick representa depende do sistema operacional e pode até variar entre as instalações. Use os mecanismos do sistema operacional para converter ticks em segundos.
sysconf(_SC_CLK_TCK);
. Veja, por exemplo, http://linux.die.net/man/2/timesQuanto ao motivo pelo qual um encadeamento relata que não está sendo chamado: Isso dependerá se o encadeamento está bloqueando em algum lugar (aguardando, E / S etc.). Se não estiver bloqueando, sim, o agendador do sistema operacional decidirá quando será executado, o que poderá levar muito tempo se o sistema estiver ocupado.
Editar:
Observe que, talvez, infelizmente, alguns autores também usem tick como sinônimo de ciclo de clock do processador (por exemplo, este texto ). Acredito que esse uso seja menos difundido, mas ainda assim, é melhor descobrir primeiro do que as pessoas estão falando.
fonte
Edit: Tirado do hardware do PC em poucas palavras :
"O relógio do processador coordena todas as operações da CPU e da memória gerando periodicamente um sinal de referência de tempo chamado ciclo de clock ou tick . A frequência do clock é especificada em gigahertz (GHz), que especifica bilhões de ticks por segundo. A velocidade do clock determina a rapidez com que as instruções são executadas. Algumas instruções exigem um tick, outros vários ticks e alguns processadores executam várias instruções durante um tick. "
O tempo entre os ticks é determinado pela velocidade do relógio e leva de um a muitos ticks, dependendo do OP que está sendo executado. Por exemplo, uma CPU de 286 classes precisa de 20 ticks para multiplicar dois números.
Se você precisar de temporizadores de alto desempenho, não acho que você possa confiar em carrapatos constantes em todos os sistemas.
O agendador da CPU pode ter atrasado o encadeamento, especialmente se houvesse outro encadeamento com uma prioridade mais alta. Então, sim, a CPU poderia estar muito ocupada.
fonte
ticks
em um sistema Unix, geralmente ocorrem 60 ou 100 vezes por segundo e não estão vinculados à velocidade de proc.tick
como sinônimoprocessor cycle
. Ainda assim, vejo principalmentetick
como explicado na minha resposta acima. Mas eu acho que a terminologia varia, como de costume :-( Eu editei a minha resposta..