Короткий ответ, так как люди написали целые книги на эту тему:
Циклы обычно выражаются терминологией "процессорное время". Процессу выделяется определенное количество "квантов" на процессоре. Помните, что в архитектурах CISC (например, x86) одна "инструкция" может занимать несколько циклов.
В простейших циклических планировщиках 50% процессорного времени будет выделяться каждому процессу (если их 2), поэтому каждая задача будет занимать в два раза больше времени, если она зависит только от процессора.
Однако все современные операционные системы имеют более продвинутые алгоритмы планирования, которые принимают во внимание один или несколько из следующих параметров:
- приоритет
- Состояние (заблокировано для ввода-вывода, работоспособно, остановлено и т.д.)
- Последний раз процесс запускался на процессоре
В зависимости от алгоритма планирования процессам будет разрешено запускаться на процессоре до тех пор, пока:
- Он запрашивает ввод / вывод и будет заблокирован им
- Процесс с более высоким приоритетом требует процессорного времени (упреждение)
- Аппаратное прерывание сработало.
- Квант процесса заканчивается.
Как организована окончательная очередь, зависит от планировщика. Планировщик Linux описан здесь.
Размышление о циклах не очень полезно в контексте реального компьютера. Одна инструкция, как указано выше, может принимать несколько циклов на архитектурах CISC. ЦП также будет использовать циклы для переключения между процессами (изменение регистров, обновление MMU и т.д.). Циклы как таковые не очень хорошая метрика для использования при описании использования процессора.
Полезный вывод ЦП в основном определяется тем, насколько быстро он может обрабатывать запросы. Когда процессы готовы к обработке, они помещаются в очередь в очереди выполнения, пока они не будут обработаны ЦП. Пока процессы не должны ждать больше, чем квант (~ 200 мс) для запуска, система, по сути, работает так же быстро, как и собирается. В ОС это отображается как число (в виде числа с плавающей запятой (Linux: top
/uptime
) или в процентах (Windows Taskmanager).
Чтобы дать краткий ответ на вопрос, который вы задали в заголовке: загрузка становится высокой, поскольку очередь выполнения увеличивается. «Использование», которое вы видите в Windows или Linux, представляет собой лишь среднее значение длины очереди выполнения с течением времени.