prof. Nunzio Brugaletta |
atapSO |
EnneBi –
Computer Science
Avanti – Indietro – Inizio
I dispositivi di I/O collegati ad un elaboratore si possono dividere genericamente in due categorie, anche se il confine fra le due categorie non è sempre netto e non tutti i dispositivi possono essere rigidamente classificati in una o nell'altra categoria:
Dispositivi orientati al blocco. Dispositivi ad accesso random. Si tratta di dispositivi che trattano le informazioni organizzate in blocchi di lunghezza fissa. Caratteristica essenziale di questi dispositivi è la possibilità di leggere o scrivere ciascun blocco in maniera indipendente dagli altri. Per esempio un disco appartiene a questa categoria: in maniera indipendente da dove si trova la testina di lettura/scrittura, l'hardware è in condizione di spostarla in una nuova posizione ed aspettare che il blocco richiesto passi sotto la testina.
Dispositivi orientati al carattere. Dispositivi ad accesso sequenziale. Un dispositivo di questo tipo accetta e spedisce sequenze di caratteri senza tenere conto di alcuna struttura di blocco. Tipicamente un terminale appartiene a questa categoria, ma anche una scheda di rete, il mouse, la stampante.
Il modello dei dispositivi trattato permette al
sistema operativo di procedere ad una astrazione che rende il gestore
dell'input/output indipendente dal dispositivo. I dettagli del
funzionamento del singolo dispositivo sono demandati ad un software
di più basso livello: il driver del dispositivo
Dal punto di vista fisico le unità di I/O sono costituite da parti meccaniche ed elettroniche. La parte meccanica è il dispositivo stesso. La parte elettronica è costituita da un controllore che, spesso, assume la forma di una scheda con circuiti integrati collegata al bus di sistema. Il controller presenta un connettore dove si inserisce il cavo del dispositivo.
Nei grossi calcolatori si usano spesso bus multipli e processori specializzati, chiamati canali di input/output, per sgravare il processore centrale delle operazioni di trasferimento dati.
Alcuni controllori dei dispositivi orientati ai blocchi sono in grado di utilizzare il DMA (Direct Memory Access). In pratica la CPU fornisce al controllore il blocco da leggere e l'indirizzo di memoria a partire dal quale scrivere il blocco, il controllore legge il blocco, lo deposita in un suo buffer interno, controlla che tutto sia andato bene durante il trasferimento e che non ci siano stati errori, copia i dati dal buffer alla zona indicata della memoria e, alla fine, manda un segnale di interruzione. In questo modo il sistema si trova già a disposizione i dati senza essersi occupato in maniera diretta dell'incombenza delle operazioni da effettuare.
http://ennebi.solira.org |
ennebi@solira.org |