Lors de l'exécution d'un programme celui-ci effectue une quantité considérable d'instructions.
Si le programme principal doit interagir avec des évènements extérieurs, il le fait par exemple, grâce à des capteurs externes qui en fonction des informations recueillies sont transmises aux processeurs via ses broches d'entrées et sont ensuite traitées par le programme principal.
Pour que les informations de ces capteurs puissent interagir en temps réel avec le programme principal, il faut scruter en permanence les entrées du processeur pour saisir les moindres modifications envoyées par les capteurs.
Plus le nombre de capteurs ou d'éléments externes (clavier, interrupteur, bouton poussoir,...) est important, et plus la scrutation de ces éléments ralentit l'exécution du programme principal.
Dans une application ou la vitesse de traitement est importante cela est un handicap.
Il se peut même que dans certain cas la scrutation permanente des informations des capteurs soit inutile, par exemple dans le cas d'un capteur mesurant l'intensité de la lumière du jour, il est inutile de vérifier l'information de ce capteur en permanence, cela ne fait que ralentir l'exécution du programme principal.