Информация об изменениях

Сообщение Re: Как возможна загрузка CPU под 100%? от 09.10.2019 10:16

Изменено 09.10.2019 10:27 netch80

Re: Как возможна загрузка CPU под 100%?
Здравствуйте, Sharov, Вы писали:

S>Внезапно обнаружил, что не очень понимаю, как возможна загрузка cpu(всех ядер) под 100%.

S>Судите сами, состоянии когда конвейер пуст и процессор вообще ничего не делает невозможно. Т.е. проц. постоянно что-то делает, переключается между процессами и тд.

Нет.
Процессор может просто быть остановлен и ожидать прерывания. Когда таймер скажет "просыпайся и перепроверь", он пойдёт работать снова.
Конкретные реализации этого разные — на x86 может быть HLT при разрешённых прерываниях, может быть MWAIT, может быть нужно ещё отдать команду северному мосту притормозить... — но оно всегда есть.

А 100% это когда он никогда не впадает в такой останов, потому что при проверке "а есть ли задачи, которые хотят процессора?" очередь таких задач непуста.
Re: Как возможна загрузка CPU под 100%?
Здравствуйте, Sharov, Вы писали:

S>Внезапно обнаружил, что не очень понимаю, как возможна загрузка cpu(всех ядер) под 100%.

S>Судите сами, состоянии когда конвейер пуст и процессор вообще ничего не делает невозможно. Т.е. проц. постоянно что-то делает, переключается между процессами и тд.

Нет.
Процессор может просто быть остановлен и ожидать прерывания. Даже если никто другой (внешнее устройство, другое ядро и т.д., его не дёрнуло) — когда таймер скажет "просыпайся и перепроверь", он пойдёт работать снова.
Конкретные реализации этого разные — на x86 может быть HLT при разрешённых прерываниях, может быть MWAIT, может быть нужно ещё отдать команду северному мосту притормозить... — но оно всегда есть.

А 100% это когда он никогда не впадает в такой останов, потому что при проверке "а есть ли задачи, которые хотят процессора?" очередь таких задач непуста.