Що таке галочка процесора?


37

Питання:

  • Як обчислюється галочка CPU і що вона представляє?
  • Чи tickоднакове прирівнюється до 10 milisecondsцього, якщо якийсь потік, про який повідомляється, не викликається для ( 5 * 10 ticks = 500 ticks), це означає, що процесор був, можливо, занадто зайнятий, щоб запланувати вищезгаданий потік для роботи ?

1
чи можете ви поставити "галочку процесора" в контексті - можливо, виріжте і вставити абзац джерела фрази. Мене хвилює, що може виникнути плутанина між однією з кількох можливих відповідей.
Мік

Відповіді:


31

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

Скільки мілісекунд представляє галочка, залежить від ОС, і навіть може відрізнятися між установками. Використовуйте механізми ОС для перетворення кліщів у секунди.

Щодо того, чому потік повідомляє, що його не викликають: Це буде залежати від того, чи блокується нитка десь (очікування, введення / виведення тощо). Якщо він не блокується, то так, планувальник ОС вирішить, коли він запуститься, що може зайняти довгий час, якщо система зайнята.

Редагувати:

Зауважте, що, на жаль, деякі автори також використовують галочку як синонім для тактового циклу процесора (наприклад, цей текст ). Я вважаю, що це використання є менш розповсюдженим, але все ж найкраще спочатку з’ясувати, про що говорять люди.


Отже, для виконання кожної інструкції процесору потрібна фіксована кількість годинних галочок?
Аарон

1
@aaron: ні, час виконання інструкції прив’язаний до певної кількості циклів процесора. з урахуванням конкретної ОС на певному процесорі, що працює на певній частоті, ви можете обчислити, скільки галочок потрібна певна інструкція для виконання, але цей обчислення не обов'язково дійсний для будь-якої іншої комбінації ОС / CPU / частота / інструкція.
хит кихота

1
@Aaron: Ні, кліщі та цикли процесора - це два різних поняття. Тривалість циклу процесора визначається обладнанням (частотою процесора); кліщі виробляються ОС і використовують будь-яку довжину ОС (або її розробники) вважають за потрібне.
sleske

Не використовуйте datetime.ticks () в якості вимірювального приладу, він навмисно постійний по дизайну, щоб представляти дату і час цього примірника об'єкта. Це залежить від часу, тоді як апаратні кліщі не залежать від часу. Це погано називати з боку рамки.
інвертувати

1
@sleske Хммм, я бачу різницю. "тики" використовувались як синонім циклів процесора, а також термін "постійний час, незалежний від тактової швидкості процесора". Той самий термін з двома значеннями. Це так?
інвертувати

3

Редагування: взято з апаратного забезпечення ПК на двох словах :

"Тактовий процесор координує всі операції з процесором і пам'яттю, періодично генеруючи часовий опорний сигнал, який називається тактовим циклом або галочкою . Частота тактової частоти задається в гігагерцах (ГГц), що визначає мільярди тиків в секунду. Швидкість тактової частоти визначає, наскільки швидко виконуються інструкції. Деякі вказівки вимагають однієї галочки, інші - декількох кліків, а деякі процесори виконують кілька інструкцій протягом однієї галочки ".


Час між кліщами визначається вашою тактовою швидкістю, і це займає від одного до багатьох тиків, залежно від виконуваної ОП. Наприклад, для процесора класу 286 потрібно 20 тиків, щоб помножити два числа.

Якщо вам потрібні високопродуктивні таймери, то я не думаю, що ви можете розраховувати на те, що кліщі будуть постійними у всіх системах.

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


4
-1 Ви плутаєте кліщі та цикли процесора. ticksв системі Unix зазвичай трапляються 60 або 100 разів на секунду, і вони не пов'язані зі швидкістю набору.
sleske

1
Я говорю про апаратні кліщі. 1 Гц процесор обробляє 1 тик (цикл) в секунду, 200 Гц може обробляти 200 циклів в секунду, 2 ГГц два мільярди циклів / сек. Чим швидше ваш процесор, тим більше циклів / сек ви отримуєте.
інвертувати

2
Ах, я бачу, деякі автори використовують tickяк синонім для processor cycle. І все-таки я в основному бачу tickвикористаний, як пояснено у моїй відповіді вище. Але я думаю, що термінологія змінюється, як зазвичай :-(. Я відредагував свою відповідь.
sleske
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.