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