A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ricardo Campos, 18 de Junho de 2004

Apresentações semelhantes


Apresentação em tema: "Ricardo Campos, 18 de Junho de 2004"— Transcrição da apresentação:

1 Ricardo Campos, 18 de Junho de 2004
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Acidentes originados por falhas de software Therac -25 Ricardo Campos, 18 de Junho de 2004

2 Agenda  Programação Concorrente  Therac-25
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Agenda  Programação Concorrente  Therac-25

3 Programação Concorrente
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Programação Concorrente

4 Programação Concorrente
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Programação Concorrente O que é um programa concorrente? Um programa sequencial tem uma única thread de controlo Um programa concorrente tem múltiplas threads de controlo que lhe permitem executar várias tarefas em paralelo

5 Programação Concorrente
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Programação Concorrente O que é uma thread? Um fio de execução. Cada thread tem a sua própria pilha, mas partilha o código e a memória com as restantes threads do mesmo processo Código Memória pilha pilha

6 Programação Concorrente
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Programação Concorrente Porquê a programação concorrente? Ganhos de performance Aumento da rapidez de resposta ao utilizador

7 Programação Concorrente
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Programação Concorrente Problemas A concorrência é muito utilizada, mas extremamente propensa a erros Mars Rover Therac - 25

8 Therac - 25 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25

9 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Cronologia 1970 AECL e uma companhia francesa, desenvolvem o Therac-6 e o Therac-20 1983 Anunciado o desenvolvimento do Therac-25 1984 Implementado o Therac-25 1985 – 1987 Vários pacientes recebem doses excessivas durante o tratamento

10 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Introdução Visto até hoje, como o incidente mais trágico relacionado com a morte ou ferimentos em seres humanos, por causa directa de falhas em software o caso serve para lembrar: no momento em que confiamos a vida e a saúde das pessoas a computadores, a importância da eliminação de bugs é questão de vida ou morte. Entre Junho de 1985 e Janeiro de 1987, seis pacientes receberam doses exageradas de radiação enquanto recebiam tratamento do acelerador linear médico Therac-25. 4 dos pacientes morreram

11 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Conceito A terapia de radiação é usada para tratar tumores e consiste em destruir o cancro entregando uma dose cuidadosamente calculada de radiação ao tumor, enquanto é minimizada a radiação do tecido circunvizinho Em tratamentos simples, são aplicados doses na ordem dos 200 rads (dose de radiação absorvida)

12 Therac - 25 Funcionamento
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Funcionamento O Therac-25, antecedido da versão 20, aplicou mais de radiações com sucesso em cerca de 500 pacientes Consistia de uma máquina, instalada numa sala de tratamento e controlada através de software, monitorizado por um operador numa sala contígua

13 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Era uma máquina, com funcionamento em ‘modo-dual’, o mesmo acelerador gerava dois tipos diferentes de raios: Raios-x para tumores profundos Raios de electrões para tumores superficiais Assentava numa plataforma giratória (que rodava para a posição correcta antes do início do tratamento), com 3 posições: modo electrões modo raio-x operação luz de campo

14 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 O operador sentado numa mesa de controlo (fora da sala de tratamento) confirmava um a um, os parâmetros previamente inseridos na sala de tratamento Uma vez este processo concluído, o operador digitaria o programa de tratamento previamente prescrito: ´x´ para raios X ´e´ para electrões

15 Therac - 25 Modo Electrões
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Modo Electrões A energia do raio era fixada num valor apropriadamente baixo Um conjunto de ‘scanning magnets’ era usado para espalhar o raio

16 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 O problema com os raios de electrões, é que difundem rapidamente e não conseguem penetrar mais profundamente para outro tipo de tratamentos que não sejam os superficiais Para resolver este problema, o Therac-25 funcionava como referido anteriormente em dual- mode no qual os raios-x (fotões) são usados para tratamentos mais exigentes

17 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Modo Raios-X Para funcionar em modo de raio-x, um direccionador de tungsténio e um ‘aplanador de raio’ eram movidos para a base do raio de electrões Debaixo desse feixe de electrões, o aparelho criava os raio-xs No entanto, a potência destes raios-x produzidos é muito fraca Por isso a intensidade dos electrões tinha que ser massivamente incrementada em cerca de 100 vezes mais, do que durante um tratamento de electrões

18 Therac - 25 Acidente – Causa 1
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Acidente – Causa 1 O operador digitava a tecla ‘X’ em vez da tecla ‘e’ Administrava assim uma dose de radiação cerca de 100 vezes superior ao máximo, que o corpo humano podia aguentar naquela zona de acção Apercebendo-se do facto e para corrigir o problema, o operador, movia o cursor para cima no monitor com a tecla ‘seta para cima’ e em modo de edição corrigia as entradas erradas o campo modo, tecla ‘e’ o campo energia

19 Therac - 25 Depois de tudo verificado era dado início ao tratamento
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Depois de tudo verificado era dado início ao tratamento Aparentemente tudo funcionava na perfeição O erro continuou ignorado

20 Therac - 25 Acidente – Parte Técnica
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Acidente – Parte Técnica Definir na posição correcta as várias partes do scanning magnet levava cerca de 8 segundos A rotina Ptime era executada tantas vezes quantas as partes do scanning magnet a posicionar A flag Bending Magnet era iniciada na sub-rotina Magnet e limpa no final da sub-rotina Ptime Ptime verificava uma variável partilhada que indicava a presença de algum pedido de edição por parte do operador

21 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Se houvesse uma alteração do modo de operação de ´x´ para ´e´ o posicionamento dos magnets era interrompido O problema é que Ptime aquando da sua primeira execução (tantas quantos os magnets a posicionar), limpava a flag e dessa forma, tornava-se impossível entrar no ciclo e verificar alguma alteração Como o operador corrigia os dados em menos de 8 seg. (o tempo que levava a configurar os scanning magnets), o software não aceitava o valor de energia corrigido e deixava-o em 25MeV

22 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 A “limpeza” da flag bending magnet deveria pois ser feita no fim do posicionamento de todos os magnets ao invés de ser feito no final de cada ciclio de ptime.

23 Therac - 25 Acidente – Causa 2
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Acidente – Causa 2 Havia no software uma parte do programa (tarefa Hkeper) que continuamente verificava o correcto posicionamento da plataforma giratória (turntable/collimator). Essa verificação era feita com base numa variável partilhada (Class3), incrementada (tarefa Treat) a cada fase da verificação das várias rotinas Valor zero no contador (variável Class3), indicava ao operador a correcta configuração dos parâmetros

24 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Depois de definir a variável Class3, a rotina verifica por alguma “Malfunction” (valor diferente de zero) no sistema usando outra variável partilhada (FSmal) A questão é que esta verificação só era feita se o valor da variável Class3 não fosse zero

25 Therac - 25 Acidente – Causa 2
Universidade da Beira Interior Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Acidente – Causa 2 Como a variável do contador (Classe3) tinha apenas 1 byte, 255 era o valor decimal mais elevado que o contador (incrementado a cada fase da verificação das várias routinas) poderia registar Se o programa fizesse 256 verificações, o contador automaticamente ficava com o valor zero A verificação Chkcol não era feita e o software passava a ideia de uma segurança inexistente

26 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 A plataforma não estaria na posição correcta e o operador se iniciasse o tratamento naquele momento injectaria no paciente uma dose demasiado elevada de electrões

27 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 Conclusão O Therac-25 era olhado como uma máquina extremamente fiável, que custava milhões de dólares, ocupava uma sala inteira, e tida como o sonho de qualquer médico. Gradualmente, os médicos foram tirando impressões entre eles e chegaram à conclusão do mau funcionamento da máquina Este triste exemplo ilustra bem o perigo de software defeituoso Em cada um dos diferentes tipos de acidentes, o raio de electrões foi aplicado na máxima força (25 MeV, como seria apropriado para modo de raio-X) directamente ao paciente

28 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 A aplicação de doses excessivas, apesar de envolver erros por parte do operador ocorriam por causa de erros no software Therac-25 e porque a equipa de desenvolvimento não seguiu as práticas correntes da engenharia de software O desenho do software do Therac-25, suportava um ambiente multi-tarefa e o software permitia acesso concorrente a variáveis partilhadas Esta precária implementação, causou a falha da máquina perante determinadas condições O sistema da máquina tinha erros ocasionados por execuções concorrentes de tarefas.

29 Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Therac - 25 A programação concorrente é muito utilizada mas extremamente propensa a erros (maioritariamente devido a uma cultura de programação sequencial) Desde o princípio dos anos 90, particularmente após o despenho do Ariane 5, o interesse em tácticas de desenvolvimento que previnam bugs, renovou-se Implementaram-se assim: técnicas de programação; metodologias de desenvolvimento e melhorias nas linguagens de programação

30 Bibliografia On-line Universidade da Beira Interior
Mestrado em Eng.ª Informática Sistemas Distribuídos e Tolerância a Falhas Bibliografia On-line Nota: Não é possível garantir a existência futura dos endereços (URL’s), citados nos recursos on-line. Como se sabe, os endereços são virtuais e a sua vida útil depende única e exclusivamente dos seus autores e proprietários.


Carregar ppt "Ricardo Campos, 18 de Junho de 2004"

Apresentações semelhantes


Anúncios Google