Vengono divisi in 3 categorie:
- Human redable: usati per comunicare con l’utente
- Machine redable: usati per comunicare con la macchina
- Machine: usati per comunicazione tra macchine
Tutte le funzioni di I/O, hanno bisogno di un sincronizzatore,
coordinare il flusso di traffico tra le risorse interne ed esterne.
Moduli I/O
Il processore comunica con i moduli dei dispositivi, attraverso il bus per:
- Comandi: nel caso di un disco per operazioni di READ, WRITE, SEEK, etc…
- Dati: scambio di dati tra processore e modulo
- Stato: per sapere se il dispositivo è libero o occupato (sta facendo un’operazione)
- Identificazione indirizzo: come per le memorie, ogni dispositivo I/O ha un’indirizzo assegnato
Legge di Amdahl
Tempo di speedup ⇒ potenziale velocità ottenibile da un programma parallelo (da 1 a N core)
Lo speedup è il tempo utilizzato dal programma / tempo “libero” che può essere parallelizzato