Что такое тик процессора?

37

Вопрос:

  • Как рассчитывается такт процессора и что он представляет?
  • Есть ли один tickприравнять , 10 milisecondsтаким образом , если какой - то поток сообщили , что не призывал к ( 5 * 10 ticks = 500 ticks) означает ли это процессор был , пожалуй , слишком занят , чтобы запланировать вышеупомянутую нить для работы ?
Аарон
источник
1
не могли бы вы поставить «тик процессора» в контексте - возможно, вырезать и вставить абзац источника фразы. Я обеспокоен тем, что между одним из нескольких возможных ответов может возникнуть путаница.
Мик

Ответы:

31

Клеща произвольный блок для измерения внутреннего системного времени. Обычно есть тикающий внутренний счетчик ОС; текущее время и дата, используемые различными функциями ОС, выводятся из этого счетчика.

Сколько миллисекунд представляет тик, зависит от ОС и может даже отличаться в зависимости от установки. Используйте механизмы ОС для преобразования тиков в секунды.

Относительно того, почему поток сообщает, что он не вызывается: это будет зависеть от того, блокирует ли поток где-либо (ожидание, ввод / вывод и т. Д.). Если он не блокирует, то да, планировщик ОС решит, когда он начнет работать, что может занять много времени, если система занята.

Редактировать:

Обратите внимание, что, возможно, к сожалению, некоторые авторы также используют тик в качестве синонима тактового цикла процессора (например, этот текст ). Я считаю, что это использование менее распространено, но все же лучше сначала выяснить, о чем говорят люди.

sleske
источник
Таким образом, процессор требует фиксированного количества тактов для выполнения каждой инструкции?
Аарон
1
@aaron: нет, время выполнения инструкции привязано к определенному числу тактов процессора. учитывая конкретную ОС на конкретном процессоре, работающем с определенной частотой, вы можете рассчитать, сколько тактов требуется конкретной инструкции для выполнения, но этот расчет не обязательно действителен для любой другой комбинации ОС / ЦП / частота / инструкция.
шарлатан-кихот
1
@ Аарон: Нет, такты и циклы процессора - это две разные концепции. Длина цикла процессора определяется аппаратно (частота процессора); Тики создаются ОС и используют ту длину, которую ОС (или ее разработчики) считают подходящей.
Слеське
Не используйте datetime.ticks () в качестве индикатора, он намеренно постоянен, чтобы представлять дату и время этого экземпляра объекта. Это зависит от времени, в то время как аппаратные тики не зависят от времени. Это плохое наименование со стороны фреймворка.
инвертировать
1
@Sleske Хммм, я вижу разницу. Раньше «тики» были синонимом циклов ЦП, а также термином «постоянное количество времени, не зависящее от тактовой частоты ЦП». Тот же термин с двумя значениями. Это правильно?
инвертировать
3

Редактировать: взято из ПК Оборудование в двух словах :

«Процессорные часы координируют все операции процессора и памяти путем периодической генерации эталонного сигнала времени, называемого тактовым циклом или тактом . Тактовая частота указывается в гигагерцах (ГГц), которая задает миллиарды тактов в секунду. Тактовая частота определяет, как быстро выполняются инструкции. Некоторые инструкции требуют один тик, другие - несколько тиков, а некоторые процессоры выполняют несколько инструкций за один тик ".


Время между тактами определяется вашей тактовой частотой, и оно занимает от одного до нескольких тактов в зависимости от выполняемой операции. Например, процессору класса 286 нужно 20 тиков, чтобы умножить два числа.

Если вам нужны высокопроизводительные таймеры, то я не думаю, что вы можете полагаться на то, что тики будут постоянными во всех системах.

Планировщик ЦП мог задержать поток, особенно если был другой поток с более высоким приоритетом. Так что да, процессор мог быть слишком занят.

инвертировать
источник
4
-1 Вы путаете тики и циклы процессора. ticksв Unix-системах обычно это происходит 60 или 100 раз в секунду и не привязано к скорости передачи.
слеске
1
Я говорю об аппаратных тиках. 1 Гц процессор обрабатывает 1 такт (цикл) в секунду, 200 Гц может обрабатывать 200 циклов в секунду, 2 ГГц два миллиарда циклов / сек. Чем быстрее ваш процессор, тем больше циклов в секунду.
инвертировать
2
Ах, я вижу, некоторые авторы используют tickв качестве синонима processor cycle. Тем не менее, я в основном вижу tickиспользованный, как объяснено в моем ответе выше. Но я думаю, что терминология, как обычно, меняется :-(. Я отредактировал свой ответ.
sleske