Tecnologie

5
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 l’origine o la destinazione dei dati

description

Appunti di tecnologie

Transcript of Tecnologie

Page 1: Tecnologie

TecnologieGestione di Input\Output

>Dispositivi di Input\OutputI 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.

NotaQuando 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 diinteragire 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 l’origine 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, l’accesso al bus è uno alla volta.

I problemi di gestione nell’accesso dei bus si chiamano arbitraggio dei bus, una soluzione che viene attuata su tutti i computer moderni è quella dei bus multipli, per

Page 2: Tecnologie

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 controlloriQueste 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.L’intero disco fisico può essere descritto come un array di blocchi,.Un’operazione di I/O che coinvolge il dico si traduce nell’esecuzione 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 dispositivoIn sostanza avvien questo:

dati dati

segnali segnali

Il controllo delle due attività di I/O può essere eseguito secondo differenti modalità:

I/O A CONTROLLO DI PROGRAMMA

Nell’I/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 output2- Attiva la periferica abilitandola ad eseguire interruzioni e si sospende

mentre aspetta che l’operazione di I/O sia completata3- La periferica dopo aver eseguito l’operazione di I/O invia un segnale di

interruzione al processore4- Il processore completa l’istruzione 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 dell’interruzione.

CPU controllore I/O

Page 3: Tecnologie

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 l’hardware 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 dall’accesso 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 dell’interruzione riattiva il processo in attesa

Il processore interviene solo all’inizio 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 dell’operazione. È considerato un vero e proprio processore autonomo dato che ha una sua memoria.(è un DMA potenziato).

SOFTWARE DI Input/OutputL’efficienza è 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 dell’utente, 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)

Page 4: Tecnologie

SOFTWARE DI I/O DELL’UTENTELe 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 DISPOSITIVOAlcune funzioni molto importanti sono lo SPOOL e la bufferizzazione.Lo SPOOL è un sistema per gestire in un ambiente multi programmato l’accesso 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.L’altra operazione è quella della bufferizzazione, (buffer di sistemaspazi di memoria dove memorizzare temporaneamente i dati da trasferire).La bufferizzazione è utile per 2 motivi:

- DisaccoppiareDisaccoppiare il processo che fa I/O e la periferica, senza bufferizzazione infatti il processo che legge o scrive deve rimanere in attesa che l’operazione 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 problemiIl 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 DISPOSITIVIA 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 all’esecuzioneNel 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 DISPOSITIVOA questo livello si gestiscono le interruzioni e si ha il controllo della schedulazione del dispositivo.