O que é um tick de CPU?

37

Questão:

  • Como é calculado um tick de CPU e o que representa?
  • Um único tickequivale a 10 milisecondsisso, 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 ?
Aaron
fonte
1
você poderia colocar "CPU tick" no contexto - talvez recortar e colar o parágrafo da fonte da frase. Estou preocupado que possa haver confusão entre uma das várias respostas possíveis.
Mick

Respostas:

31

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.

Quanto 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.

sleske
fonte
Então a CPU requer um número fixo de marcações de clock para executar cada instrução?
Aaron
1
@ Aaron: não, o tempo de execução da instrução está vinculado a um certo número de ciclos do processador. dado um SO específico em uma CPU específica em execução em uma frequência específica, você pode calcular quantos ticks uma instrução específica leva para executar, mas esse cálculo não é necessariamente válido para qualquer outra combinação de SO / CPU / frequência / instrução.
quack quixote
1
@ Aaron: Não, ticks e ciclos de processador são dois conceitos diferentes. O comprimento do ciclo do processador é determinado pelo hardware (frequência da CPU); os ticks são produzidos pelo sistema operacional e usam o tamanho que o sistema operacional (ou seus projetistas) julgar apropriado.
sleske
Não use datetime.ticks () como um medidor, ele é deliberadamente constante por design, para representar a data e a hora dessa instância do objeto. Depende do tempo, enquanto os tiques de hardware são independentes do tempo. É uma má nomeação por parte da estrutura.
Invertido
1
@sleske Hmmm eu vejo a diferença. 'ticks' costumava ser sinônimo de ciclos de CPU, bem como um termo para "uma quantidade constante de tempo independente da velocidade do clock da CPU". Mesmo termo com dois significados. Isso esta certo?
inverter
3

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.

invertido
fonte
4
-1 Você está confundindo tiques e ciclos do processador. ticksem um sistema Unix, geralmente ocorrem 60 ou 100 vezes por segundo e não estão vinculados à velocidade de proc.
sleske
1
Eu estou falando sobre carrapatos de hardware. uma CPU de 1hz processa 1 marca (ciclo) por segundo, 200Hz pode processar 200 ciclos por segundo, 2GHz e dois bilhões de ciclos / s. Quanto mais rápido sua CPU, mais ciclos / s você obtém.
Invertido
2
Ah, entendo, alguns autores usam tickcomo sinônimo processor cycle. Ainda assim, vejo principalmente tickcomo explicado na minha resposta acima. Mas eu acho que a terminologia varia, como de costume :-( Eu editei a minha resposta..
sleske