Sei sulla pagina 1di 4

Tecnologie

Gestione di Input\Output
>Dispositivi di Input\Output

I dispositivi di Input/Output possono essere classificati in:


Dispositivi che permettono l'iterazione tra la macchina e il mondo esterno
(tastiere,mouse).
Dispositivi per il trasferimento dei dati tra il sistema (modem,scheda Ethernet).
Dispositivi per la memorizzazione permanente (come le unit a disco magnetico, i
lettori di DVD e di CD ROM, i masterizzatori di CD o DVD, le unit a nastro
magnetico);
Dispositivi per il controllo di apparati e recezione di dati da apparati.
L'unit centrale ha dentro il sistema della MotherBoard
I dispositivi che non sono di input/output sono:
Microprocessore;
Coprocessore;
RAM;
I dispositivi di input/output hanno velocit molto differenti e questo il primo problema,
Il microprocessore viaggia in GHz..per trasferire un KByte ci impiegherebbe 1/10'000'00
secondi.
L'hard disk fa parte dei dispositivi di I/O.
Nota
Quando la CPU Legge---> Output;
Quando la CPU Scrive---> Input;
Il BUS PCI EXPRESS(Dispositivo I/O) gira pi o meno come la Cpu.

Per ogni tipo di dispositivo di input/output c' un controllore che in grado di


interagire con dispositivi diversi, pu essere nella scheda madre o direttamente sul
dispositivo ce si inserisce nel pc(come gli hard disk) e possono interagire con la CPU.
Si possono avere controllori doppi, per il numero rimane limitato e posso avere un
controllore che controlla pi dispositivi.(ad esempio quello delle porte USB).
In sostanza il controllore serve per semplificare la gestione di tutti i dispositivi.
Controllore del disco (es): controllore per i dischi SATA controllore dei dischi SCSI.
I controllori si dividono in specifico e quello sulla matherboard.
Per comunicare con la CPU si utilizzano i bus, che si dividono in :
- Bus dati: che trasferisce i dati
- Bus indirizzi: specificano lorigine o la destinazione dei dati
- Bus di controllo: servono a specificare i tipi di operazioni da svolgere
I vari tipi di bus si differenziano nella quantit di dati che passano al minuto, inoltre per
evitare di bloccare la comunicazione tra le varie periferiche la CPU , la memoria centrale e la
memoria cache sono collegate a parte con il bus della memoria, dato che, appunto, laccesso
al bus uno alla volta.
I problemi di gestione nellaccesso dei bus si chiamano arbitraggio dei bus, una soluzione che
viene attuata su tutti i computer moderni quella dei bus multipli, per avere trasferimenti
tra unit periferiche memoria senza interferire con le attivit del processore.
I tre tipi di bus sono:

Bus della memoria: collega il processore con la memoria centrale e la memoria cache
per separare il traffico di dati tra processore e memoria centrale che rallenterebbe
Bus di sistema: dispositivo con un alto transfer rate
Bus di espansione ISABUS PCI

Operazioni di I/O, moduli di I/O e controllori


Queste operazioni di I/O riguardano il trasferimento di dati tra unit centrale e unit
periferiche mediante i controllori, in questa maniera solo il controllore conosce le specifiche
della periferica e il processore dialoga con un dispositivo virtuale molto pi semplice.
Lintero disco fisico pu essere descritto come un array di blocchi,.
Unoperazione di I/O che coinvolge il dico si traduce nellesecuzione di una system call.
Ogni controllore dotato di opportuni registri detti porte e variano da dispositivo a
dispositivo, si possono raggruppare in:
Porte con funzione di buffer per il trasferimento dei dati tra processore e periferica
Porte con funzione di registri per il controllo e sapere lo stato del dispositivo
In sostanza avvien questo:
CPU

dati

controllor
e

segnali

dati

I/O

segnali

Il controllo delle due attivit di I/O pu essere eseguito secondo differenti modalit:
I/O A CONTROLLO DI PROGRAMMA
NellI/O a controllo di programma il processore gestisce il trasferimento leggendo i registri
di stato del controllore per sapere quando pronto per ricevere o trasmettere dati, il
controllo avviene in un ciclo di attesa attivo.(accettabile per un sistema mono programmato, la
CPU non pu eseguire operazioni mentre continua a leggere il controllore)
I/O GUIDATO DALLE INTERRUZIONI
In questa maniera si pu ragionare in modo schematico: (lo svantaggio che il processore
continuamente interrotto)
1- Il processo prepara i dati di output
2- Attiva la periferica abilitandola ad eseguire interruzioni e si sospende mentre
aspetta che loperazione di I/O sia completata
3- La periferica dopo aver eseguito loperazione di I/O invia un segnale di interruzione
al processore
4- Il processore completa listruzione gi in esecuzione, riconosce il segnale di
interruzione e manda un segnale alla periferica per indicare che ha ricevuto il
segnale
5- Esegue la routine di gestione dellinterruzione.

I/O CON ACCESO DIRETTO ALLA MEMORIA


Nei computer moderni stato introdotto il DMA(direct memory access) un dispositivo che
gestisce autonomamente il trasferimento dati tra unit periferica e memoria non
coinvolgendo pi la CPU, il DMA agisce sotto il controllo di un processore, che gli fornisce le
informazioni necessarie, e poi lascia che sia lhardware del DMA ad operare il
trasferimento.
Le operazioni svolte sono:
1- Il processore carica alcuni registri del DMA con le informazioni necessarie, il
processore avvia il DMA, sospende il processo in esecuzione e cede il controllo allo
schedulatore, che manda in esecuzione un altro processo.
2- Il DMA esegue il trasferimento dati senza coinvolgere il processore, tuttavia il
processore rallentato dallaccesso concorrente alla memoria e dalla condivisione
dello stesso bus
3- Il DMA una volta completato il trasferimento invia un segnale di interruzione al
processore, e la routine di gestione dellinterruzione riattiva il processo in attesa
Il processore interviene solo allinizio e alla fine del processo e gestisce gli eventuali
errori.
I/O A CANALE
Il canale un processore specializzato, chiamato processore di I/O, esegue tutte le
operazioni di I/O presenti nella memoria centrale, al termine invia un segnale di interruzione
al processore per informarlo della fine delloperazione. considerato un vero e proprio
processore autonomo dato che ha una sua memoria.( un DMA potenziato).
SOFTWARE DI Input/Output
Lefficienza uno degli obbiettivi del software di I/O del sistema operativo, che interviene
nella gestione delle operazioni con il disco, il software di I/O strutturato in un insieme di
livelli interagenti.
I livelli sono organizzati in questo modo:
Il software dellutente, effettua alcune operazioni preliminari, traduce il comando di
I/O in una richiesta al sistema operativo(API di I/O).
Un primo livello delle azioni del sistema operativo quello del software indipendente
dal sistema operativo, ha lo scopo di uniformare le operazioni che devono essere
eseguite per ogni tipo di dispositivi
Software dipendente dal dispositivo, nasconde al livello superiore i dettagli delle
operazioni sullo specifico dispositivo, tratta le operazioni tramite driver dei dispositivi
Gestione del dispositivo fisico, (interruzioni, schedulazione, interazione diretta con il
dispositivo)
(dispositivi a blocchicome hard disk memorizzano dati in blocchi di dimensioni specifiche e
il trasferimento dei dati avviene per blocchi, dispositivi a caratterecome tastiera,
trattano i dati come un flusso)

SOFTWARE DI I/O DELLUTENTE

Le azioni eseguite a questo livello, sono limitate alla formattazione dei dati e alla
trasformazione delle richieste nelle corrette chiamate al sistema operativo
SOFTWARE DI I/O INDIPENDENTE DAL DISPOSITIVO
Alcune funzioni molto importanti sono lo SPOOL e la bufferizzazione.
Lo SPOOL un sistema per gestire in un ambiente multi programmato laccesso ad unit
periferiche che non possono essere condivise da pi processi, opera un processo speciale
chiamato demone di spool e una directory speciale chiamata directory di spool.
Il demone di spool ha lo scopo di mettere in sequenza gli accessi e gli accessi alla directory
di spool fatto in modo concorrente dai processi.
Laltra operazione quella della bufferizzazione, (buffer di sistemaspazi di memoria dove
memorizzare temporaneamente i dati da trasferire).
La bufferizzazione utile per 2 motivi:
- Disaccoppiare
Disaccoppiare il processo che fa I/O e la periferica, senza bufferizzazione infatti
il processo che legge o scrive deve rimanere in attesa che loperazione di I/O sia
conclusa.
- Se il trasferimento avviene in un area del sistema operativo il processo in
attesa del completamento dell operazione di I/O pu essere rimosso dalla
memoria e spostato su disco senza problemi
Il principio di localit dice che se un processo ha richiesto un blocco in una
certa posizione prima o poi richieder il blocco nella posizione successiva.
SOFTWARE DI I/O DIPENDENTE DAI DISPOSITIVI
A questo punto gli ordini di Input/Output del livello superiore sono tradotti nella corretta
sequenza di istruzioni, le operazioni sono svolte dai driver dei dispositivi, ci sono due
tecniche per includere i driver:
-il link editor che non quasi pi utilizzata
-i driver sono collegati dinamicamente allesecuzione
Nel driver presente un metodo per memorizzare informazioni chiamato descrittore del
dispositivo, che memorizza:
- Informazioni sul controllore
- Informazioni sui dati da trasferire
- Informazioni per la gestione del trasferimento
CONTROLLO E SCHEDULAZIONE DEL DISPOSITIVO
A questo livello si gestiscono le interruzioni e si ha il controllo della schedulazione del
dispositivo.

Potrebbero piacerti anche