Что такое переназначение прерываний (RES)? Чем это вызвано? Как это обрабатывается в ядре Linux?
в чем разница между "RES: Rescheduling interrupts" и "LOC: Local timer interrupts"? Что отвечает за срабатывание прерывания RES? Является ли LOC таким же, как общее прерывание таймера, которое генерируется таймером h/w в процессоре?
кроме того, Пожалуйста, дайте некоторую ясность о том, какая часть планировщика вызывается во время прерывания таймера и прерывания RES? Как это происходит в ядре Linux?
спасибо заранее.
1 ответов
перенос прерываний - это способ ядра Linux разбудить простаивающее ядро процессора, чтобы запланировать поток на нем. В системах SMP это часто делается планировщиком, чтобы распределить нагрузку по нескольким ядрам процессора.
планировщик пытается распространить активность процессора на как можно больше ядер. Общее эмпирическое правило заключается в том, что предпочтительнее иметь как можно больше процессов, работающих на всех ядрах с меньшей мощностью (более низкие тактовые частоты) вместо того, чтобы одно ядро действительно было занято на полной скорости, пока другие ядра спят.
переназначение прерываний реализуется с помощью Межпроцессорные прерывания (IPI). Для более подробной проверки это статью Перенос Прерываний на Linux.
локальный таймер прерывает поднимаются APIC для определенного CPU-core. Только то, что CPU-core получает прерывания и обрабатывает их. Для краткого описания его различных преимуществ, оформить заказ это ответ.