Related


Gestione dell’ Input Output

L’I/O è il processo mediante il quale un sistema informatico interagisce con l’esterno, scambiando dati con dispositivi come tastiere, schermi, dischi e così via.

Esistono tre modi principali in cui un sistema informatico può gestire l’I/O:

I/O Programmato

  • Metodo più semplice e primitivo di gestione dell’I/O.
  • L’azione di lettura o scrittura viene effettuata da un modulo dedicato (non il processore).
  • Non essendoci, interruzioni il processore deve attendere (inutilizzato) che l’operazione di I/O sia completata prima di poter proseguire con le istruzioni successive (Busy Waiting).

Questo approccio è lento e inefficiente, poiché il processore è bloccato durante l’attesa dell’operazione di I/O.

I/O da Interruzioni

  • Metodo più moderno per la gestione dell’I/O.
  • In questo approccio, quando un dispositivo di I/O è pronto per lo scambio di dati, invia un segnale di interruzione al processore.
  • Il processore interrompe l’esecuzione delle istruzioni e salva lo stato attuale, esegue un’apposita routine di gestione dell’interruzione, chiamata gestore di interruzione.
  • Quando l’operazione di I/O è completata completata, il processore riprende l’esecuzione delle istruzioni.

Questo approccio è più efficiente dell’I/O programmato, poiché il processore non è bloccato durante l’attesa dell’operazione di I/O.

Related: Interruzioni 101

I/O con accesso diretto in memoria (DMA)

  • Metodo Più efficiente per la gestione dell’I/O.
  • In questo approccio, un controller di I/O speciale, chiamato controller DMA, gestisce l’operazione di I/O senza l’intervento del processore.
  • Il controller DMA legge o scrive dati direttamente nella memoria del sistema, senza dover passare attraverso il processore.
  • Il processore viene interrotto soltanto al termine del trasferimento.

Questo approccio è molto più veloce dell’I/O programmato e dell’I/O da interruzioni, poiché il processore non è coinvolto nell’operazione di I/O.