Как возможна загрузка CPU под 100%?
От: Sharov Россия  
Дата: 09.10.19 09:37
Оценка: :))) :)
Здравствуйте.

Внезапно обнаружил, что не очень понимаю, как возможна загрузка cpu(всех ядер) под 100%.
Судите сами, состоянии когда конвейер пуст и процессор вообще ничего не делает невозможно. Т.е. проц. постоянно что-то делает, переключается между процессами и тд.
Т.е. постоянно загружен. Одна procexp показывает никакую загрузку cpu(1,2%). Подрубаю свою программу -- несколько минут под 100%, соотв. вой куллеров и т.д. Что изменилось?
В ненагруженном состоянии процессор гоняет задачи, которые укладываеются или вып. быстрее нежели отведенный квант, т.е. банально делают что-то вроде yield. В нагруженном состоянии мой процесс выжирает весь квант и просит еще(скажем обращение огромной матрицы без всяких gpu и проч.). Вот только я понять не могу, с точки зрения процессора ничего не изменилось, он все время при деле. Да, в системе появился новый процесс, который выжирает весь квант и cpu bound. Ну так и до этого процессор все время был занят.

Я для себя это объяснил тем, что воя нет поскольку основную часть времени процессор был занять переключанием контекста(yield), т.е. только он приготовился что-то делать, как давай менять задачу.
А тут появился процесс, который целый отведенный квант что-то колбасил. Это разумно звучит?
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.