Gestione delle Periferiche (Input/Output) Flashcards
(10 cards)
Ruolo del SO nella Gestione Periferiche
Il SO è responsabile della gestione delle operazioni di Input/Output (I/O) e delle interruzioni (interrupt) ad esse correlate. L’architettura di questa parte del SO è a livelli.
Classificazione dei Dispositivi Periferici
Il SO distingue i dispositivi in base all’unità minima di dati trasferibile: dispositivi a carattere e dispositivi a blocchi.
Esempi: dispositivi a carattere (tastiera, mouse) e dispositivi a blocchi (dischi).
Controller
Un componente hardware che funge da intermediario tra il mondo hardware delle periferiche e il software del SO. Ha una propria memoria/registri dedicati.
Meccanismi di Segnalazione del Controller
I meccanismi includono Polling, Interrupt e DMA.
- Polling: Il driver controlla periodicamente un bit di stato nella memoria del controller per verificare la prontezza (poco efficiente)
- Interrupt : La periferica stessa invia un interrupt al SO a fine operazione (più efficiente)
- DMA: Un componente hardware che può trasferire dati direttamente dalla memoria della periferica alla memoria centrale senza coinvolgere il processore, aumentando l’efficienza.
Il Driver
Un componente software specifico per una data periferica, integrato nel SO e operante in modo Kernel. Maschera le specificità hardware della periferica.
Software Indipendente dal Dispositivo
Un livello del SO che si interfaccia con i driver e con il livello utente. Gestisce aspetti comuni a tutte le periferiche.
Gestione delle Code (Periferiche)
Il SO gestisce code di attesa per le richieste I/O per ciascuna periferica, permettendo di processare la prossima richiesta in coda.
Buffering
Tecnica usata per gestire il trasferimento dati tra la memoria del controller e la memoria dell’applicazione.
- **Buffering Singolo **: I dati vengono trasferiti prima in un’area di memoria del SO e poi all’applicazione, consentendo un certo grado di parallelismo tra periferica e CPU.
- Buffering Doppio/Circolare: Utilizza due o più buffer per ridurre ulteriormente i tempi di attesa e migliorare il parallelismo.
I/O Utente (Librerie e Servizi)
Il livello più alto nella gestione I/O, che fornisce librerie che chiamano le System Call. Include servizi come lo SPOOL.
Interazione del SO con l’Utente
Avviene tramite linea di comando o interfaccia grafica. Le azioni utente possono innescare callback del SO per la gestione degli eventi.