Capitolo 2 - DEFINIZIONE DELLA MACCHINA

 

 

 

            2.1 - Il concetto di scatola nera.

 

                Il computer è fondamentalmente una macchina per il calcolo, adattabile anche alla elaborazione di dati non numerici; nella sua forma moderna la macchina è un insieme di dispositivi elettronici, con componenti ausiliarie in parte ancora meccaniche (dischi, stampanti, ecc.).

 

                Nel volgere di pochi decenni vi sono stati progressi rapidissimi, marca­ti dal succedersi di più generazioni tecnologiche: dall'impiego di relais elettromeccanici e valvole termoioniche si è passati ai transistor, poi alla integrazione miniaturizzata su larga - e più avanti larghissima - scala, con prospettive future di sviluppo solo parzialmente ipotizzabili.

 

                Per gli scopi che ci proponiamo le tecniche costruttive interessano relativamente: al massimo per avere un'idea del livello di prestazioni possi­bili per capacità e velocità.

 

                E' invece molto più importante mettere in luce la struttura logica della macchina, individuandone le componenti necessarie e le relazioni tra di esse; cercheremo di raggiungere questo obiettivo considerando scatole nere, o ogget­ti logici di cui non si conoscono le modalità operative interne, ma solamente il funzionamento rilevato dall'esterno.

 

                Avvertiamo esplicitamente che l'intenzione non è quella di dare un quadro concettualmente completo delle organizzazioni logiche possibili, ma principalmente quello di creare le basi per l'apprendimento dei linguaggi di programmazione classici, potendo dare la giustificazione razionale di molte definizioni e convenzioni che apparirebbero altrimenti arbitrarie, quasi da ridurre a soli schemi mnemonici.

 

                Delle possibili architetture di macchina, ad esempio dal punto di vista dell'accesso alla memoria, od alla sua partecipazione attiva alla elaborazio­ne, ne considereremo una sola, che è lo schema più tradizionale; il lettore interessato ad ampliamenti o generalizzazioni potrà facilmente trovare mate­riale adeguato nella letteratura in materia.

 

                Le componenti della macchina saranno considerate  dal punto di vista delle loro funzioni nei termini stimolo-risposta, deducendo eventualmente da queste gli elementi della struttura interna, che, se necessario,  saranno a loro volta sottoposti al medesimo processo.

 

                La rappresentazione schematica più semplice è data da:

 

  (2.1.1)

                                               

 

che rende evidenti i due flussi di informazioni, uno in entrata ed uno in uscita (o meglio, almeno uno), indicati con i termini INPUT ed OUTPUT, non traducibili in modo soddisfacente ed ormai entrati nell'uso comune. Loro equivalenti come ingresso / uscita o immissione / emissione dati non ne rendo­no che parzialmente l'idea.

 

                I dispositivi fisici utilizzati per le operazioni di input ed output si sono anch'essi evoluti nel tempo; per un certo periodo, ad esempio, le comuni­cazioni nei due sensi sono avvenute quasi esclusivamente tramite lettori di schede di cartoncino perforato e stampanti.

 

                I mezzi oggi più diffusi per l'interazione macchina-operatore sono tastiera e video, sia per grandi sistemi multiutente (terminali), sia per quelli monoutente (personal computer). Ai fini dell'analisi la natura dei mezzi fisici di comunicazione è relativamente indifferente, ed è quindi conve­niente limitarci a quelli attualmente più familiari.

 

                L'evoluzione ha modificato di molto le modalità di lavoro; quando il mezzo principale di input era il lettore di schede perforate le richieste alla macchina dovevano essere fatte letteralmente in un pacco chiuso ottenendo come unica risposta un tabulato finale altrettanto chiuso, senza cioè possibilità di interazione intermedia diverse dalle azioni eccezionali dei responsabili del sistema.

 

                Questo tipo di rapporto con la macchina è indicato con il termine batch, o 'lotto' (dalla terminologia industriale), in contrasto con interattivo, che è invece la modalità sviluppatasi con la comparsa prima di telescriventi time-sharing, poi di terminali video.

 

                Molte tecniche di programmazione e le basi di molti linguaggi risalgono al periodo in cui i processi batch non avevano alternative. La sempre maggiore diffusione di macchine e metodi interattivi ha dato un forte impulso alla evoluzione linguistica e strutturale, ma molti sistemi presentano ancora oggi inconvenienti legati alla prima fase di sviluppo.

 

                Ad esempio, nei grandi mainframe multiterminali il rapporto tra utente e macchina solo apparentemente è svolto da dialoghi interattivi; esso è in realtà una sequenza di piccoli procedimenti batch in cui il terminale remoto comunica con il sistema di controllo senza effettiva continuità.[1]

 

                Nel seguito faremo implicitamente riferimento alle macchine del tipo Personal, con le quali è più probabile che vi sia la possibilità di sperimen­tazione diretta; dal nostro punto di vista non la differenza con i 'grandi' sistemi, che simulano per ogni utente una macchina indipendente ad esso dedi­cata, è del resto poca.

 

                Gli aspetti per i quali i due contesti differiscono in modo sostanziale riguardano i metodi di gestione del sistema operativo; sono cioè argomenti al di fuori dei limiti che ci proponiamo.

 

 

 

            2.2 - Unità centrale e dispositivi periferici

 

                Lo schema (2.1.1) presenta la macchina nel suo aspetto essenziale: la elaborazione di dati; perché questa sia possibile, sono necessarie e non del tutto intuitivamente evidenti alcune condizioni minime:

 

(2.2.1)     l'immagazzinamento o memorizzazione dei dati;

                la definizione di sequenze di operazioni;

                il controllo dell'esecuzione delle sequenze.

 

                I canali di comunicazione input/output suggeriscono invece l'esistenza di dispositivi fisici esterni, indipendenti dal nucleo operativo, ma funzio­nalmente connessi ad esso.

 

                E' quindi opportuna una prima distinzione tra unità centrale (in genere detta CPU, o Central Processor Unit), che è la macchina da elaborazione pro­priamente detta e dispositivi periferici, che hanno una funzione analoga a quella che per un essere senziente svolgono gli organi sensori.

 

                Il numero di tali canali e la diversificazione delle loro funzioni è maggiore di quanto non appaia ad un primo esame: accanto alla tastiera, tipico dispositivo di input, potrebbe infatti esservi il mouse, una tavoletta grafi­ca, uno scanner, ecc., tutti aventi per scopo l'input.

 

                Così pure per l'output: accanto al video si trova spesso una stampante per la scrittura in forma permanente delle informazioni in uscita, un plotter per il disegno su carta di grafici, ecc.

 

                Per le due classi di dispositivi citati il senso della comunicazione è palesemente univoco, cioè solo input o solo output; questa asserzione si limita a quanto l'utente osserva immediatamente. Esistono evidenti eccezioni, ad esempio schermi video sensibilizzati al tatto; c'è inoltre l'esigenza di scambi bidirezionali, come minimo per la sincronizzazione delle operazioni.

 

                Vi è però un elemento importante che rende più complesso lo schema delle comunicazioni; esso deriva dalla capacità di conservazione o memorizzazione delle informazioni nella CPU, che non può essere illimitata.

 

                D'altro canto la tecnologia costruttiva  è tale che la  memoria è in genere volatile (si dice pure temporanea, o transiente): la conservazione delle informazioni dipende (salvo casi speciali) dall'esistenza di certe tensioni elettriche mantenute con continuità.        In altre parole, quando la macchina viene spenta essa perde ogni infor­mazione, almeno per quanto riguarda i dati e le sequenze di operazioni che interessano l'utente.

 

                Sono quindi necessari altri mezzi di memorizzazione delle informazioni che abbiano natura permanente, cioè non dipendente da condizioni esterne al mezzo stesso, quale il mantenimento della tensione elettrica.

 

                Con la tecnologia attuale si ricorre per questo a dischi o  nastri, di tecnologia analoga a quella delle ordinarie cassette audio: una superficie magneticamente sensibile, i cui punti sono polarizzabili in modo stabile in uno dei due versi, interagisce con una apposita testina elettromagnetica, che ne rileva o modifica gli stati; più familiarmente, legge o scrive.

                In questo modo si può, ad esempio, comporre un testo alla tastiera, ope­rando su quella che chiameremo memoria centrale, o di lavoro, trasferirlo su  un disco, recuperarlo e riutilizzarlo in un tempo successivo.

 

                Dischi e nastri sono dispositivi periferici per i quali il transito delle informazioni avviene in due sensi; sono cioè contemporaneamente disposi­tivi di input ed output.

 

 

 

            2.3 - Memorizzazione ed elaborazione.

 

  Consideriamo ora la sola CPU, della quale interessa (come scatola nera) la capacità di ricevere ed emettere informazioni, in genere elaborandole, cioè trasformandole, o in alternativa costruendone di nuove.

 

                Per ottenere questo debbono esistere almeno due capacità funzionali distinte, già evidenziate con la (2.2.1):

 

(2.3.1)     - MEMORIZZARE (o conservare) informazioni organizzate in forme riconoscibili;

                - OPERARE su di esse con le regole aritmetiche, i confronti logici e così via.

 

                La palese necessità di queste funzioni apre un primo  spiraglio sul contenuto della 'scatola' (2.1.1).

 

                In primo luogo, deve esistere una componente da chiamare memoria, oppor­tunamente ordinata e  capace di conservare informazioni in forma invariata; possiamo immaginarla come una successione numerata di elementi che chiameremo celle, la cui costituzione fisica per ora non ci interessa, capaci di contene­re valori numeri o simbolici:

 

  (2.3.2)

                 

                I numeri in 'posizione_x' indicano la posizione ordinale o indirizzo delle singole celle, mentre all'interno ne sono evidenziati i contenuti, o valori, nella stessa sequenza.

 

                La presenza dei contenuti comporta l'esistenza di metodi di scrittura per fissare il valore e di lettura per rilevarlo; per il resto le celle debbo­no conservare senza modificare.

 

                Deve inoltre esistere un'altra componente, il nucleo operativo, che per il genere di operazioni che compie è detto unità logico-aritmetica (ALU), capace di interagire con la memoria in uno scambio di dati finalizzato alla loro trasformazione, o più in generale elaborazione (ad esempio, il controllo del segno di un numero):

 

  (2.3.3)

                         

 

                Nel diagramma (2.3.3) la memoria è rappresentata per convenienza in forma si scatola bidimensionale più compatta rispetto alla reale struttura lineare della (2.3.2); la freccia bidirezionale evidenzia la necessità di uno scambio di informazioni in due sensi.

 

                In linea di principio le due proprietà:

 

  (2.3.4)   - conservazione: STATICA / memoria,

                - elaborazione: DINAMICA / ALU,

 

potrebbero anche essere due aspetti delle medesime componenti fisiche della CPU, come accade almeno parzialmente negli attuali microprocessori, termine con il quale si indicano le unità operative. Il modello concettuale della macchina risulta più semplice e chiaro nell'ipotesi da noi fatta, comunque  vicina alle architetture reali.

 

                Quanto detto fin qui permette di precisare meglio lo schema (2.1.1):

 

  (2.3.5)

                        

 

 

 

            2.4 - Organizzazione e controllo.

 

                Le frecce unidirezionali e bidirezionali che compaiono nelle (2.3.5) indicano flussi di informazioni, tramite i quali le varie componenti della macchina comunicano e cooperano.

 

                Ogni flusso può essere considerato come una sequenza, o insieme linear­mente ordinato di informazioni elementari, ognuna delle quali si può conside­rare corrispondente al contenuto delle celle in (2.3.2).

 

                Tali celle sono di norma adatte a rappresentare la forma codificata di un carattere, che per motivi che si chiariranno nel seguito viene indicato col nome di byte. Ogni scambio di informazioni è quindi misurato come un certo numero di byte che passano da un dispositivo funzionale all'altro.

 

                Il 'traffico' che ne deriva richiede organizzazione e controllo; la memoria è organizzata in modo naturale come una successione numerica, in cui ogni posizione è individuata dalla sua coordinata o indirizzo, ed ogni accesso alla memoria, ad esempio per la rilevazione di un dato, richiede una sequenza di almeno due passi elementari come:

 

 

  (2.4.1)   - DETERMINAZIONE (calcolo) dell'indirizzo;

                - CONNESSIONE logico/fisica tra la cella interessata ed il dispositivo di destinazione.

 

                Poiché le funzioni di controllo e sincronizzazione delle operazioni sono distinte dalle effettive elaborazioni dei dati, lo schema (2.3.5) dovrebbe essere completato indicandovi esplicitamente una componente di controllo; possiamo però supporre che le relative funzioni siano incluse nella ALU.

 

                L'architettura presentata implica una ripartizione gerarchica dei compi­ti, con il vertice nella funzione di controllo del flusso delle operazioni, che è quindi il più probabile collo di bottiglia del sistema. Lo schema (2.3.5) non presenta in dettaglio le linee di comunicazione richieste, la cui struttura è molto complessa.

 

                Negli anni '60 è emersa una concezione più elastica, che pone al centro la struttura delle comunicazioni basata su un dispositivo detto BUS, realizza­to fisicamente come un 'canale' o cavo composto di un certo numero di fili paralleli, i cui servizi possono essere richiesti su un piano di parità da tutte le componenti funzionali:

 

  (2.4.2)

                    

 

                I dispositivi sono tastiere, video, terminali, stampanti, dischi, ecc.; si è preferito il più generale termine CPU ad ALU per indicare le funzioni del microprocessore principale, che comunica con gli altri elementi inviando segnali al BUS e prelevandone; essi possono riguardare:

 

  (2.4.3)   - la sincronizzazione scandita da un orologio interno, il quale é spesso un altro elemento           

                   indipendente che interagisce con il BUS;

                - indirizzi di riconoscimento dei dispositivi;

                - indirizzi interni della memoria; 

                - dati;

 

                Lo schema (2.4.2), abbastanza vicino alle prime organizzazioni di BUS, è però eccessivamente riduttivo. Non è infatti opportuno mettere sullo stesso piano gli scambi tra ALU e memoria centrale e quelli con i dispositivi perife­rici, che potrebbero richiedere modalità e soprattutto velocità tali da rende­re poco funzionale lo schema.

 

                Più esattamente, si dovrebbe distinguere tra un BUS interno, dedicato agli scambi tra memoria ed ALU, con suddivisione tra linee per indirizzi e linee dati (con possibili sovrapposizioni) e BUS esterno (o I/O BUS), dedicato ai dispositivi periferici, eventualmente dotato di un dispositivo di sincro­nizzazione indipendente.

 

                Sono possibili anche schemi più complessi, ma questo riguarda le tecno­logie costruttive; per il contesto attuale il quadro concettuale dato dallo schema (2.4.2) e dagli esempi (2.4.3) è adeguato agli scopi che ci proponiamo.

 

                Ogni elemento collegato al BUS possiede uno o più microprocessori auto­nomi spesso montati con altre componenti elettroniche su un controller, o scheda fisicamente connessa al BUS stesso.

 

                In questo tipo di organizzazione la CPU procede normalmente con le sequenze di operazioni richieste dai programmi, inviando richieste alla memo­ria ed agli altri dispositivi; ognuno di essi è in grado di generare un segna­le detto interrupt con il quale richiedere l'attenzione della CPU quando è necessario.

 

                In un sistema la cui architettura non preveda interrupt la CPU deve prendere l'iniziativa di interrogare continuamente a ciclo tutti i dispositivi collegati per sapere se esistono richieste da evadere; è cioè costretta a dedicare una parte (anche consistente) del tempo a compiere operazioni per le quali la risposta è generalmente negativa.

 

                La più flessibile struttura dei BUS permette interessanti generalizza­zioni: ad esempio, non vi è nulla di contraddittorio nella presenza di più di una CPU collegata sul medesimo BUS; è cioè possibile costruire una macchina dotata di più di una ALU (sistemi multiprocessore). Oppure, si possono avere memorie attive, che partecipano alla elaborazione dei dati.

 

                Da considerazioni simili derivano le architetture parallele, che costituiscono una delle principali tendenze costruttive per l'aumento della potenza delle macchine.

 

                Lo schema (2.4.2) rappresenta anche, con poche variazioni nei termini, la struttura di una rete di macchine indipendenti, in cui ogni elemento colle­gato alla dorsale (che non viene più chiamata BUS)  può essere un computer autonomo, un terminale più o meno 'intelligente', una stampante, ecc.

 

                Le linee di sviluppo attuali per i sistemi di elaborazione dati hanno appunto la rete come punto di riferimento, allo scopo di creare contesti di risorse integrate che ne permettano la condivisione tra il massimo numero possibile di utenti: è per esempio più conveniente avere una stampante molto veloce e flessibile a disposizione di molti utenti, piuttosto che un insieme di piccole stampanti di capacità limitate, meno funzionali e complessivamente più costose della risorsa centrale.

 

 

 

            2.5 - Memorie periferiche: dischi e nastri.

 

                Tra i dispositivi esterni vi sono le memorie periferiche, così chiamata in contrapposizione a quella centrale; si è già accennato alla differenza: la seconda può essere pensata come spazio di lavoro principale, nel quale le operazioni sui dati sono molto veloci, come richiede l'interscambio continuo con la ALU.

 

                La memoria centrale richiede però volatile, cioè non consente la conser­vazione delle informazioni a tempo indefinito; sono quindi stati progettati vari tipi di dispositivi fisici, di cui i più importanti sono dischi e nastri magnetici, entrambi di natura elettromeccanica, cosa  che ne condiziona le prestazioni, anche se in modi diversi.

 

                Vi sono anche varianti quali i dischi ottici, che impiegano la tecnolo­gia del laser e sono strutturalmente più vicini ai nastri che ai dischi, ed un tipo molto recente di scheda magnetica detto RAM-Card, via di mezzo tra un disco senza componenti meccaniche e la memoria centrale, che indica probabil­mente la via più promettente per gli sviluppi futuri.

 

                Nastri e dischi tradizionali permettono la conservazione indefinita dell'informazione tramite la magnetizzazione permanente: ciò che è stato memo­rizzato può venire modificato solo con un successivo intervento esplicito; per altri dispositivi, come i dischi ottici, gli effetti fisici sono diversi, ma lo scopo funzionale è lo stesso.

 

                Dal punto di vista della struttura, un nastro magnetico è molto simile alla memoria centrale, come è stata rappresentata nella (2.3.2): una sequenza lineare di celle capaci di rappresentare singoli caratteri, con in più la presenza di un sensore, nella forma di una testina elettromagnetica capace di rilevare (leggere) il contenuto di una cella e di modificarlo (scrivere):

 

  (2.5.1)

                   

                La differenza strutturale più importante riguarda le modalità di acces­so; mentre ogni elemento della memoria centrale è immediatamente rintracciabi­le tramite il suo indirizzo, la natura del nastro, che deve essere svolto fisicamente, impone il transito  su tutte le posizioni che precedono quella voluta. Le operazioni di lettura/scrittura dei dati sono quindi estremamente lente al confronto con le analoghe in memoria centrale.

 

                Il caso dei dischi ottici è analogo; la differenza è nella tecnologia per la lettura/scrittura, che impiega un dispositivo laser, e nella disposi­zione fisica delle celle, che formano un'unica spirale ininterrotta, del tutto equivalente alla sequenza lineare della (2.5.1). L'impiego di speciali 'marca­ture' permette però di ovviare in una certa misura alle restrizioni del cammi­no in sequenza, diminuendo di molto i tempi di accesso.

 

                Il termine RAM sta per Random Access Memory, l'aggettivo casuale è impiegato in riferimento alla memoria centrale; con esso non si intende che l'accesso avviene a caso, ma che una cella scelta a caso può essere raggiunta in un tempo equivalente a quello di ogni altra.

 

                Il metodo di accesso ai nastri magnetici ed ai dischi ottici viene detto sequenziale; con esso il tempo di accesso di una cella è una funzione crescen­te della distanza della cella stessa da quella che all'istante si trova sotto la testina, con le eccezioni dette per il secondo caso (i markers).

 

                 I dischi magnetici, che sono al momento il supporto più diffuso per le memorie periferiche, hanno un diverso tipo di organizzazione. Essi vengono suddivisi in una sequenza di tracce o cilindri, che sono circonferenze concen­triche, numerate progressivamente:

 

                (2.5.2)     T0, T1, ...., Tm.

 

                Ogni traccia viene a sua volta suddivisa in una sequenza di settori o blocchi di lunghezza fissata, essi pure numerati all'interno della traccia:

 

                (2.5.3)     B0, B1, ...., Bn

 

                Ad esempio, m = 39 o 79 ed n = 8 o 14 o 17 sono valori tipici per i di­schetti mobili (floppy disk) dei personal computer del tipo più diffuso; ricordi che il conto inizia da zero.

 

                Infine, ogni blocco contiene un numero fissato (tipicamente 512) di celle del tutto simili a quelle della memoria centrale e dei nastri. L'insieme dei blocchi a doppia coordinata settore-traccia può comunque essere considera­to esso pure come una unica sequenza lineare del tipo della (2.5.1).

 

                Se k è il numero di celle in un blocco, il totale è:

 

                (2.5.4)     c = k * n * m.

 

                Poiché la testina I/O è montata su un carrello in grado di muoverla avanti ed indietro lungo un raggio, l'accesso ai blocchi, e quindi alle singo­le celle avviene per l'effetto combinato della rotazione del disco e dello spostamento lineare della testina. Non è quindi necessario percorrere ordina­tamente tutte le celle per raggiungerne una particolare.

 

                Per queste caratteristiche anche i dischi magnetici vengono detti dispo­sitivi ad accesso casuale, ma stavolta il termine ha significato statistico: il tempo medio necessario per raggiungere ogni cella è non più uguale, ma statisticamente equivalente a quello necessario per ogni altra.

 

                Il termine cilindro menzionato sopra si riferisce ad una particolarità costruttiva dei dischi di grande capacità, che presentano diverse superfici circolari parallele montate su un unico supporto centrale, con una serie di testine, esse pure parallele, che permettono l'accesso contemporaneo a tutti i blocchi che formano un ideale segmento verticale. Questa struttura moltiplica la capacità di ogni operazione di lettura/scrittura.

 

 

 

            2.6 - Esempi dalla tecnologia corrente

 

                Senza pretesa di completezza, consideriamo alcuni esempi che mettono a confronto la tecnologia corrente con alcune tappe significative del passato; si deve però avvertire che in questo campo il termine 'corrente' è legato ad una dinamica di sviluppo talmente rapida che certe informazioni sono sovente superate nel momento stesso della scrittura.

 

 

 

                - VELOCITA' DI ELABORAZIONE -

 

                L'unità di misura è data dai MIPS, o milioni di istruzioni eseguite per secondo. Anche i personal di tipo più comune raggiungono ordini di 1-3 MIPS, mentre per macchine di media dimensione sono normali i valori da 10 a 40. Come elemento di riferimento, si consideri che un minicalcolatore dell'inizio degli anni 70, di costo (allora) pari ad almeno 20-30 volte quello di un personal attuale poteva avere valori di 0.2 - 0.5.

 

                Per le macchine dedicate al calcolo si preferiscono i MFLOPS, o milioni di operazioni su numeri non interi (o floating point), che sono aggregati complessi di operazioni elementari, spesso eseguite da dispositivi appositi; le più veloci versioni correnti del supercomputer CRAY superano 30.000.

 

                Da un altro punto di vista può interessare invece il tempo richiesto da una singola operazione, ad esempio la somma o il trasferimento di un dato, che  non è in genere una operazione elementare di macchina, ma una sequenza di esse. Dai millisecondi e microsecondi (milionesimi di secondo) degli anni 60- 70 si è passati ai nanosecondi (miliardesimi di secondo).

 

                L'elemento più importante per questi valori è la frequenza di oscilla­zione del clock, o orologio del microprocessore, misurata in Megahertz; all'inizio degli anni '80 i valori erano di 1 (o meno) fino a 4, ma il micro­processore Alpha, messo recentemente sul mercato dalla Digital, raggiunge già valori di 150-200 Mhz.

 

 

                 - MEMORIA CENTRALE -

 

                La misura corrente è il Megabyte (Mb), o milioni di caratteri, ove carattere può essere inteso nella accezione corrente; un suo sottomultiplo è il Kilobyte (Kb), o migliaia di caratteri. Si vedrà che non si tratta esatta­mente di migliaia o milioni, ma di valori molto vicini; più esattamente della decima potenza del 2 (1024) e del suo quadrato.

 

                Per un personal la capacità di 1-4 Mb è normale, mentre per macchine di grandi dimensioni il riferimento è alle decine e si tende attualmente alle centinaia. Anche qui, si pensi, ad esempio, che la macchina adatta alla ge­stione di una azienda alla fine degli anni '70 difficilmente disponeva di una memoria superiore ai 256 Kb.

 

 

 

                - DISCHI E NASTRI -

 

 

                Kb e Mb sono unità di misura anche per dischi e nastri, che dal punto di vista della capacità non sono altro che memorie di natura diversa, essi pure da pensare come successioni numerate di celle logicamente identiche a quelle della memoria centrale. Sta però diffondendosi l'impiego del multiplo succes­sivo, il Gigabyte (Gb), oltre un miliardo di caratteri.

 

                Dischi e nastri differiscono strutturalmente tra loro principalmente per la modalità di accesso: sequenziale per i primi e diretto per i secondi, che sono quindi molto più efficienti.

 

                Nonostante ciò, i tempi di acceso risentono dell'esistenza di fattori meccanici ed il tempo di una operazione I/O (misurato in millisecondi), è comunque di parecchi ordini di grandezza più alto degli scambi analoghi nella memoria centrale, composta di sole parti elettriche ed elettroniche.

 

 

 

                - CANALI DI COMUNICAZIONE -

 

                Anche questo campo ha risentito come gli altri dell'evoluzione tecnolo­gica; in questo caso si considera il throughput, o flusso di attraversamento, ancora misurato in byte, Kilobyte e più recentemente il Megabyte.

 

                Se inizialmente si trattava solo di cavi per la connessione di tastiere e scriventi lungo i quali venivano trasferiti caratteri ad un ritmo di qualche decina o centinaio al secondo, attualmente per i collegamenti 'vicini' alla macchina l'ordine è di (molti) Kb, ed in qualche caso qualche Mb e tende agli stessi valori anche per collegamenti remoti (reti).

 



[1] Più esattamente, si hanno due tipi di situazioni: nella prima, tipica dei Personal Computer e dei sistemi multiterminali real-time, ogni tasto battuto ad una tastiera attiva comporta una immediata comunicazione con il dispositivo di controllo centrale, mentre nella seconda la comunicazione avviene per pacchetti su richiesta del terminale, che gestisce la tastiera in modo autonomo.