I/O bound
# I/O bound

In informatica, I/O bound si riferisce alla condizione in cui il tempo necessario a compiere un'elaborazione è determinato principalmente dall'attesa delle operazioni di input/output. Ciò si contrappone ai processi CPU bound. Questa circostanza si verifica quando i dati vengono richiesti ad una velocità minore di quella a cui sono "consumati", o, in altre parole, si spende più tempo a richiedere i dati che ad elaborarli.

## I/O bound: un problema nell'informatica

La condizione di I/O bound è stata considerata come un problema nell'informatica sin dalla sua nascita. L'architettura di Von Neumann, che è adottata da diversi tipi di elaboratori, prevede l'esistenza di su un processore centrale logicamente separato che richiede i dati dalla memoria principale, li elabora e infine scrive i risultati in memoria. Siccome i dati devono essere spostati tra la CPU e la memoria attraverso un bus che ha una velocità limitata, esiste una situazione nota come il collo di bottiglia di Von Neumann. In parola semplici, la larghezza di banda tra la CPU e la memoria tende a limitare la velocità complessiva dell'elaborazione. In termini tecnologici, il collo di bottiglia di Von Neumann prevede che sia più semplice far sì che la CPU lavori più velocemente piuttosto che rifornirlo di dati alla velocità sufficiente.

Recentemente, il collo di bottiglia di Von Neumann è diventato più evidente. La filosofia progettuale dei computer moderni è basata su una CPU e su una memoria principale fisicamente separate. È possibile far funzionare la CPU con velocità di trasferimento elevate poiché i dati si spostano all'interno della CPU. Tuttavia, la separazione fisica tra la CPU e la memoria principale richiede un bus per spostare i dati di distanze relativamente lunghe (centimetri, o più). Il problema di rendere questa parte del sistema sufficientemente veloce è considerata una sfida per i progettisti.

## I/O bound: un problema pratico

La condizione di I/O bound è indesiderata poiché costringe la CPU a sospendere la propria elaborazione mentre aspetta il caricamento o lo scaricamento dei dati dalla memoria principale o dalle periferiche di memorizzazione. La maggiore velocità è l'obiettivo primario per i nuovi progetti di computer, ed essendo CPU e memoria dei componenti costosi, è vitale evitare le condizioni di I/O bound; la loro eliminazione può portare ad un miglioramento in termini di rendimento economico maggiore di quello ottenuto aggiornando la CPU o la memoria.

