Как распределяются задачи между многоядерными процессорами?

Как распределяются задачи между многоядерными процессорами?

У меня процессор AMD Octo core. Когда я смотрю на приложение CPU meter, я замечаю, что, хотя все ядра могут иметь активность, похоже, что у пары из них активность выше и более постоянна.

Как распределяется "рабочая нагрузка" по ядрам? Почему кажется, что некоторые ядра нагружаются сильнее остальных?

Характеристики: Материнская плата ASUS ROG Crosshair V Formula-Z Windows 7 Pro Процессор AMD FX-8320 16 ГБ оперативной памяти

решение1

Программы, как правило, используют одно ядро. Ну, если только программа не предназначена для использования методов проектирования программного обеспечения, таких как многопоточное распараллеливание. Поскольку некоторые программы используют такой метод, некоторые программы могут перекладывать часть (но не всю) своей нагрузки на другое ядро ​​ЦП.

Конечно, современные операционные системы достаточно продвинуты, чтобы выполнять несколько программ одновременно. Или, точнее, несколько частей программ, которые разработаны для идентификации различных потоков, чтобы компьютер (операционная система, ЦП, что угодно) мог помещать различные части программы на различные ЦП.

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

Что я знаю, так это то, что имеет смысл, что вы можете видеть, как некоторые программы используют несколько ядер ЦП, в то время как другие программы могут этого не делать (вообще или, по крайней мере, не так часто). Так что вы, скорее всего, не воображаете. То, что вы думаете, что замечаете, вероятно, именно то, что происходит на самом деле.

Связанный контент