O que é um tick da CPU?

32

Pergunta:

  • Como a CPU é calculada e o que ela representa?
  • Será que um único tick equivale a 10 miliseconds , portanto, se algum segmento relatado não for chamado ( 5 * 10 ticks = 500 ticks ), isso significa que a CPU talvez estivesse ocupada demais para programar o segmento acima para funcionar ?
por Aaron 27.01.2010 / 12:21

2 respostas

27

Um tick é uma unidade arbitrária para medir a hora do sistema interno. Geralmente, há um contador interno de OS para ticks; a hora e a data atuais usadas por várias funções do sistema operacional são derivadas desse contador.

Quantos milissegundos o tick representa depende do sistema operacional e pode até variar entre as instalações. Use os mecanismos do sistema operacional para converter carrapatos em segundos.

  • No MS Windows, há 10.000 ticks em um milissegundo (consulte link ).
  • No Linux, o número de pulsos de clock por segundo pode ser obtido usando sysconf(_SC_CLK_TCK); . Veja por exemplo link

Por que um thread informa que não está sendo chamado: Isso dependerá de o thread estar bloqueando em algum lugar (espera, E / S, etc.). Se não estiver bloqueando, então sim, o agendador do sistema operacional decidirá quando será executado, o que pode demorar muito se o sistema estiver ocupado.

Editar:

Note que, talvez infelizmente, alguns autores também usam tick como sinônimo de ciclo de clock do processador (por exemplo, este texto ). Eu acredito que esse uso é menos difundido, mas ainda assim, é melhor descobrir primeiro o que as pessoas estão falando.

    
por 27.01.2010 / 13:39
3

Editar: extraído do Hardware do PC em poucas palavras :

"O clock do processador coordena todas as operações de CPU e memória gerando periodicamente um sinal de referência de tempo chamado clock cycle ou tick . A frequência do clock é especificada em gigahertz (GHz), que especifica bilhões de ticks por Segundo, a velocidade do relógio determina a rapidez com que as instruções são executadas. Algumas instruções exigem uma marca, outras, várias marcações e alguns processadores executam várias instruções durante uma marcação. "

O tempo entre os ticks é determinado pela sua velocidade de clock, e leva um a muitos ticks dependendo do OP sendo executado. Por exemplo, uma CPU de classe 286 precisa de 20 caracteres para multiplicar dois números.

Se você precisar de timers de alto desempenho, não acredito que seja possível confiar em tiques sendo constantes em todos os sistemas.

O escalonador de CPU poderia ter atrasado o encadeamento, especialmente se houvesse outro encadeamento com prioridade mais alta. Então, sim, a CPU poderia estar muito ocupada.

    
por 27.01.2010 / 12:32