Ответ, к сожалению, зависит от ОС.На большинстве, если не на всех, сигналы ОС являются объектами, управляемыми событиями.Например, в случае аппаратного прерывания аппаратное обеспечение отправляет сигнал обработчику прерываний, который затем выполняет свою работу, обычно при переключении контекста (как вы предложили).
Это зависит от ОСточно, но в случае сигнала, посылаемого конкретной программой, это обычно происходит, когда вы переключаете контекст для выполнения процесса.Затем сигналы проверяются.В случае kill
команда kill «привязана» к процессу, и обработчик прерываний ОС позаботится об этом.
Операционные системы имеют обработчики прерываний, которые имеют дело с такого рода вещами.Они периодически проверяют, но это действительно зависит от ОС.В конкретном случае kill PID
(я использую этот пример, потому что вы использовали его в вышеприведенном комментарии), он проверит следующий раз, когда PID запланирован для продолжения выполнения.
Короткий, но неудовлетворительный ответ: это зависит отсигнал и на ОС.
Надеюсь, это поможет!NS
Источники: я программировал операционные системы раньше, и я взял несколько классов параллелизма.