Quando un bug può uccidere: il Therac-25

Non molto tempo fa ho parlato della definizione di bug e delle sue possibili conseguenze. Uno tra i più gravi fu quello contenuto nel programma del Therac-25, un apparecchio medico per la Radioterapia…

La radioterapia è una terapia medica che consiste nell’utilizzare radiazioni ionizzanti. Questa viene utilizzata nel trattamento di varie forme di tumore, utilizzando un fascio di fotoni per danneggiare il patrimonio genetico delle cellule malate.

Le radiazioni ionizzanti sono in grado di danneggiare direttamente il DNA del tessuto bersaglio. Le cellule tumorali, solitamente, non sono capaci di riparare i propri danni andando quindi incontro a morte cellulare. Per evitare danni ai tessuti sani, i fasci delle radiazioni sono rivolti da diverse angolazioni, per intersecarsi nel centro della zona da trattare.

Il Therac-25, prodotta dalla canadese AECL, fu la causa di almeno sei incidenti avvenuti tra il 1985 e il 1987 nel quale fu somministrata una dose di radiazioni superiore di 100 volte. Questo causò un avvelenamento da radiazioni e il decesso di tre dei sei pazienti.

Le cause

Le cause principali erano imputate ad un programma scritto e sviluppato male. Il linguaggio scelto fu l’Assembly: complesso e con una capacità di risolvere gli errori abbastanza complicata.

Gli investigatori trovarono anche altre cause:

  • La AECL non fece controllare il codice da un organismo indipendente
  • La AECL non considerava l’idea di progettare il programma su come comportarsi in caso di errore
  • Il sistema rilevava un malfunzionamento arrestando l’emissione di raggi X e mostrando solamente la scritta “MALFUNCTION” seguita da un numero compreso tra 1 e 64. Il manuale non specificava l’ errore abbinato al numero, così l’operatore, ignaro di tutto, premeva il tasto “P” (ignora) e proseguiva la terapia.
  • Il personale della AECL, così come gli operatori sanitari, inizialmente non credevano che vi fossero problemi
  • L’AECL non ha mai testato il programma per il Therac-25 con la macchina operativa. Lo faceva solo fino a quando il tutto non veniva montato in ospedale.

I moderni macchinari, ovviamente, scritti in linguaggi nel quale è più facile rilevare degli errori e con meccanismi di protezione evitano questo genere di problemi. Ovviamente, se fosse stato scritto in modo migliore e controllato non sarebbe andata così. Per fortuna, il caso del Therac-25 viene considerato come raro.

 

Fonte delle informazioni: (Wikipedia.org – L’enciclopedia libera)
Francesco Grecucci

Sono nato a Taranto e mi sono diplomato in Informatica e Telecomunicazioni. Ho questo blog dal 2016 e cerco sempre di migliorarlo, ogni giorno. Mi piacciono molto anche la musica, il vintage, le fotografie. Amo molto scrivere, non solo di informatica, ma anche di narrativa. 😉

Francesco Grecucci

Francesco Grecucci

Sono nato a Taranto e mi sono diplomato in Informatica e Telecomunicazioni. Ho questo blog dal 2016 e cerco sempre di migliorarlo, ogni giorno. Mi piacciono molto anche la musica, il vintage, le fotografie. Amo molto scrivere, non solo di informatica, ma anche di narrativa. ;)