I dispositivi di I/O sono l’interfaccia del calcolatore verso il mondo esterno.
Esiste una incredibile varietà di dispositivi di I/O.
I vari dispositivi interagiscono con le altre componenti del sistema attraverso un bus.
Ogni dispositivo è governato da un controllore (controller) che rappresenta l’interfaccia del dispositivo con il sistema.
Ogni controller ha:
Le operazioni di I/O avvengono dal dispositivo verso i buffer locali e viceversa.
La CPU sposta i dati tra la memoria e il buffer.
3 registri di controllo
2 buffer:
L’insieme delle regole per il coordinamento tra CPU e controller e’ chiamato negoziazione (handshaking).
La CPU interroga il registro status fino a che status==0
La CPU definisce il registro command = write e trasferisce i dati dalla memoria al buffer di output
La CPU pone il registro control=1
Il controller pone status=1
Il controller esamina il registro command e trasferisce i dati dal buffer al dispositivo
Il controller pone command=0 e status=0
↓
ATTESA ATTIVA nel passo 1
Interrogare occasionalmente un dispositivo è in sé un’operazione poco costosa
tale tecnica diviene però inefficiente se le ripetute interrogazioni trovano raramente un dispositivo pronto per il servizio mentre altre utili elaborazioni attendono la CPU.
I controllori dei dispositivi, gli errori e le chiamate di sistema generano segnali d’interruzione per comunicare alla CPU un evento asincrono.
Le interruzioni vengono generate dai dispositivi e recapitate alla CPU attraverso la linea delle richieste delle interruzioni.
Dipendono dall’architettura e possono avere nomi differenti.
Esempio: architettura IA32 (Intel Pentium)
La dimensione di buffer dei controllori è di pochi byte.
↓
Quando devono essere trasferiti molti dati
vengono generate molte interruzioni alla CPU
↓
La gestione dell’I/O da e per la memoria è di solito delegato ad una unita’ separata dalla CPU chiamata
Controllore dell’Accesso Diretto alla Memoria (DMA controller)
↓
Il controllore DMA agisce direttamente sul bus della memoria, esegue il trasferimento senza l’aiuto della CPU e genera una sola interruzione
Problemi:
Soluzione:
Problema: differenze tra i vari controllori di dispositivo:
Il software che governa i dispositivi e rende uniforme l’accesso e’ detto driver del dispositivo;
I driver hanno il compito di isolare il sottosistema di I/O del nucleo dai controllori dei dispositivi.
Poiché ogni sistema operativo ha le sue convenzioni, ogni dispositivo necessita di un driver differente per ogni sistema operativo. Tale driver è in genere scritto dal produttore del dispositivo.
2 categorie di driver dei dispositivi
Funzioni principali dei driver
I driver dei dispositivi esportano le funzionalita’ dei dispositivi di I/O verso il sistema operativo.
I driver sono strettamente legati al dispositivo, ma ogni s.o. utilizza un disco sempre allo stesso modo (ad es. differenti metodi di memorizzazione di un file).
Problema: portabilita’ delle applicazioni su calcolatori con dispositivi di I/O differenti:
Es: l’accesso ad un file dovrebbe essere sempre lo stesso indipendentemente dal tipo di disco su cui e’ memorizzato
↓
Necessità di un livello software che renda
standard l’accesso ai dispositivi
Interfacciamento uniforme:
Bufferizzazione:
Gestire e riportare errori:
Allocare e rilasciare risorse:
Librerie utente per l’I/O:
software per la gestione dei file speciali associati ai dispositivi:
2. Lo stallo dei processi – parte prima
3. Lo stallo dei processi – parte seconda
4. Lo stallo dei processi – parte terza
6. Il S.O. Linux – parte prima
7. Il S.O. Linux – parte seconda
8. Il S.O. Windows – parte prima
9. Il S.O. Windows – parte seconda
10. Il S.O. Windows – parte terza
11. I S.O. multimediali – parte prima
12. I S.O. multimediali – parte seconda
13. I S.O. multimediali – parte terza
14. I Sistemi Operativi distribuiti - parte prima
15. I Sistemi Operativi distribuiti - parte seconda
16. I Sistemi Operativi distribuiti - parte terza
17. I Sistemi Operativi distribuiti - parte quarta
18. I Sistemi Operativi distribuiti - parte quinta
19. I Sistemi Operativi distribuiti - parte sesta
Silberschatz , Galvin, Gagne – Sistemi Operativi 8a ed. Capitolo 13
Tanenbaum – Moderni sistemi operativi 3a ed. Capitoli 1 e 5
Deitel, Deitel, Choffnes - Sistemi operativi 3a ed. Capitolo 1
2. Lo stallo dei processi – parte prima
3. Lo stallo dei processi – parte seconda
4. Lo stallo dei processi – parte terza
6. Il S.O. Linux – parte prima
7. Il S.O. Linux – parte seconda
8. Il S.O. Windows – parte prima
9. Il S.O. Windows – parte seconda
10. Il S.O. Windows – parte terza
11. I S.O. multimediali – parte prima
12. I S.O. multimediali – parte seconda
13. I S.O. multimediali – parte terza
14. I Sistemi Operativi distribuiti - parte prima
17. I Sistemi Operativi distribuiti - parte quarta
18. I Sistemi Operativi distribuiti - parte quinta
19. I Sistemi Operativi distribuiti - parte sesta
I podcast del corso sono disponibili anche su iTunesU e tramite Feed RSS.