Depende.
A menudo, un detector de eventos se registra con el objeto que genera el evento. Cuando ocurre el evento, el objeto itera a través de todos los oyentes registrados con él informándoles del evento. Eche un vistazo al modelo de evento AWT/Swing en Java, por ejemplo.
flujo del sistema operativo sabe exactamente cuando se pone un USB
en un nivel bajo sospecho que eso es un interupt de hardware (que alguien me corrija si me equivoco) que es manejado por el núcleo/USB conductor. A menudo hay sistemas de nivel superior (por ejemplo, DBUS) que escuchan esto y tienen oyentes de eventos que los escuchan.
o cómo MSN sabe exactamente cuándo recibe un correo electrónico.
Sospecho que es un caso simple de sondear el buzón (por ejemplo, sobre POP3) cada x segundos y verificar el conteo de mensajes (aunque podría ser incorrecto).
Anon. explica bastante bien la diferencia entre las interrupciones de hardware y el evento de nivel de software.
+1 Para explicar con claridad la diferencia entre las interrupciones en el nivel de hardware y las escuchas de eventos a nivel de software. – Pete