Позвольте мне объяснить это на примере процессоров Intel x86 и Windows NT (и его производных).Одним из встроенных системных процессов в этих ОС является System Idle Process .Этот процесс показывает, сколько процессорного времени используется «циклом ожидания» операционной системы.Этот цикл ожидания ничего не делает, кроме как выполняет команду HLT
ЦПУ.Эта инструкция, в свою очередь, предписывает ЦП ничего не делать до тех пор, пока не появится следующее прерывание.
Поэтому, если планировщик решает, что в данный момент нет процессов, требующих времени ЦП, он передается Процесс простоя системы .Скажем, если 99% времени за последние n секунд было потрачено на "выполнение" этого процесса, это означает, что ЦП действительно использовался только в 1% в этих n секунд.
Я полагаю, что это полностью аналогично Linux, только то, что в нем нет отдельного процесса для моделирования "простоя" процессора.
С другой стороны: этоКонечно, возможно иметь ОС, которая вообще не выполняет инструкцию HLT
.Это имело место в Windows 98 и более ранних версиях (включая, очевидно, MS-DOS), чей цикл простоя просто состоял из jmp $
.Это заставило процессор использовать больше энергии.