On distingue principalement trois façons de gérer les entrées/sorties.
Pendant l'exécution de son programme principal, le microprocesseur va périodiquement lire l'état des périphériques d'entrée et modifie, si nécessaire, l'état des ports de sortie. C'est la technique la plus simple. Exemple : système de régulation de chauffage d'un bâtiment.
Cette technique est utilisée lorsque le processeur doit réagir rapidement à un changement d'état d'un port d'entrée. Le périphérique prévient le processeur par une ligne d'interruption prévue à cet effet. Le processeur interrompt la tâche en cours, saute dans le sous-programme destiné à gérer la demande spécifique qui lui est adressée ; à la fin du sous-programme, le processeur reprend l'exécution du programme principal là où il l'avait laissée.
Cette technique, connue souvent par ses initiales DMA (Direct Memory Access), est utilisée lorsque l'on doit procéder à un transfert rapide d'un grand nombre de données entre, par exemple, un lecteur de CD et un disque dur. Plutôt que de transférer les octets d'abord vers un registre du processeur, puis seulement vers le disque dur, les octets sont transférés directement d'un périphérique à l'autre sans passer par les registres du processeur. Le transfert des données est organisé par un circuit spécial appelé contrôleur d'interruptions, qui prend la place du processeur pendant le transfert et gère les bus d'adresses et de contrôle.
Un grand nombre de périphériques sont à la fois des périphériques d'entrée et de sortie. Le modem, par exemple, permet d'envoyer ou de recevoir des informations en provenance du monde extérieur : courrier électronique, navigation Internet, mais aussi envoi et réception de fax, téléphonie par ordinateur (VoIP, Voice over IP).
Les cartes réseau permettent de relier entre eux plusieurs ordinateurs afin de réaliser un réseau local d'ordinateurs, ce qui permet de partager des fichiers ou des ressources telles une imprimante réseau, un numériseur…
Et puis, il y a toute la gamme des mémoires de masse : disque dur, lecteur de disquette, carte mémoire.
Les performances d'un ordinateur mesurent le temps qui lui est nécessaire pour effectuer un traitement donné. Trois éléments influencent ces performances :
Le temps nécessaire pour un traitement informatique quel qu'il soit est toujours déterminé par un de ces trois éléments mais celui des entrées/sorties est généralement prépondérant. En effet, le temps consacré aux opérations I/O se compte en millisecondes alors que celui consacré aux instructions effectuées par le processeur se compte en nanosecondes.
La taille de la mémoire est surtout importante dans la mesure où elle permet de réduire le nombre d'opérations d'entrées/sorties, soit parce qu'une part plus importante des programmes applicatifs peut résider en mémoire, réduisant ainsi les phénomènes de pagination, soit parce que une partie de cette mémoire peut-être utilisée comme tampon (mémoire cache) pour le stockage des flux de données des opérations I/O.
En programmation comme au niveau système (par exemple sur les mainframes), deux éléments matériels (entre autres) influencent les performances des entrées/sorties, c'est-à-dire leur vitesse :
Si les ressources CPU ou I/O sont insuffisantes lors de l'exécution d'un ou plusieurs traitements simultanés, on parle de saturation.