Имя: Пароль:
IT
Админ
Что означает процент загруженности процессора?
0 Lama12
 
23.06.15
10:45
Подтолкните в нужном направлении пожалуйста. процент чего показывает диспетчер задач и другие инструменты отображающие загрузку процессора?
Т.е. что это за процент и процент чего и от чего?
1 Гёдза
 
23.06.15
10:46
максимум может делать 100 операций в сек а делает 15
2 Lama12
 
23.06.15
10:48
(1) А кто и как эти операции считает и почему нельзя выполнить следующие операции? Или стоим ждем ответов от других устройств?
3 Остап Сулейманович
 
23.06.15
10:51
(2) "ждем ответов от других устройств?" йес.
Ну и еще для многоядерных считается производительность всех ядер. А по факту для однопоточных приложений (как-то 1С) работает только одно ядро. Но на сто процентов. В итоге для 4-х ядерного нагрузка будет 25%.
4 Гёдза
 
23.06.15
10:54
(2) Ожидание (нормально реализованное) не загружает процессор.
Классический пример с блокировками.
Все тормозит, а оборудование не загружено
5 Lama12
 
23.06.15
10:55
(3) Т.е. если написать программу которая будет работать только с данными помещающимися в процессорный кэш или вообще в регистры и, допустим, поставить ее в цикл с прерыванием через минуту, то на минуту загрузка будет 100%?
6 Lama12
 
23.06.15
10:55
(4) С блокировками понятно. Допустим что их нет.
7 Маратыч
 
23.06.15
10:56
(5) Зависит от программы, но в общем случае да.
8 Гёдза
 
23.06.15
10:57
(2) См понятие очередь процессора
9 Lama12
 
23.06.15
10:57
(7) Ага.. тогда понятно. Могу предположить, что счетчик операций аппаратный. Иначе не представляю как можно программно считать количество команд.
10 Остап Сулейманович
 
23.06.15
11:02
(4) "Ожидание (нормально реализованное) не загружает процессор."
Вы за какое "ожидание"? Например прерывание обслуживания диска имеет наивысший приоритет и полностью останавливает работу (как минимум одного ядра) до получения ответа от контроллера. Прерывание от мышки или клавиатуры - это да... становится в очередь на обслуживание в конце всех приоритетов. От таймера - приоритет уже забыл...(((
11 Маратыч
 
23.06.15
11:02
(9) За один такт выполняется максимум N операций для определенного процессора. Количество тактов известно, количество операций известно. Что тут считать? :)
12 Фрэнки
 
23.06.15
11:03
(9) Смотря в какой оси это считать. В win дает только общее представление, а точных цифр не показывает. Смысл только в том, что дает увидеть "Отвечает" и "Не отвечает"
Когда не отвечает, то и степень его нагрузки на процессор не может быть определена.
13 Маратыч
 
23.06.15
11:03
(10) Эээм... а как же DMA? :))
14 Lama12
 
23.06.15
11:06
(11) Но это через максимум. Т.е. приблизительно. Получается процент приблизительный?
15 Остап Сулейманович
 
23.06.15
11:07
(13) Причем здесь ДМА? Ну позволяет запись в буфер, а не в порты и че? Даже у современных дисков буфер не бесконечен. И посылать на запись очередную порцию данных возможно только после получения флага контроллера о том, что буфер доступен на запись. Вот обработчик прерывания и ждет пока получит этот флаг от контроллера.
16 Фрэнки
 
23.06.15
11:07
(14) И очень-очень приблизительный.
17 Фрэнки
 
23.06.15
11:08
(14) У тебя же вопрос внутри Windows ?
18 Остап Сулейманович
 
23.06.15
11:09
(14) Конечно приблизительно. Очень мало операций, которые выполняются за один такт. Я конечно точно не знаю, но видимо в расчет принимается какая-то средняя длина команды в тактах.
19 Lama12
 
23.06.15
11:09
(16) Хы... тогда понятно :) (17)Ага.
Я просто понять не мог как он команды считает это ж отдельное процессорное время тратить нужно. А если все косвенно считать... то ясно.
20 Остап Сулейманович
 
23.06.15
11:12
+ (18) Видимо средняя длина команды отличается для разных типов приложений. Потому и бенчмарки существуют всякие и оценивают быстродействие в конкретных типах приложений.
21 Гёдза
 
23.06.15
11:19
22 Гёдза
 
23.06.15
11:20
Винда так устроена, что обычные оконные приложения могут работать только когда к ним приходят какие-то сообщения (обрабатывать их), а когда обрабатывать уже нечего, оставшееся время Винда крутит пустой цикл. Вот длительность работы этого пустого цикла по отношению ко всему времени работы процессора и есть его незагруженность. Естественно, если какое-то приложение запустит поток, который постоянно будет что-то считать (например, архиватор сжимать какие-то данные), то свободного времени (на однопроцессорной машине) уже не остается.
23 Lama12
 
23.06.15
11:22
(22) спс
24 Провинциальный 1сник
 
23.06.15
11:29
(22) "а когда обрабатывать уже нечего, оставшееся время Винда крутит пустой цикл"
Немного не так. Холостых циклов нет, есть останов в ожидании прерывания от таймера (ну или от устройства). Именно поэтому винда в простое греет процессор намного меньше, чем обычный пустой цикл.
25 Гёдза
 
23.06.15
11:29
(24) Это в приближении. Более подробно как работает процесс idle можно найти в инете