Здравствуйте, Sharov, Вы писали:
S>Внезапно обнаружил, что не очень понимаю, как возможна загрузка cpu(всех ядер) под 100%. S>Судите сами, состоянии когда конвейер пуст и процессор вообще ничего не делает невозможно. Т.е. проц. постоянно что-то делает, переключается между процессами и тд.
Нет.
Процессор может просто быть остановлен и ожидать прерывания. Даже если никто другой (внешнее устройство, другое ядро и т.д., его не дёрнуло) — когда таймер скажет "просыпайся и перепроверь", он пойдёт работать снова.
Конкретные реализации этого разные — на x86 может быть HLT при разрешённых прерываниях, может быть MWAIT, может быть нужно ещё отдать команду северному мосту притормозить... — но оно всегда есть.
А 100% это когда он никогда не впадает в такой останов, потому что при проверке "а есть ли задачи, которые хотят процессора?" очередь таких задач непуста.