LINUX
Gestione delle periferiche
Le periferiche sono i dispositivi che permettono le operazione di Input/Output.Esse si possono classificare in vari modi.
In base alle operazioni consentite si hanno: 1) periferiche che permettono solo la letture (input). 2) periferiche che permettono solo la scrittura (output). 3) periferiche di I/O.
In base alla funzione: 1) comunicazione con gli utenti (tastiera, schermo, stampante). 2) comunicazione con apparati elettronici (sensori e attuatori). 3) comunicazione con dispositivi remoti (modem, schede di rete). 4) unita' di memorizzazione (dischi, nastri).
In base all'accesso:
1) ad accesso sequenziale (il tempo di accesso varia molto).
2) ad accesso semi-casuale o diretto (il tempo di accesso varia di poco).
Ogni periferica ha bisogno di un controller, costituito da una serie di circuiti, che controlla il corretto funzionamento della periferica. Ogni periferica, inoltre, ha bisogno di un programma specifico di gestione detto driver della periferica. Una delle caratteristiche peculiari di Linux rispetto ad altri kernel Unix e' quella di essere modulare; Linux cioe' puo' essere esteso inserendo a sistema attivo degli ulteriori "pezzi", i moduli, che permettono di ampliare le capacita' del sistema (ad esempio fargli riconoscere una nuova periferica). Questi possono poi essere tolti dal sistema in maniera automatica quando non sono piu' necessari. I driver di solito sono realizzati come moduli.
Operazioni I/O In Linux le operazioni di I/O vengono effettuate come istruzioni privilegiate tramite chiamate di sistema (system call). Un processo normalmente lavora in modalita' utente (user mode); quando deve eseguire una operazione di I/O, esegue una system call: viene generata una interruzione e il processo passa in modalita' kernel (kernel mode). In questo modo, durante l'esecuzione dell'operazione di I/O, il processo accede sia allo spazio di memoria del kernel che a quello dell'programma utente, cosa fondamentale per trasferire i dati. Al termine dell'operazione di I/O il processo ritorna in user mode.