Originariamente pubblicato in data 03/02/2004
A
C
C
O
M
A
Z
Z
I
Spirit of debugging
Spirit of debugging
I problemi incontrati dalle sonde Nasa che esplorano Marte dal gennaio 2004, e il metodo utilizzato per arrivare alla soluzione dellenigma
Se un calcolatore che dovrebbe spedirvi informazioni non risponde correttamente, voi potete alzarvi dalla sedia e andare a vedere che cosa succede. Questa opzione però si dimostra inapplicabile se il computer si trova in questo istante su Marte. Così, quando il robottino Spirit si è scollegato durante il trasferimento di una immagine [1] il 21 gennaio e ha completamente evitato di connettersi per l'invio programmato per il giorno dopo, gli informatici della Nasa hanno dovuto spremersi seriamente le meningi.Dentro alle sonde-robot gemelle, Spirit e Opportunity, si trova un piccolo personal computer dotato di 128 MB di memoria di lavoro RAM e 3 MB di memoria permanente, sulla quale è stata incisa prima della partenza una copia delle istruzioni di base. Il programma che dirige le sonde si chiama Maestro: chi è interessato può scaricarne gratuitamente una copia da Internet [2] (è disponibile per tutti i sistemi operativi), e caricare una copia integrale dei dati presenti nella memoria di Spirit, che la Nasa rende periodicamente disponibile, in modo da simulare perfettamente la situazione, cimentarsi con la configurazione dei robot e vedere esattamente tutto ciò che vedono gli scienziati.
Il processore di bordo è un PowerPC (lo stesso utilizzato nei Macintosh) Rad6000, una variante progettata per resistere agli estremi di calore e radiazione che le macchinette incontrarono nello spazio e quelli a cui sono soggette sulla superficie del Pianeta Rosso. Di notte su Marte si possono toccare in basso i -105 gradi di temperatura, anche se un termosifoncino elettrico di bordo riscalda le Rover mantenendo i circuiti nel relativo tepore rappresentato da soli venti gradi sotto zero. Il processore viaggia a soli 20 MHz, che sarebbero pochissimi per un moderno personal computer da tavolo, e non è dotato di disco rigido che non sarebbe sopravvissuto all'atterraggio ma montano invece una flash memory da 256 MB, un supporto simile a quello che troviamo al cuore delle macchine fotografiche digitali.
Subito al di sopra della scatoletta riscaldata che alloggia l'elettronica di bordo, sul ponte delle vetturette (sono lunghe 1,60 metri e pesano 174 chilogrammi ciascuna) sono fissate le antenne. La prima comunica con i satelliti artificiali in orbita attorno a Marte usando le frequenze dell'UHF, le stesse che noi impieghiamo per la televisione. La antenna principale invia informazioni direttamente verso la Terra, a 11.000 bit per secondo solo un quinto della velocità che si raggiunge con un comune modem quando connettiamo un PC a Internet attraverso la rete telefonica. La antenna di riserva, dal canto suo, raggiunge solo i 300 bit/secondo.
All'inizio, gli ingegneri americani e quelli australiani (l'antenna corrispondente sulla Terra, di ben 76 metri di diametro, si trova a Camberra) avevano semplicemente pensato che fossero le difficili condizioni meteorologiche imperanti sull'Australia a creare disturbi elettromagnetici. Quando si è reso conto che il robot non inviava affatto, però, il team della Nasa ha temuto un guasto all'antenna principale e inviato nuovi ordini a Spirit contattando l'antenna secondaria. Il rapporto di status con cui la sonda ha risposto era invece smagliante il robot rispondeva correttamente e tutti i sottosistemi sembravano funzionare ma ogni pochi minuti avveniva un errore imprevisto nella elaborazione dei dati, e la sonda rispondeva (come da programmazione di base) riavviandosi da zero, come se fosse appena atterrata. Il problema era serio e andava anche risolto in fretta, perché i continui riavvii consumavano più energia di quanto i pannelli solari riuscissero a recuperare. Una serie di tentativi appurava che l'errore avveniva quando Spirit cercava di registrare nella flash memory l'immagine catturata dalla fotocamera di bordo: eppure, la memoria libera a disposizione era più che sufficiente. Solo 224 MB su 256 erano occupati.
Gli informatici della Nasa hanno allora riprogrammato Spirit in modo che non utilizzasse la flash memory. Le immagini venivano catturate nella memoria principale, trasmesse verso Terra e la copia locale veniva immediatamente cancellata per fare spazio alla prossima cattura. Siamo al 30 gennaio: la sonda ricomincia a funzionare seppure in modo limitato e i programmatori sono quasi certi nell'attribuire tutti i problemi a un guasto fisico nella memoria di massa. Approfittando delle tre "finestre" giornaliere (ogni otto ore circa la sonda e la base terrestre sono in vista l'una dell'altra e possono scambiarsi informazioni) nel giro di qualche giorno il team statunitense è riuscito a farsi spedire una copia di ogni singolo bit nella memoria... e ha scoperto con stupore che la flash memory funzionava benissimo. Ma a questo punto (e siamo arrivati al 2 febbraio) il problema si è quasi risolto da solo, perché è stato facile notare che i documenti registrati in memoria erano esattamente 65.535. Un numero magico, per gli informatici, equivalente a 99.999.999 per chi lavora con una calcolatrice da tavolo. Il software, insomma, aveva un limite superiore al numero di distinti documenti che poteva memorizzare dentro alla flash memory. E così gli informatici della Nasa si sono ridotti a fare quell'umile lavoro che spetta a chiunque usi un calcolatore per un po' di tempo: passare in rassegna il catalogo dei file e rimuovere quelli che non servono più. Il 3 febbraio 2004 Spirit ha ricominciato a funzionare perfettamente e l'informatica si è confermata essere non una scienza esatta, ma un'arte...
1) http://marsrovers.jpl.nasa.gov
2) http://mars.telascience.org