La terza generazione: I circuiti integrati
Macchine più veloci, più affidabili, di dimensioni ridotte e meno
costose, grazie al circuito integrato, che è frutto di una avanzata
sperimentazione nel campo dell'elettronica, della chimica e della
fisica, caratterizzano la terza generazione di calcolatori, intorno
alla metà degli anni '60.
Le prime macchine ad essere prodotte sulla base di questa
tecnologia furono quelle della serie 360 della IBM, che riuscì
ad installarne oltre trentamila esemplari in tutto il mondo.
La Honeywell installò più di mille esemplari del G 115, e la
Univac 2500 esemplari della serie 9000.
L'ordine di grandezza del tempo necessario alla esecuzione di
una operazione è il miliardesimo di secondo, una velocità
circa mille volte maggiore di quella consentita alle macchine
della precedente generazione.
Per avere l'idea di questo straordinario incremento di velocità,
basti pensare che un miliardesimo di secondo sta ad un secondo
come un secondo sta a 30 anni.
Questo passo in avanti impone degli accorgimenti per potere
adattare a questa velocità tutti i componenti del calcolatore.
Tra la memoria a nuclei magnetici, e l' unità centrale, che è
circa mille volte più veloce, viene creata una "memoria di
transito" costituita da circuiti molto veloci per permettere il
passaggio dei dati.
Il circuito integrato, con la miniaturizzazione dei circuiti elettronici, ha
permesso, di conseguenza, la diminuzione dei costi di produzione.
Una barretta di silicio viene tagliata in sezioni sottilissime, e su ciascuna di
queste, con metodi di fotolitografia vengono create delle piastre della misura
di pochi millimetri.
Su ciascuna di queste piastrine trovano posto, collegati tra di loro, migliaia di
transistor e di altri componenti elettronici come resistenze e diodi.
L'alta densità dei componenti elettronici, su ciascuna piastrina, consente di
ottenere una elevata velocità di elaborazione, un volume assai ridotto ed
una minima dispersione di potenza.
Un altro aspetto notevole delle macchine di questa generazione riguarda lo
sviluppo di programmi compatibili tra le diverse famiglie di calcolatori.
Gli elaboratori vengono progettati per potere essere potenziati nel tempo,
aumentando la capacità della macchina grazie a dei moduli che permettono
di adeguare la macchina a qualsiasi tipo di applicazione ed a qualsiasi
volume di informazioni da elaborare.
Con la 3ª generazione vengono superati alcuni limiti legati alla generazione
precedente, in cui gli elaboratori erano generalmente costruiti "su misura",
progettati con una specifica dimensione, per potere essere impiegati ad uso
esclusivo scientifico o commerciale.
Al fine di gestire il coordinamento delle varie componenti di un calcolatore,
vengono creati dei programmi che hanno lo scopo di aumentare l'efficienza
della macchina, senza avere nessun compito specifico.
Nasce il "sistema operativo", che controlla il funzionamento della macchina
senza l'intervento dell'operatore eliminando di conseguenza i tempi di attesa.
Oltre al sistema operativo vengono creati nuovi linguaggi di programmazione
come l'APL, (A Programming Language), che viene impiegato per interrogare
l'elaboratore, il PL/1, (Programming Language 1), un linguaggio versatile
che risolve problemi sia scientifici che commerciali, ed il BASIC, (Beginners
All-purpose Symbolic Instruction Code), che facilita molto l'approccio alla
programmazione per utenti inesperti.
Questi nuovi linguaggi vengono sviluppati tenendo conto dei nuovi concetti
di "multi programmazione" e di "time-sharing", che consentono in pratica
di elaborare più programmi contemporaneamente, permettendo così l'uso
simultaneo del calcolatore a più utenti.
Sotto il controllo del sistema operativo la macchina salta da un utente ad un
altro in modo così rapido, rispetto alla velocità dei terminali, che nessuno
si rende conto di utilizzare l'elaboratore assieme ad altri.
E' anche grazie al sistema operativo che, utilizzando al meglio il calcolatore,
permette a programmi diversi, introdotti nella memoria centrale, di funzionare
contemporaneamente utilizzando ciascuno i tempi morti durante l'esecuzione
degli altri programmi.
|