Tecnologia

Incertesa en la informàtica? I ara?
Have you tried to turn it off and on again?

M. Fàbregas
Departament d'Arquitectura i Tecnologia de Computadors

Possiblement, l'àmbit de la informàtica és un d'aquells a què es pot aplicar amb més propietat el concepte d'incertesa. La tècnica informàtica és una de les poques tecnologies que sovint admeten com a solució el plantejament indicat en el títol de l'article. Has provat d'apagar-lo i tornar-lo a engegar altre cop? Sembla que la informàtica, per defecte, ha de fallar, i en canvi és una tecnologia de la qual ens refiem molt si mirem la utilització que fem de les aplicacions que ens ofereix. A vegades ens fa pensar que funciona perquè el “gurú” del sistema, segurament l'administrador, hi prem les paraules màgiques o hi modifica el component estrany i —oh, sorpresa!— tot torna a funcionar. On és la incertesa en l'ordinador? Ens la podem permetre? Com la podem reduir?
Comencem parlant del hardware, sí, del maquinari, la part dels “ferros” de la màquina. El hard avui basa el seu funcionament majoritàriament en circuits electrònics i alguns elements mecànics, encara que cada vegada en conté menys. La tendència a la miniaturització dels equips ha fet que cada cop més tant la part electrònica com la mecànica siguin més petites i, al mateix temps, les millores en la tecnologia les fan més fiables.
L'ordinador és una màquina molt complexa i amb molts components. Els primers ordinadors no podien garantir gaires hores continuades de funcionament; les làmpades (vàlvules) que el componien tenien, i no sempre, només unes hores de durada garantida —ja se sap, eren bombetes, i les bombetes es fonen—. Un ordinador com l'Eniac (1943) portava 17.648 vàlvules, 1.500 relés i 6.000 interruptors manuals, les 30 tones que pesava i els seus 160 Kw de consum ja feien preveure que no se’n podia garantir el funcionament continuat durant gaire estona.
La simplificació dels components gràcies a l'aparició dels transistors va fer augmentar la fiabilitat dels sistemes, però, al mateix temps, la millora en el disseny dels circuits també va fer augmentar ràpidament el nombre de components. En molt poc temps, els transistors s'agrupen en circuits integrats —els xips—, i dels xips amb algunes desenes de components es passa ràpidament als circuits complexos amb centeners o milers de transistors integrats. Però no ens escapem de la incertesa del funcionament dels xips actuals, perquè l'evolució en les tecnologies de fabricació dels transistors, que ha comportat la reducció dràstica de la taxa d'errors en incrementar tant el nombre d'elements integrats (Moore diu que cada dos anys la mida dels components es redueix a la meitat), fa que la probabilitat d'error en els circuits no millori gaire. Avui se sobrepassen els milions de transistors integrats en una superfície insignificant. Sabem, per exemple, que el xip del microprocessador i7 té integrats 1.900 milions de transistors en tecnologia de 45 nm, i ara ja es treballa amb tecnologies de 32 nm.
Continuem encara amb el maquinari. L'augment de velocitat en els processadors comporta nous focus d'incertesa en afegir-hi consideracions electromagnètiques. Avui, un processador de gamma mitjana funciona a centenars de Mhz o a algun Ghz de velocitat, i si recordem les idees bàsiques d'electromagnetisme —les equacions de Maxwell— podem calcular ràpidament que a 2,5 Ghz, una pista oberta de circuit imprès de menys de 3 cm o un tros de fil penjat es comporten com antenes que radien l'energia, cosa que fa que es puguin “perdre” els bits pel camí.
I les interferències de radiacions externes
I ...
I del software? Parlem una mica del programari. No comentem els programes que fallen per mala praxis en la programació, perquè avui, no cal saber gaire informàtica per autoanomenar-se programador, i si a més es té alguna noció de programació o del funcionament de les màquines, ja es pot passar per dissenyador de sistemes. És clar que potser no se sap que cal recuperar la memòria de les variables emprades, que es pot bloquejar la màquina si sobrepassem el nombre de processos, que es pot sobrepassar la pila, o posats que surtin “imprevistos”, encara hi ha una cosa més greu, que fem servir un sistema operatiu —el programa que controla la màquina— que ja ve, de disseny, carregat d'errors.
I les actualitzacions, per exemple, del software? Normalment partim d'uns programes bastant coneguts, amb versions correctes i fixades, amb errors parcialment coneguts, i quan quasi els dominem, apareix la nova versió, i és clar, tornem a començar de zero, perquè no podem continuar suposant el mateix que sabíem de la versió antiga. Possiblement, coses que fallaven en la versió anterior ara funcionen correctament, però potser algunes d'aquelles que funcionaven, ara simplement no van, i torna la incertesa, perquè l'actualització del programari és continua.
La cosa es complica quan actualitzem el maquinari, perquè el nou hardware possiblement té components nous que el software anterior no suporta, i cal dissenyar programes de control (drivers) nous amb totes les incompatibilitats, i cal trobar possibles errors (bugs), i... També les màquines noves presenten incertesa i normalment no hi ha temps per adaptar-te (4 o 5 anys, com a màxim). Quatre anys un ordinador? Quina antigalla! Perquè la major part del software i del hardware de què disposes en aquest temps ja hauran perdut el suport del fabricant-venedor, perquè ja ha tret actualitzacions noves que no van amb les màquines antigues. Més incertesa!
És clar que en l’àmbit professional les coses estan millor. Sabies que les màquines que han de garantir al màxim el seu funcionament, les que “parar la màquina” pot representar complicacions greus, tenen duplicats la majoria dels components? Un dels elements que més pot fallar és la font d'alimentació. Qualsevol màquina una mica fiable la porta duplicada o triplicada i, si es pot, amb commutació automàtica quan falla una part. Els sistemes amb més d'un processador ja fa molts anys que són al mercat i els sistemes d'emmagatzamament redundants, que permeten substituir discs en la màquina sense haver-la d’aturar (sistemes RAID) ja fa molts anys que funcionen (1987).
Potser has sentit a parlar del cloud computing, de l’elastic computing. Aquí, d'incertesa en les dades, segurament no n’hi ha gaire, perquè saps com funciona? Intento comentar-ho. Algú munta la seva aplicació sobre un sistema distribuït, normalment un servidor web i una base de dades. El servidor web, valgui la redundància, dóna servei distribuït en diferents màquines i des de diferents llocs de la xarxa, d'aquesta manera es garanteix que si una màquina s'espatlla es continua servint l'aplicació. La base de dades també està muntada de forma distribuïda, de manera que els registres poden estar a qualsevol lloc del món. Els sistemes acostumen a ser redundants, i aplicacions i dades tenen força garantia de no perdre's. L'usuari lloga una quantitat de núvol per a la seva aplicació i les seves dades, i les hi posa. Ara, aplicacions i dades estan... “a la xarxa”, com diria l'humorista, “de campamentos”. Estan bastant segurs —se suposa—, però saps físicament on són? A quina màquina? Segurament el propietari del núvol podria seguir-les, però segur que aquell punt d'incertesa no et deixarà pel fet de no saber on són realment?
I no hem parlat dels errors més freqüents, els errors humans, els que habitualment generen més incertesa, els que fem en muntar, instal•lar, programar o fer funcionar les màquines. Mirem-ho com un examen de consciència: no has esborrat mai un fitxer que no havies d'haver eliminat? O potser... descuides fer còpies de seguretat? Has oblidat mai algun aspecte important en l'anàlisi del sistema que has de programar? O si per seguretat s'ha muntat un sistema redundant amb dos subministradors d'energia diferents per garantir l'alimentació del sistema, no has endollat les dues màquines a la mateixa línia? No, és clar, els errors humans no els podem incloure a la nostra llista d'elements d'incertesa específics de la informàtica. Hi poden ser en totes les activitats, simplement intentem minimitzar-los, però sempre ens queda aquell punt d'incertesa...
I saps molt bé que, malgrat tot, te'n refies.
I que funciona!
I fins i tot, que funciona bé!
I si no... has provat de parar-lo i tornar-lo a engegar altre cop?