Nonostante fossero stati inventati già nel '47 da IBM,
solo verso la fine degli anni '50 i transistor iniziarono ad avere
una certa diffusione anche nel campo della progettazione dei
calcolatori, dando inizio a quella che viene poi chiamata la
seconda generazione dei computer.
Tre erano i vantaggi del transistor: le dimensioni (un
transistor è centinaia di volte più piccolo di una
valvola), la rapidità (l'impulso elettrico deve percorrere
un tratto minore e dunque impiega meno tempo per giungere,
elaborato, dall'altra parte del transistor), l'affidabilità
(il tempo medio prima della rottura di un transistor è di
circa un milione di ore, contro le diecimila della valvola). La
riduzione delle dimensioni e, in definitiva, dei costi (il costo di
produzione di un transistor è molto minore di quello di una
valvola) diede un impulso all'aumento del numero di elementi usati
nella costruzione dell'elaboratore e dunque alla sua
complessità. Le unità di governo vennero
riorganizzate; fu implementato l'input/output su periferiche lente
(come i lettori di nastri o di schede) parallelo all'elaborazione;
il numero dei registri del processore aument", consentendo
di lavorare su un numero maggiore di operandi senza accesso alla
memoria (operazione che comporta un rallentamento delle
operazioni), con un conseguente aumento di velocità. Il
computer inizi" piano piano a prendere una forma più
simile a quella odierna.
Ci furono molteplici innovazioni in questo periodo, ma una tra
le più importanti fu la creazione della memoria a
nuclei, usata a partire circa dalla metà degli anni
'50. Precedentemente, venivano usate memorie cosiddette a
tamburo, realizzate con uno spesso disco coperto di materiale
magnetico (da cui il nome di "tamburo") che scorreva
sotto una testina di lettura e scrittura. Lo scorrimento provocava
due problemi sufficientemente gravi: il rompimento per usura
(abbastanza frequente) e la sequenzialità dell'accesso ai
dati, per la quale per accedere a un dato bisogna prima scorrere
tutti quelli precedenti (in questo caso, attendendo che il disco
compia, alla peggio, un giro completo prima di ottenere il dato
desiderato). Le memorie a nuclei, invece, erano costituite da una
rete di fili attorcigliati attorno a "nuclei",
piccole "ciambelle" (tori) di materiale ferroso, che
hanno la proprietà di magnetizzarsi in senso orario o
antiorario a seconda della corrente che li attraversa, potendo
così registrare un bit di informazione (zero per il senso
antiorario, uno per l'orario). Le memorie risolvevano il problema
della sequenzialità introducendo il cosiddetto accesso
casuale (random access): bastava far scorrere la corrente nei
fili giusti per ottenere, sotto forma di tensione su un certo
contatto elettrico, il valore del bit desiderato, senza dover
attendere alcun tempo dovuto a movimenti meccanici e velocizzando
le operazioni di interi ordini di grandezza.
Un altra innovazione fu la parallelizzazione del lavoro
di input/output e di elaborazione: fu questo un concetto che si
accompagnava alla cosiddetta multiprogrammazione
(multitasking) secondo il quale più operazioni possono
essere svolte in parallelo. Le periferiche di input/output sono
infatti notevolmente più lente dell'elaborazione elettronica
svolta dall'unità centrale, e pertanto si spreca molto tempo
durante l'attesa del risultato dell'I/O, penalizzando le
prestazioni. Per ovviare al problema, si inizi" a sfruttare
i cicli di elaborazione "sprecati" con altre elaborazioni dello
stesso programma che non avessero bisogno dell'accesso al disco;
successivamente, allargando il concetto, si arriv" a far
funzionare più programmi contemporaneamente, facendo girare
alternativamente prima una porzione delle istruzioni del primo, poi
una porzione del secondo, poi la porzione successiva del primo, poi
quella del secondo e così via. Era la velocità del
passaggio tra i due programmi a creare l'illusione della
contemporaneità. Questa tecnica (nota all'epoca come
time-sharing, specialmente in relazione a programmi avviati da
persone differenti) è utilizzata ancora oggi con
finalità diverse: consentire l'uso da parte di più
programmi differenti della stessa macchina. La tecnica del
multitasking ebbe il suo maggior sviluppo teorico e pratico in
questo decennio e in tutto quello successivo, per poi essere
ripresa durante gli anni '80.
Infine, una grande innovazione fu l'introduzione delle
memorie di massa basate su nastri magnetici in
sostituzione delle schede di carta, la cui velocità era
nettamente inferiore, e l'introduzione dei primissimi dischi
magnetici, eredi dell'idea del "tamburo" ma in grado di mantenere i
dati anche a corrente spenta, antesignani sia dei dischetti che dei
dischi rigidi.
Questa "pioggia" di innovazioni ebbe tre effetti principali: la
riduzione delle dimensioni dei computer; la riduzione dei costi,
che consentirono un allargamento del mercato anche alle aziende di
medie dimensioni; l'aumento delle prestazioni delle macchine, che
arrivavano ad essere dieci volte maggiori rispetto alla generazione
precedente. Tutto questo venne ulteriormente accentuato alla fine
degli anni '60, quando una terza generazione di computer
venne a spodestare quella precedente, basandosi sull'uso dei
circuiti integrati in luogo dei circuiti assemblati
tradizionalmente (innovazione proveniente soprattutto
dall'industria spaziale), riducendo costi e dimensioni in maniera
ancora più accentuata.
Immagine x - Un nastro magnetico per computer.
L'assalto dei linguaggi di programmazione ad alto livello
iniziava a delineare il settore del software, che, divenuto meno
dipendente dal tipo di hardware utilizzato, faceva passi da
gigante: un grande impulso lo diede l'introduzione di
COBOL ("Common Business-Oriented Language",
linguaggio comune orientato alle operazioni commerciali), un
linguaggio di programmazione che andava incontro alle esigenze
dell'utenza commerciale piuttosto che a quella dell'ambiente
scientifico come faceva Fortran (si deve immaginare che per
vent'anni, anche dopo la rivoluzione dell'ingresso nella scena
della programmazione dei lingaggi strutturati, ci saranno al mondo
più programmi scritti in Cobol che in altri linguaggi) che
segn" il passaggio della macchina da un ambiente di nicchia,
solo scientifico, ad appunto un uso più ampio, di
elaborazione, trattamento e immagazzinamento dei dati.
Immagine xi - Douglas Engelbart, ideatore del NLS e di molti
concetti dell'informatica odierna.
Un ultimo cambiamento è quello relativo alla
localizzazione dei computer, nel senso spaziale del
termine: dove prima i computer erano relegati ai centri di calcolo
che eseguivano un'elaborazione cosiddetta "a lotti", prettamente
locale, adesso piano piano si procedeva, grazie ai sistemi
time-sharing, a elaborazioni a distanza, anche grazie
all'affidabilità sempre maggiore della rete telefonica (un
primo avvicinamento tra tecnologie della comunicazione e
dell'elaborazione). Questo diede un forte impulso al mercato
dell'informatica, consentendo ad alcune aziende di fornire un
accesso a pagamento ai propri sistemi a quei clienti che, pur
avendo necessità di compiere elaborazioni complesse, non
possono giustificare i costi di acquisto e manutenzione di un
"intero" computer. Questo dà un grande impulso
a quei sistemi, detti "monitor" o
"supervisori", che gestiscono l'esecuzione degli
altri programmi e realizzano il multitasking; da questi strumenti
nasceranno i sistemi operativi che usiamo oggi. Sempre in questo
periodo nascono tecniche, come quelle della memoria virtuale o
della paginazione che sono alla base della flessibilità dei
sistemi informatici odierni.
Infine, nei primi anni '60, nasce al Centro Ricerche di Stanford
l'NLS ("oN Line System", Sistema in linea), che
introduce concetti come le finestre, l'editing bidimensionale (col
documento visualizzato sullo schermo), gli ipertesti, il mouse,
l'editing tra documenti (l'odierno "taglia, copia,
incolla"), il mouse, la videoconferenza, che solo oggi
utilizziamo appieno o iniziamo a utilizzare. Il lavoro sull'NLS fu
per" dimenticato ancora per circa una ventina d'anni,
essendo la tecnologia non ancora sufficientemente sviluppata per
supportare efficientemente operazioni così complesse.