Le unità periferiche interagiscono con il calcolatore, e cioè con il processore e la memoria centrale, attraverso interfacce di ingresso/uscita collegate al bus di sistema.
La struttura delle interfacce I/O è costituita da alcuni registri leggibili/scrivibili da parte del processore, ma comunicanti anche con il mondo esterno tramite circuiti ausiliari.
Considerando uno schema molto semplificato, un'interfaccia è costituita dai seguenti registri:
ready
relativo alla possibilità, per il processore, di svolgere un'operazione di lettura o scrittura di un dato.La CPU può accedere ai registri delle periferiche con due tecniche:
Si può gestire I/O tramite il controllo di un programma, cioè sincronizzazione e trasferimento vengono eseguiti dal programma di gestione della periferica (device driver).
Il meccanismo di interruzione si basa su un'insieme di eventi rilevati a livello hardware dal processore, e un insieme di funzioni, ognuna associata in generale ad un evento. Ogni funzione è detta gestore dell'interrupt o routine di interrupt.
Quanto il processore rileva un evento, interrompe il programma in esecuzione, salta automaticamente ad eseguire la routine di interrupt, e al termine dell'esecuzione della routine torna ad eseguire il programma che era stato interrotto.
Il meccanismo di interruzione è simile a quello di invocazione di una funzione, con la differenza che le routine di interrupt sono causate da eventi rilevati dal processore e asincroni rispetto all'esecuzione del programma che viene interrotto.
Siccome viene salvato l'indirizzo di ritorno è possibile gestire interruzioni annidate.
Il meccanismo di DMA prevede che il driver della periferica trasferisca in modo autonomo, cioè senza intervento del processore, un certo numero di dati in memoria centrale, o dalla memoria centrale.
Il DMA controller effettua il trasferimento dati a blocchi tra periferiche e memoria autonomamente, cioè senza l'intervento da parte del processore. È quindi in grado di generare i segnali per accedere a memoria.
Consideriamo ad esempio le interfacce dei dispositivi di memorizzazione non volatile, detti volumi (SSD o HDD), loro utilizzano DMA per il trasferimento fisico dei dati.
La tecnica di DMA prevede le seguenti fasi:
Ai fini della realizzazione del SO, le periferiche gestite in DMA richiedono che il SO gestisca opportunamente delle aree di memoria (dette buffer) per il trasferimento dati in modalità DNA da/per periferiche.