Guida I sistemi di I/O (S.O.)

Stato
Discussione chiusa ad ulteriori risposte.

syscall

Utente Emerald
21 Settembre 2013
683
43
581
475
Ultima modifica da un moderatore:
Oggi introdurremmo in maniera brevissima e concisa i sistemi di Input/Output, dando delle definizioni ed alcune informazioni e concetti legati all'argomento, per poi successivamente parlare di gestione delle periferiche, consiglio comunque di andarsi a leggere il resto degli argomenti che comunque lascero' in fondo sulle note e di approfondire i concetti piu' ostici da capire.

Beh, senza troppi giri diciamo subito che come penso tutti sappiano, i computer funzionano comunicando fra di loro per mezzo di cavi o attraverso l'etere. Il punto di connessione con cui un dispositivo comunica con esso e' detto "porta", e solitamente e' composto da quattro registri:

1) Status
Registro che indica lo stato della porta;

2) Control
Si usa per attivare un comando o per cambiare il modo di funzionamento del dispositivo;

3) Data in
E' il registro in cui la CPU legge per ricevere i dati dalla periferica;

4) Data out
E' il registro in cui la CPU scrive ed emette dati per la periferica.

La connessione di piu' dispositivi mediante un insieme comune di cavi e' detta BUS. Un CONTROLLER e' composto da un insieme di dispositivi elettronici in grado di controllare una porta, un bus o un dispositivo. La CPU comunica con il controller usando speciali istruzioni di I/O dirette verso una determinata porta. Inoltre, per sapere se una periferica deve comunicarle qualcosa puo':

1. Attendere attivamente (Polling), andando ad effettuare una scansione di tutte le periferiche al fine di verificare se "qualcosa" ha fatto qualche richiesta

2. Utilizzare il metodo delle interruzioni (Interrupt), andando a verificare, dopo ogni istruzione, la linea di controllo delle istruzioni e, se trova una richiesta, trasferisce il controllo al gestore delle istruzioni che portera' a termine la richiesta.

CPU e CONTROLLER devono:

- Poter rimandare la gestione delle istruzioni durante le elaborazioni critiche;
- Avere un efficiente meccanismo per recapitare le interruzioni al corretto gestore, e per far cio' si usa un vettore delle interruzioni contenente gli indirizzi di memoria dei gestori delle istruzioni;
- Poter distinguere le diverse priorita' delle interruzioni.

I dispositivi di I/O possono differire tra loro sotto diversi aspetti: trasferimento a flusso di caratteri, accesso sequenzale, condivisi o riservati o di lettura e scrittura.

Per tale ragione, il sistema operativo, deve fornire per ognuno di questi aspetti un insieme di funzioni dette interfacce, incapsulate in moduli realizzati a livello kernel, che non sono altro che i driver!

Si distinguono due tipi di I/O:

I/O bloccante
I/O non bloccante

Nel primo caso, se un'applicazione effettua una chiamata bloccante, l'esecuzione viene sospesa e il processo verra' spostato nella coda d'attesa.
Nel secondo caso, l'esecuzione dell'applicazione continuera' normalmente (programmazione multithread).

Solitamente il sistema operativo ha un sottosistema di I/O nel kernel, attraverso cui il nucleo fornisce i seguenti servizi:

- Schedulazione
- Buffering
- Caching
- Spooling

Ma per approfondirli bisognera' parlare di come il sistema operativo gestisce le periferiche, e questo lo vedremo a breve, quando avro' voglia di scriverlo, in questi giorni comunque dai ! :p

Nel frattempo vi ricordo che e' utile leggersi anche i post precedenti e comunque di approfondire gli aspetti di cui si discute, un po di voglia di fare ci vuole eh!

Note:

Per approfondire alcuni argomenti potete leggere qui, ed eventualmente cercarli anche altrove, l'importante e' comunque sapere "cosa cercare".

- Controller
- Input/output
- Bus
- Metodi di input/output
- Registro

Qui invece le letture consigliate prima di questa!

- http://www.inforge.net/community/in...-introduzione-all-architettura-di-un-s-o.html
- http://www.inforge.net/community/informatica-zone/364352-guida-comunicazione-tra-processi-s-o.html
- http://www.inforge.net/community/in...uida-la-schedulazione-del-processore-s-o.html
- http://www.inforge.net/community/in...a-cooperazione-tra-processi-deadlock-s-o.html
- http://www.inforge.net/community/in...os-e-file-system-di-un-sistema-operativo.html
 
  • Mi piace
Reazioni: Asahi
Stato
Discussione chiusa ad ulteriori risposte.