Приводит ли увеличение количества ядер к увеличению количества прерываний, которые могут обрабатываться этим процессором?
2 ответа
Простой ответ - да. Любое ядро может обрабатывать прерывания, и если ОС умна и поддерживается приличным контроллером прерываний, два ядра позволят вам обрабатывать в два раза больше прерываний, чем одно ядро. В зависимости от системы и типа нагрузки может иметь смысл иметь одно ядро для обработки всех прерываний или распределять их по всем ядрам.
Предупреждение: это будет справедливо для многоядерных систем, таких как Intel x86, где каждое ядро имеет свою собственную APIC. Могут быть многоядерные системы, в которых прерывания обрабатываются по-разному (например, выделенное ядро обрабатывает все прерывания), где разность мощностей может отсутствовать. Однако улучшенная обработка прерываний AFAIK является основной причиной того, что серверные системы были разработаны для использования серверных процессоров до того, как они стали распространенными на настольных компьютерах, поскольку ввод / вывод является наиболее важной вещью для многих нагрузок серверного типа (хотя и не для всех).
В качестве комментария к davr - знание того, как система обрабатывает прерывания, может быть очень важным при принятии решения о покупке оборудования, особенно для систем высокого класса, которые, как ожидается, будут обрабатывать высокие скорости транзакций ввода / вывода.
С аппаратной точки зрения, поскольку два процессора могут даже совместно использовать аппаратные компоненты, такие как ОЗУ, я предполагаю, что между ними потребуется больше синхронизации, поэтому будет происходить больше прерываний, чем в монопроцессорной системе. Таким образом, аппаратный ответ будет: НЕТ.
С программной точки зрения, после того, как прерывание вошло в операционную систему (которые теперь все являются многопоточными), оно должно быть в состоянии передать свою обработку потоку, работающему на другом CPU, а затем обработать новые входящие прерывания. Таким образом, ответ программного обеспечения будет: ДА.