яка причина використання ЦП стає високою?


-1

Для простоти, давайте розглянемо у мене є один процесор ядра. У мене 2 завдання працює паралельно. Моє розуміння полягає в тому, що процесор буде виконувати завдання в круговій моди один в момент часу.

Тепер, якщо будь-яке з завдань використовує більше циклів, використання буде вище. Це правильно? Якщо так, то при великих числах циклів вимагається будь-яким завданням або іншими словами, що насправді означають цикли?

Відповіді:


4

Коротка відповідь, як люди написали ціле книги про цю тему:

Цикли зазвичай виражаються термінологією "CPU time". Процесу виділяється певне число «квантів» на ЦП. Майте на увазі, що в архітектурах CISC (наприклад, x86) одна «інструкція» може зайняти кілька циклів.

У найпростіших круглих планувальниках для кожного процесу буде виділено 50% процесорного часу (якщо є 2), тому кожне завдання займе вдвічі довше, якщо це залежатиме тільки від ЦП.

Проте всі сучасні операційні системи мають більш просунуті алгоритми планування, які враховують один або більше з наступних параметрів:

  • Пріоритет
  • Стан (заблоковано для вводу-виводу, виконується, зупинено тощо)
  • Останній раз процес працював на процесорі

Залежно від алгоритму планування, процеси будуть дозволені для запуску на ЦП до:

  • Він запитує I / O і буде заблокований ним
  • Процес з більш високим пріоритетом потребує часу процесора ( попередження )
  • Виконується апаратне переривання.
  • Квантовий процес закінчується.

Як організовується остаточне чергування, залежить від планувальника. Описано планувальник Linux тут .

Думати про цикли не дуже корисно в контексті реального комп'ютера світу. Одна інструкція, як зазначено вище, може приймати кілька циклів на архітектурах CISC. CPU також використовуватиме цикли для перемикання між процесами (зміна регістрів, оновлення MMU тощо). Цикли як такі не є дійсно хорошим показником для використання при описі використання процесора.

Корисний вихід ЦП в основному визначається тим, наскільки швидко він може обробляти запити обробки. Коли процеси готові до обробки, вони ставляться в чергу в виконати чергу , поки процесор не буде оброблений. До тих пір, поки процеси не повинні чекати більше, ніж квантові (~ 200 мс), які будуть виконуватися, система по суті так швидко, як вона збирається отримати. У ОС це відображається як число (або як плаваюче число (Linux: top / uptime ) або відсоток (Windows Taskmanager).

Щоб дати коротку відповідь на запитання, яке ви ставите в назві: утилізація стає високою, оскільки чергу запуску зростає. "Використання", яке ви бачите в Windows або Linux, - це лише середня довжина черги виконання.


Завдяки mtak. З вашою відповіддю, що цикли зазвичай виражаються термінологією "процесорний час", тоді цикли процесорів і використання процесора є різними термінами. Ви можете покласти деяке світло тут, що процесор використання, який є метою цього питання?
user3198603

Я оновлював відповідь, але ви не задаєте конкретного питання. Я припускаю, що ви не фахівець з комп'ютерної архітектури (вибачте, якщо це не так), тому я вважаю, що ви ставите питання, яке не є актуальним. Я дав всю додаткову інформацію, щоб ви могли отримати більш глибоке розуміння та розуміння того, як ОС планує процеси (і як це стосується фактичних показників продуктивності / метрики, які можна переглянути в ОС).
mtak

1
Привіт mtak Я читав трохи більше ресурсів на мережі і отримати концепцію, коли завантаження процесора стає високим. Скажіть, коли я бачу завдання керувати, якщо у використанні CPU відображається 70%, це означає, що в останніх x секундах процесор працював 70% часу в x секундах або лише 30% безкоштовно в останніх x секундах. Я отримую його зараз
user3198603
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.