Informatica in pillole, con Attilio A. Romita (8)

Pubblicato il 6 Gennaio 2009 in da Vitalba Paesano

La scienza prima e la tecnologia, che non è altro che l’applicazione della scienza, continuano a mettere a disposizione “cose” adatte a contenere dati e informazioni in quantità sempre maggiore.

Pensate a quegli oggettini, -ini solo per dimensioni esterne, come gli IPod che permettono di registrare, con tecniche quasi magiche, una gran quantità di canzoni. Tanto per fare un confronto pensate a quanto spazio serve per conservare 100 “78 giri” od anche 100 “45 giri”.

Nuovi sviluppi si avranno con le nanotecnologie, le tecniche che lavorano su miliardesimi di mm cioè su dimensioni di una capocchia di spillo in riferimento all’orbe terracqueo.

Quello che succederà qualche visionario lo prevede, ma sino ad oggi tutte le previsioni dei visionari più pazzi sono sempre state superate.

Sicuramente i contenitori saranno sempre più piccoli e le quantità di dati registrabili saranno sempre maggiori. Quello che meno cambierà, se non viene fuori qualche nuova pazza idea, sarà come logicamente archiviare e ritrovare i dati.        

Qualche riflessione…..tanto per capirci.

Nelle puntate precedenti ho cercato di raccontarvi in modo semplice e assolutamente non scientifico come è fatto un elaboratore che non è un “cervellone”, ma un bambinone “autistico” e per questo paragone e per quel che segue chiedo scusa per l’uso esemplificativo di questo temine a tutti i poveretti affetti da questa gravissima menomazione.

L’elaboratore è uno strumento capace di eseguire all’infinito la stessa operazione senza fare mai un errore o ripetendo sempre lo stesso errore.

Ovviamente “la stessa operazione” può essere anche un complicato calcolo scientifico con migliaia di operazioni che operano su numeri con un infinito numero di cifre. In questo caso è sufficiente che esista un “umano” capace di istruire l’elaboratore con un programma adatto.

I famosi elaboratori “che giocano a scacchi” lavorano con un programma, quasi sempre dettato da un Maestro di Scacchi, che ripete moltissime volte, e molto rapidamente, l’analisi delle posizioni e dei pezzi e, dopo aver simulato varie mosse, contromosse e controcontro mosse, suggerisce la mossa statisticamente più utile. Anche l’uomo può fare la stessa cosa, purtroppo dopo aver simulato nel suo cervello alcune mosse/strategie non è capace di andare oltre e spesso dimentica quello che ha esaminato.

I computer di Capo Kennedy che controllano i voli spaziali registrano tutti gli eventi e sulla base di quanto loro insegnato dal “programma” reagiscono ai cambiamenti e prendono nuove decisioni che  un uomo sarebbe capace di prendere dopo ore di riflessione e calcoli, ma che dall’elaboratore possono essere prese ed attuate in qualche frazione di secondo. E questi sono le applicazioni che in qualche modo affascinano, in qualche modo le applicazioni modello “FERRARI”.

Esistono poi le applicazioni tipo “Camion con Rimorchio” cioè elaborazioni capaci di trattare tanti dati simili in breve tempo. Un esempio. Tanti anni fa, quando lavoravo per una Compagnia di Assicurazioni, ogni mese si faceva il Quietanzamento. Un programma leggeva l’archivio dove erano registrate tutti i dati dei clienti, circa un milione, e quando la polizza scadeva, cioè stava per avere termine la sua efficacia, stampava un foglietto, la Quietanza, per chiedere un nuovo pagamento per prolungare la scadenza.

Tutto questo procedimento durava un paio di giorni con impegno umano ridotto solo a impacchettare le Quietanze. Se l’ARCHIVIO fosse stato “manuale”, cioè una serie di righe su svariati libroni, e stimando 10 sec per analisi di ogni polizza e 45 secondi per la scrittura delle quietanze mensili relative al 10% dell’archivio, il lavoro totale sarebbe di oltre 60 gg……senza calcolare gli errori.

Cerchiamo di vedere come erano fatti e come lavoravano i famosi Centri Elettronici per “sbrigare” il lavoro loro richiesto.

All’inizio, centri meccanografici

Le storie che sto per raccontarvi le ho vissute personalmente e probabilmente negli Stati Uniti erano cominciate una ventina di anni prima.

Siamo poco dopo l’inizio degli anni sessanta quando si usavano massicciamente le schede perforate. In quel tempo il Centro Meccanografico era un salone ingombro di schede, macchine e ….rumore dove degli uomini, quasi sempre robusti, con dei camici una volta bianchi maneggiavano le schede e creavano polvere. Nonostante questa descrizione un po’ “infernale” si tiravano fuori tanti risultati che aiutavano a funzionare quasi bene molte società ed industrie.

Le macchine elettromeccaniche erano programmabili, in modo molto elementare, attraverso i “pannelli” che servivano a collegare i vari organi elettromeccanici di calcolo in un modo che potremmo definire flessibile.

In pratica un pannello  era una piastra metallica, grande sino ad 40 cm di lato e pesanti sino a 15 kg, piena di buchetti cui si collegavano dei cavetti di collegamento.

Per capire il funzionamento di un pannello forse è utile un esempio pratico. Se noi apriamo una radio o un televisore vediamo che esistono tutta una serie di “parti elettriche” collegate rigidamente da cavetti. Se pensiamo di tagliare a metà tutti i cavetti e di collegare ciascun capo ad un buchetto del pannello, possiamo ricreare tutti i collegamenti necessari collegando con un altro cavetto esterno i due buchetti “giusti”. Ovviamente per una radio questa operazione è inutile ed un errore potrebbe …..mandare a fuoco il tutto.

Nel caso delle macchine elettromeccaniche questo sistema permetteva di far fare più cose diverse alla macchina. In molti casi il pannello era così complesso da preparare che esistevano pannelli “intoccabili” che venivano tirati fuori da armadi speciali solo al momento dell’uso.

Il pannellista era un “personaggio sacro” del Centro meccanografico in quanto era l’unica persona che conosceva come era fatto un certo pannello…..e la documentazione era, ma tante volte lo è ancora, uno strano attrezzo sconosciuto.

Negli anni 60 i Centri Meccanografici cominciarono ad ospitare anche gli “elaboratori elettronici.

Nel 1965, quando ho cominciato ad avere uno stipendio visto che sapevo qualcosa di elaborazione dati, gli stanzoni pieni di macchine rumorose cominciarono ad essere divisi: da una parte le “vecchie” macchine e dall’altra i nuovi “quasi silenziosi” ELABORATORI ELETTRONICI. Il “quasi silenziosi” è d’obbligo perché queste prime macchine lavoravano solo con le schede e quindi “il lettore”, cioè la macchina che serviva per far entrare (input) i dati, il perforatore, cioè la macchina che preparava nuove schede contenenti risultati intermedi, e la stampante di tabulati, cioè la macchina che stampava i risultati su lunghe strisce di carta larghe circa 50 cm, erano macchine tutt’altro che silenziose e discrete.

Queste prime macchine, che oggi avrebbero solo 50 anni, rispetto agli attuali elaboratori hanno differenze molto più grandi di quelle che una moderna Ferrari F1 ha con il modello di macchina a vapore disegnato da Leonardo.

La sala dell’elaboratore comincio a divenire un luogo “simil laboratorio avanzato” e gli “operatori” cambiarono la divisa: da un camice grigio topo ad un camice bianco quasi da “scienziato”.

Più o meno dalla metà degli anni 60 cominciarono a fare la loro apparizione i nastri magnetici e questa per gli operatori fu una grande conquista in quanto la pratica del sollevamento pesi, per maneggiare le schede, fu, per almeno il 50% del tempo, sostituita da una ginnastica degli occhi dedicati a guardare i nastri che giravano e da brevissimi momenti di cambio del nastro.

Questi primi elaboratori non erano molto potenti e nonostante luci e lucette che li facevano sembrare importanti, erano capaci di fare solo una cosa per volta.

Questo concetto di svolgere sequenzialmente una sola operazione per volta come una semplice macchina utensile sarà rivoluzionato negli anni subito successivi con l’avvento di elaboratori più potenti. I progetti di computer iniziavano a rendersi conto che gli elaboratori elettronici, nonostante fossero utilizzati da operatori bravissimi che li caricavano di lavori uno dopo l’altro, per la maggior parte del tempo……….si riposavano.

All’inizio di queste note abbiamo parlato di unità di misura e di multipli e sottomultipli. Ora quelle nozioni ci sono utili. Negli elaboratori del 1970 per far passare un dato da un supporto esterno, scheda o nastro, all’elaboratore serviva qualche millisecondo (millesimo di secondo) mentre per l’elaborazione all’interno della macchina serviva qualche microsecondo, cioè milionesimo di secondo. Lo stesso rapporto passa tra una ora e circa 42 giorni. Negli anni successivi questo rapporto è aumentato e oggi possiamo dire che è passato da 1 ora a circa 1 anno.

Nel periodo di tempo che serve per far entrare un dato, l’elaboratore “aspetta”.

Gli esperti di programmazione, cioè quei signori che sanno mettere nella sequenza desiderata le funzioni che i vari circuiti elettronici possono fare, cominciarono a pensare come quella gran massa di tempo inutilizzato potesse essere sfruttata facendo viaggiare quasi contemporaneamente due o più programmi e quindi due o più lavori.

La prima cosa che occorreva fare era di progettare un super programma capace di agire come la torre di controllo di un aeroporto. A questa tutti gli aerei in partenza o in arrivo chiedono alcune risorse per un certo tempo, per es. la pista, i corridoi di attraversamento, i moli cui attaccarsi, e la torre di volta in volta assegna temporaneamente le risorse.

Il programma di controllo si chiama sistema operativo che inizialmente controllava 2,3 programmi ed ora è in grado di “far girare contemporaneamente” un numero teoricamente infinito di programmi. Il limite del teoricamente è dovuto al fatto che anche il sistema operativo ha bisogno di risorse e più le richieste di “contemporaneità” aumentano più si aggrava il compito del sistema operativo sino a chè “non sa più a chi dare la precedenza” e da solo si mangia tutte le risorse.

La suddivisione del tempo dedicato all’uso delle varie risorse cioè il “time sharing” è il nome che prende questo tipo di tecnica di sfruttamento delle capacità di un elaboratore.

La possibiltà di far “girare” più programmi insieme era presto condizionata dalle dimensioni della cosiddetta “sala macchine” e dalla limitata disponibilità di organi di input ed output, cioè di macchine capaci di trasformare le informazioni da “umane”, come la scrittura o la voce, a elaborabili, cioè impulsi elettrici. A complicare la faccenda arrivavano macchine sempre più potenti i mainframe, cioè grandi e grandissimi elaboratori capaci di collegare un gran numero di dispositivi di input ed output, ma sempre “locali” cioè rigidamente collegati tra loro a distanza di pochi metri.

Era arrivato il momento di “allungare” gli organi di input ed output.