Gestione Input Output
A. Ferrari
Connessioni
Il computer dispone di connessioni hardware per i
dispositivi di input/output
tastiera
mouse
monitor
stampante
Connessioni HW
Gestione dispositivi
Ogni Sistema Operativo dispone di uno strumento
software per la gestione dei dispositivi.
Per ogni dispositivo esiste un driver (device driver) che
permette al sistema operativo di gestire il dispositivo
stesso.
I driver devono essere installati manualmente o
automaticamente nel sistema
Il driver integra il codice del Sistema Operativo con una
serie di funzioni che permettono di operare con il
dispositivo
Gestione dei dispositivi
Esempio
USB
L’interfaccia più utilizzata è USB (Universal Serial
Bus)
È stato progettato per consentire a più periferiche di
essere connesse usando una sola interfaccia
standardizzata e un solo tipo di connettore e per
migliorare la funzionalità plug-and-play consentendo
di collegare o scollegare i dispositivi senza dover
riavviare il computer (hot swap).
USB (versioni)
Lo standard 1.0 dell'USB (1996) supporta
collegamenti a 1,5 Mbit/s.
La versione 1.1 (1998) aggiunge la modalità full speed,
che innalza la velocità a 12 Mbit/s.
La versione 2.0 (2000) ha una velocità teorica di
trasferimento a 480 Mbit/s.
La versione 3.0 (2008) raggiunge la velocità di 4,8
Gbit/s.
Controller USB
Il controllore USB si interfaccia al processore e alla
memoria centrale.
Le istruzioni eseguite dalla CPU per gestire il
controller USB possono utilizzare
o uno spazio di indirizzi speciali per I/O e specifiche
istruzioni di lettura/scrittura
o una parte di indirizzi di memoria centrale e le normali
istruzioni di lettura/scrittura (memory mapped I/O)
Registri
I dispositivi espongono una serie di registri (locazioni
di memoria)
I registri permettono di controllare le funzionalità del
dispositivo
e di ricevere in formazioni dal dispositivo
Esempio
Nella simulazione una
testiera espone i registri
KEY che contiene l’ultimo
carattere premuto
STATUS che contiene 1 se è
stato premuto un tasto
dopo la lettura da KEY 0
altrimenti
Gestione dispositivi
Nell’esempio la gestione è
inefficiente a causa del
polling (interrogazione
ciclica)
Normalmente i dispositivi di
I/O utilizzano la tecnica
delle interruzioni
(interrupt)
Si tratta di busy-wait (attesa
attiva)
Quando è pronto un nuovo
dato il dispositivo
interrompe il processo in
esecuzione
ISR (Interrupt Service
Routine) è il tipo di
funzione attivata
dall’interuzione
Efficienza
I dispositivi interrupt-driven sono molto più efficienti
di quelli basati sul polling
DMA (Direct Memory Access) è un componente
Hardware che trasferisce automaticamente i dati dal
dispositivo alla memoria e viceversa senza
interrompere la CPU se non per comunicare il
termine dell’operazione
DMA
Gestione di una
operazione di I/O
Bufferizzazione
La CPU e i dispositivi di I/O operano a velocità
sensibilmente differenti
Per evitare attese e rendere il più possibili asincrone le
esecuzioni dei processi si utilizza la tecnica della
bufferizzazione
Ad esempio se la CPU, che lavora ad alta velocità, deve
spedire alcuni dati alla stampante, che opera a una
velocità molto minore, scriverà tali dati nel buffer di
memoria, potendo così continuare a lavorare ad un altro
processo mentre la stampante può stampare il dato
leggendolo dal buffer e non interrompendo la CPU
Buffer
Plug & play
Sia Windows che Linux supportano la tecnologia plug
& play (collega e usa)
possibilità di connettere un nuovo dispositivo senza
installare i driver
Il Sistema Operativo “riconosce” la categoria del
dispositivo e “ricerca” il driver fra quelli
precedentemente installati o cerca di scaricarlo dalla
rete
Scarica

ppt - Alberto Ferrari