Смертельная ошибка в ПО аппарата Therac-25: как 40 лет назад программный баг унёс жизни пациентов

/ НаукаНовости / Наука

Программные ошибки обычно доставляют неудобства и отнимают время, но редко приводят к смертельным исходам. Однако в 1985 году аппарат для лучевой терапии Therac-25 начал свою печально известную серию инцидентов. Ошибка в его программном обеспечении вызывала опасное состояние гонки (race condition), в результате чего как минимум шесть пациентов получили дозы радиации, в 100 раз превышающие норму. Трое из них скончались.

Therac-25 казался медицинским учреждениям привлекательным аппаратом благодаря революционным двойным режимам лечения в одном компактном устройстве. Он мог использоваться для электронной лучевой терапии поверхностных тканей (например, при раке кожи) и для мегавольтной рентгенотерапии глубоко расположенных опухолей. Перепутать эти режимы было смертельно опасно.

Переход на программное управление

Одной из инноваций Therac-25 стал переход исключительно на программное управление. Более ранние модели имели электромеханические аппаратные блокировки, предотвращавшие радиационные аварии. Например, Therac-20, как утверждается, имел те же программные ошибки, что и Therac-25, но аппаратное обеспечение блокировало небезопасные условия работы даже при сбое ПО.

В статье магистра компьютерных наук Калифорнийского политехнического университета Энн Мари Поррелло подробно описывается природа ошибки и произошедшие инциденты. Для проявления этого смертельного бага оператор Therac-25 обычно ошибался в выборе режима работы и быстро пытался исправить ошибку. Опытный оператор мог редактировать параметры лечения так быстро, что программное обеспечение пропускало проверку безопасности из-за «состояния гонки» между обработчиком ввода и логикой управления лучом.

Ключевым моментом было то, что Therac-25 требовалось около 8 секунд для смены режима излучения, и быстрые действия оператора в этом временном окне могли вызвать путаницу в программном обеспечении.

Сводка радиационных аварий Therac-25, таблица Энн Мари Поррелло
Дата аварииМесто аварииХарактер травм пациентаМесяцев после первой аварии
3 июня 1985Мариетта, ДжорджияУдаление груди, потеря функции рукиСтрока 1 - Ячейка 3
26 июля 1985Онтарио, КанадаПотребовалась полная замена тазобедренного сустава1
6 января 1986Якима, ВашингтонНезначительная инвалидность и рубцы7
21 марта 1986Тайлер, ТехасСмерть9
11 апреля 1986Тайлер, ТехасСмерть10
17 января 1987Якима, ВашингтонСмерть19

Первый задокументированный инцидент произошел в июне 1985 года, последний — в январе 1987 года. Производитель Therac-25, компания AECL, месяцами отрицала свою вину и начала тщательное расследование только весной 1986 года. К тому времени к расследованию подключилось FDA (Управление по санитарному надзору за качеством пищевых продуктов и медикаментов США).

После череды смертельных случаев, связанных с Therac-25, появились призывы к формальной верификации, тщательному тестированию и улучшению документации для всего медицинского программного обеспечения. Проблемы Therac-25 стали поучительной историей, которую часто изучают в курсах компьютерных наук.

Источник: Tomshardware.com

Подписаться на обновления Новости / Наука
Зарегистрируйтесь на сайте, чтобы отключить рекламу

ℹ️ Помощь от ИИ

В статье есть ошибки или у вас есть вопрос? Попробуйте спросить нашего ИИ-помощника в комментариях и он постарается помочь!

⚠️ Важно:

• AI Rutab читает ваши комментарии и готов вам помочь.
• Просто задайте вопрос 👍
• ИИ может давать неточные ответы!
• ИИ не скажет «Я не знаю», но вместо этого может дать ошибочный ответ.
• Всегда проверяйте информацию и не полагайтесь на него как на единственный источник.
• К ИИ-помощнику можно обратиться по имени Rutab или Рутаб.

Топ дня 🌶️


0 комментариев

Оставить комментарий


Все комментарии - Наука