Académique Documents
Professionnel Documents
Culture Documents
9.1 GENERALITA’
In generale con la sigla I/O si fa riferimento a unità fisiche che comprendono:
• dispositivi di ingresso o uscita veri e propri, denominati per brevità dispositivi di I/O
(per esempio stampanti, nastri, dischi);
• unità di controllo (U.C.) dei predetti dispositivi;
• eventuali canali (detti anche “processori di I/O”: si tratta di apparecchiature,
tipicamente presenti nei grossi calcolatori, che controllano il flusso di dati tra la
memoria primaria e le unita’ di controllo dei dispositivi e che sono programmabili in
modo autonomo).
1 ) Dispositivo dedicato
Si tratta di un dispositivo che viene assegnato ad uno specifico job (solitamente per
l’intera durata del job stesso).
Questa tecnica, obbligatoria per alcuni dispositivi che richiedono azioni manuali (per es.
lettore di nastro magnetico) o lunghe operazioni di I/O (per es. stampante), può
ovviamente originare inefficienze.
2 ) Dispositivo condiviso
Si tratta di un dispositivo che viene utilizzato a turno da più job nello stesso arco di
tempo.
Ad ogni job che usa un dispositivo viene assegnata un’area distinta del dispositivo.
Questa tecnica si usa con i dispositivi che è facile riposizionare per servire più job
Capitolo 9 9.1
Dispense di Calcolatori Elettronici 1
(tipicamente per i dischi); è complessa se si cerca di ottimizzare lo sfruttamento del
dispositivo.
3 ) Dispositivo virtuale
Si tratta di un dispositivo che viene convertito da dedicato in condiviso per mezzo di una
opportuna tecnica (si veda il paragrafo 9.7).
• per funzione
• Dispositivi di I/O vero e proprio
la loro funzione è quella di collegare il calcolatore al mondo esterno
• Unità di memorizzazione
la loro funzione è quella di registrare l’informazione e di renderla disponibile
successivamente
Capitolo 9 9.2
Dispense di Calcolatori Elettronici 1
Unità
controllo
dischi
Canale
1
Unità
controllo
nastri
Mp
Unità
controllo
stampante
Canale
2
Unità
controllo
dischi
Una operazione di I/O può essere avviata solo se è disponibile un percorso fisico tra Mp e
dispositivo. Data la struttura dei collegamenti sopra descritta si possono avere ovviamente
interferenze nel soddisfacimento delle varie richieste.
Per ridurre le interferenze si fa ricorso a diverse tecniche, tra le quali le più comuni sono:
1. Funzionamento indipendente
2. Memorie tampone
3. Percorsi multipli
4. Multiplaggio di blocchi
Capitolo 9 9.3
Dispense di Calcolatori Elettronici 1
• Solitamente al completamento dell’I/O da parte di canale, U.C., dispositivo sono
generati distinti segnali di interruzione che vanno ad aggiornare i corrispondenti bit
di stato.
3. Percorsi multipli
Principio informatore: fare in modo che ogni dispositivo possa essere raggiunto con percorsi
diversi (in questo modo si aumenta anche l’affidabilità del sistema).
La fig. 9-2 riporta un esempio di applicazione di questa tecnica.
Mp
4. Multiplaggio di blocchi
Principio informatore: realizzazione, a mezzo dell’hardware, della multiprogrammazione dei
programmi di canale.
Per esempio un canale, non appena incontra una operazione di I/O che, come nel caso
di dispositivi con memoria tampone o con funzionamento indipendente, non richiede il
canale per un certo tempo, passa automaticamente ad occuparsi di un altro programma
di canale pronto per l’esecuzione.
Capitolo 9 9.4
Dispense di Calcolatori Elettronici 1
Dischi
Stampante
Mp U.C. U.C.
dischi stampante
Figura 9-3. Esempio di organizzazione dell’I/O tipica dei minicalcolatori e dei microcalcolatori
In assenza di canali le comunicazioni tra U.C. e Pc avvengono per mezzo di registri che
• fanno parte dello spazio di indirizzamento della Mp
oppure
• fanno parte di uno speciale spazio di indirizzamento riservato all’I/O.
Il S.O. esegue le operazioni di I/O inserendo comandi nei registri usati dalla U.C.. Al
completamento dell’I/O la U.C. genera una interruzione che fa sì che il S.O. riassuma il
controllo del Pc per verificare l’esito dell’operazione.
Per migliorare il funzionamento le U.C. fanno ricorso a diverse tecniche: le più comuni sono
l’Accesso Diretto in Memoria (DMA) e l’ Interleaving (per i dischi)
La tecnica DMA, gia’ descritta nel capitolo 5, serve a ridurre l’impegno del Pc. All’inizio
dell’operazione il Pc fornisce all’U.C. non solo l’indirizzo dei dati cercati ma anche l’indirizzo
in Mp a partire da quale i dati vanno trasferiti ed il numero di byte da trasferire. Dopo che
queste due informazioni sono state inserite in appositi registri dalla U.C., che li aggiorna
ogni volta che viene trasferito un byte, il Pc viene liberato. Al termine dell’operazione la U.C.
genera una interruzione ed il S.O. trova i dati in Mp.
L’interleaving si basa sul fatto che, durante i trasferimenti tra U.C. e Mp, il disco continua a
ruotare ed il successivo settore passa sotto la testina. Dato che in generale occorre un tempo
non nullo per trasferire il settore letto in Mp, se i settori logicamente consecutivi sono
fisicamente adiacenti, la U.C. in un giro può leggere un solo settore. In sede di
predisposizione del disco si può però tenere conto di questo fatto numerando i settori in
modo opportuno (interleaving semplice, si veda la fig. 9-4 per il caso di una traccia divisa in 8
Capitolo 9 9.5
Dispense di Calcolatori Elettronici 1
settori). In questo caso si ha a disposizione per completare il trasferimento in Mp il tempo
impiegato dal disco per ruotare di un settore.
Se il trasferimento richiede un tempo maggiore si possono saltare 2 settori (interleaving
doppio, si veda sempre la fig. 9-4) od anche più.
Adottando questa tecnica, la Mp può acquisire settori numerati consecutivamente alla
massima velocità di cui l’hardware è capace.
8 1 6 1
4 5 3 4
7 2 8 7
3 6 5 2
Una volta che il programmatore dell’I/O ha determinato l’ordinamento delle richieste di I/O,
il controllore del traffico determina quali possono essere soddisfatte.
Le richieste di I/O, una volta accolte, non sono normalmente interrotte in quanto la maggior
parte di esse si completa in un tempo breve (50 - 100 ms).
Funzione: il controllore del traffico tiene traccia dello stato di canali, U.C., dispositivi e
verifica la attuabilità delle decisioni precisando
• se esiste un percorso disponibile per servire la richiesta di I/O
• se esiste più di un percorso
• se un percorso diviene disponibile
Realizzazione: il controllore del traffico gestisce un archivio dati comprendente
• per ogni dispositivo un blocco di controllo (“Unit Control Block”) contenente
1. identificazione del dispositivo
2. stato
Capitolo 9 9.6
Dispense di Calcolatori Elettronici 1
3. lista delle U.C. collegate
4. lista dei processi in attesa del dispositivo
• per ogni unità di controllo un blocco di controllo (“Control Unit Control Block”)
contenente
1. identificazione dell’U.C.
2. stato
3. lista dei dispositivi collegati
4. lista dei canali collegati
5. lista dei processi in attesa della U.C.
• per ogni canale un blocco di controllo (“Channel Control Block”) contenente
1. identificazione de4l canale
2. stato
3. lista delle U.C. collegate
4. lista dei processi in attesa del canale
Per stabilire l’esistenza di un percorso si deve risalire dal blocco di controllo del dispositivo a
quello del canale.
Per stabilire l’esistenza di più percorsi si procede allo stesso modo; in questo caso la scelta
deve cadere su di un percorso che presenti il minor numero di potenziali conflitti con altri
percorsi, specie per configurazioni di I/O asimmetriche, come quella riportata per esempio in
fig. 9-5.
Per sapere che un percorso è divenuto disponibile i blocchi di controllo vanno aggiornati ogni
volta che si presenta una interruzione per completamento di I/O: vengono resi disponibili
dispositivo, U.C., canale impegnati nell’I/O, e si deve fare la ricerca tra i processi in attesa
del dispositivo liberatosi.
Mp
Canale B U.C. E Dispositivo H
Funzione: solitamente esiste un gestore per ciascun tipo di dispositivo. Esso avvia e gestisce
l’I/O fisico, gestisce interruzioni ed errori, ottimizza le prestazioni a mezzo di specifici
algoritmi di gestione.
Realizzazione: l’algoritmo di gestione cambia col tipo di dispositivo ed ha l’obiettivo di ridurre
il tempo totale richiesto dallo smaltimento delle richieste di I/O tenendo conto del fatto
che in presenza di richieste di I/O in attesa il relativo tempo di accesso può variare
notevolmente.
4 1
3 2
a) se le richieste sono evase nell’ordine 4, 3, 2, 1 e se con T?4 si denota il valor medio del
tempo di latenza necessario per arrivare a leggere il settore 4, il tempo totale richiesto è
b) se le richieste sono evase nell’ordine 1, 2, 3, 4 il tempo totale richiesto (essendo T12 = T23 =
T34 = 0) è
Se nelle operazioni sono coinvolte più tracce e se si può leggere (o scrivere) su di una traccia
alla volta, le richieste che si riferiscono ad uno stesso settore su tracce diverse sono
mutuamente esclusive: pertanto occorre anche stabilire in quale rotazione soddisfare quale
richiesta.
I conflitti possono essere ridotti se è possibile leggere o scrivere contemporaneamente su più
tracce (occorrono naturalmente più U.C., più canali e più hardware nel dispositivo).
Capitolo 9 9.9
Dispense di Calcolatori Elettronici 1
Per i predetti algoritmi l’U.C. stabilisce il da farsi sulla base delle richieste da evadere al
momento in cui deve prendere la decisione e non tiene quindi conto di eventuali richieste
che arrivino durante lo spostamento della testina.
Lo SPOOL impegna spazio in Mp. Per esempio, in un sistema con 4 unita’ di ingresso, 3
stampanti e 8 job in esecuzione, se si usano buffer da 10 KB per ogni “area” di SPOOL attiva
(4 per gli ingressi, 1 per l’input ed 1 per l’output di ciascun job, 3 per le uscite) la memoria
richiesta è pari a
(4 + 8 x 2 + 3) x 10 = 230 KB
Capitolo 9 9.11
Dispense di Calcolatori Elettronici 1
Passo 1
Job 3 Job 1
Job 1
Programma di
Job 3
ingresso
Job 2
Calcolatore 1 Job 4
Job 4 Job 2 ( calcolatore
periferico )
Pacchi di schede in ingresso
Disco di ingresso
Passo 2
Job 1
Job 1
Job 1 Job 2
Job 3
Job 2
Job 2
Job 3
Job 3
Job 4
Calcolatore 2
( calcolatore
Disco di ingresso principale ) Disco di uscita
Passo 3
Job 1
Job 2
Job 1
Programma di
Job 2
uscita
Calcolatore 3
Job 3
( calcolatore Job 3
periferico )
Disco di uscita
Tabulati in uscita
Capitolo 9 9.12
Dispense di Calcolatori Elettronici 1
Job 2
Programma di
Job 3
ingresso / uscita
Job 10 Job 8
Calcolatore
Unita’ di ingresso periferico Tabulati in uscita
Job 6 Job 5
Job 3
Job 5
Job 6
Job 5
Calcolatore
principale
Job 6
Job 4
Capitolo 9 9.13
Dispense di Calcolatori Elettronici 1
Disco di ingresso Disco di uscita
Job 8 Job 7
Job 1
Programma di
ingresso / uscita
Calcolatore
di supporto
Job 2
Job 9 Job 6
Unita’ di ingresso
Job 3
Tabulati in uscita
Job 4
Job 5
( a ) Configurazione reale
Calcolatore
principale
Job 3
Job 3
Job 4
Job 4 Job 3
Job 4
Job 5 Job 5
Job 5
( 3 lettori ad
alta velocità ) ( 3 stampanti ad
alta velocità )
( b ) Configurazione apparente ( virtuale )
Capitolo 9 9.14
Dispense di Calcolatori Elettronici 1
Disco di ingresso Disco di uscita
Job 6 Job 5
Job 2
Job 3
Job 4
Calcolatore
CALL READNEXT
Basi di dati ( BUFFER )
condivise
Interruzione per
completamento I/O
(unita’ di ingresso)
Memorizzazione Prelievo
Lato
dell’input dell’input
input
(lettura)
Prelievo
Memorizzazione Lato
dell’output
dell’output output
(stampa)
Interruzione per
completamento I/O
(stampante)
CALL PRINTNEXT
Lato Lato ( BUFFER )
interruzione chiamata
Capitolo 9 9.17
Dispense di Calcolatori Elettronici 1
Questa funzione non si occupa della gestione degli errori, per la maggior parte fortemente
dipendenti dai dispositivi, ma fornisce la segnalazione di eventuali errori non rimediabili
al processo chiamante.
Capitolo 9 9.18