почему делает бесконечный цикл непреднамеренного увеличения вида использование ЦП?

Я знаю, что бесконечный цикл к непреднамеренному виду обычно вызывает высокое использование ЦП. Но, я не вполне понимаю почему. Кто-либо может объяснить это мне?

10
задан sawa 9 October 2012 в 20:29
поделиться

4 ответа

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

Если бесконечный цикл не содержит кода, который вызывает некоторые системные функции, которые возвращают время ОС, ОС рассматривает его как процесс, который активно работает над чем-то и дает ему время для выполнения. Если никакие другие процессы не запущены, он потребляет 100% ЦП (в одноядерной системе).

6
ответ дан 3 December 2019 в 14:52
поделиться

ЦП не может делать ничего другого, пока выполняет этот цикл (который никогда не заканчивается). Даже если вы используете упреждающую многозадачную систему (так что бесконечный цикл будет только навсегда забивать свой собственный процесс или поток), цикл будет «съедать» свой временной отрезок каждый раз, когда упреждающий планировщик ОС передает ему ЦП для следующего слайса - ничего не делая, но каждый раз съедая время ЦП на один слайс, так что большая часть ЦП теряется для всех других потоков, которые могли в противном случае выполнять полезную работу.

19
ответ дан 3 December 2019 в 14:52
поделиться

Бесконечные циклы сами по себе не проблема. Большинство приложений, взаимодействующих с пользователем, представляют собой бесконечные циклы. Они постоянно ждут пользователя, действуют в соответствии с ним и снова выполняют цикл. Сама операционная система представляет собой бесконечный цикл. Такие бесконечные циклы считаются «продуктивными», потому что, несмотря на бесконечное повторение чего-либо, они периодически выводят что-то полезное для пользователя.

Думаю, вас беспокоят непродуктивные бесконечные циклы. Но понятно, почему это проблема. У них есть все недостатки продуктивных циклов (потребление энергии, использование процессорного времени и т. Д.) Без каких-либо преимуществ, т.е. они не производят ничего полезного.

6
ответ дан 3 December 2019 в 14:52
поделиться

Вы, вероятно, имеете в виду инструкцию Остановить и остановить огонь

​​
0
ответ дан 3 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: