Isso é feito por meio dos registros de "alarme" no RTC (relógio em tempo real) . No PC-AT original, esse chip era um MC146818 da Motorola.
Antes de adormecer (ACPI S3), o kernel programará o próximo horário de ativação para os registros de "alarme" no RTC, que está sempre ligado. Quando esse tempo de ativação chegar, o RTC acionará o chipset para ligar o sistema e retomar a partir do S3. (Observe que, na maioria dos sistemas modernos, o RTC é, na verdade, parte da ponte sul em si, portanto, a sinalização de ativação ocorre internamente).
Depois que o sistema sair do modo de suspensão, o kernel avaliará sua lista de eventos de ativação pendentes, despachando os que chegaram.
Este documento da Intel descreve a interface (para sistemas x86):
A programação desses registradores é feita no kernel do Linux em cmos_set_alarm
.