[ad_1]
به گزارش دلچسب
چهل سال پیش یک باگ نرمافزاری در دستگاه پرتودرمانی Therac-25، جان چند انسان را گرفت. این نقص فنی علتشد حداقل شش بیمار دوزهای پرتویی ۱۰۰ برابر نیرومندتر از حد مجاز دریافت کنند و درنهایت حداقل سه نفر جان باختند. این فاجعه به یکی از با اهمیت ترین داستانهای هولناک در تاریخ مهندسی نرمافزار تبدیل شد.
دستگاه Therac-25 در زمان خود یک نوآوری بزرگ محسوب میشد. این دستگاه میتوانست دو نوع پرتودرمانی کاملاً متفاوت انجام دهد: یکی پرتودرمانی با الکترون برای تومورهای سطحی و فرد دیگر پرتودرمانی با اشعه ایکس قوی برای تومورهای عمیق. اما بزرگترین نوآوری و درعینحال، پاشنه آشیل آن، حذف قفلهای ایمنی سختافزاری می بود. در مدلهای قدیمیتر همانند Therac-20، حتی اگر نرمافزار دچار اشتباه میشد، مکانیسمهای فیزیکی از فعالشدن پرتو خطرناک در شرایط ناامن جلوگیری میکردند. اما در Therac-25 همه کنترلها به نرمافزار واگذار شده می بود و این یعنی یک باگ کوچک میتوانست فاجعه به بار آورد.
باگ نرمافزاری مرگبار در دستگاه Therac-25
به گزارش Tom’s Hardware، این فاجعه ناشی از یک نوع باگ نرمافزاری پیچیده به نام «شرایط مسابقه» (Race Condition) می بود. این باگ فقط تحت شرایطی خاص و توسط اپراتورهای باتجربه و سریع فعال میشد. سناریوی مرگبار وقتی بهوجود میآمد که اپراتور به نادرست حالت درمانی اشعه ایکس (حالت پرقدرت) را انتخاب میکرد. سپس، قبل از این که سیستم بهطور کامل آماده شود، اپراتور به شدت فهمید نادرست خود میشد و حالت را به پرتو الکترونی (حالت کمقوت) تحول میداد.
از آنجایی که اپراتور زیاد سریع خطای خود را اصلاح میکرد، نرمافزار دچار سردرگمی میشد. در این حالت، قسمت کنترلر ورودی دستور تازه (حالت کمقوت) را ثبت میکرد، اما قسمت کنترلر پرتو، تا این مدت درحال آمادهسازی برای حالت پرقدرت قبلی می بود. در نتیجه این تداخل وقتی، دستگاه پرتو الکترونی پرقدرت را بدون فعالکردن سپر محافظ ملزوم، شلیک و دوز کشندهای از تشعشع را مستقیماً به بیمار منتقل میکرد.
بین ژوئن ۱۹۸۵ تا ژانویه ۱۹۸۷، حداقل شش حادثه مستند از این نوع رقم خورد که تبدیل جراحات شدید و مرگ سه بیمار شد. در ابتدا، شرکت سازنده (AECL) هرگونه نقص در سیستم خود را تکذیب میکرد، اما با افزایش تعداد قربانیان و اغاز تحقیقات سازمان غذا و داروی آمریکا (FDA) سرانجام ناچار به پذیرفتن مسئولیت و بازبینی کامل سیستم خود شد.
| تاریخ حادثه | مکان حادثه | شدت جراحات بیمار |
| ۳ ژوئن ۱۹۸۵ | ماریتا، جورجیا | برداشتن سینه، از کار افتادن بازو |
| ۲۶ ژوئیه ۱۹۸۵ | انتاریو، کانادا | نیاز به معاوضه کامل مفصل ران |
| ۲۱ مارس ۱۹۸۶ | تایلر، تگزاس | مرگ |
| ۱۱ آوریل ۱۹۸۶ | تایلر، تگزاس | مرگ |
| ۱۷ ژانویه ۱۹۸۷ | یاکیما، واشنگتن | مرگ |
از آن زمان تا بحال، فاجعه Therac-25 به یک نمونه کلاسیک در مطالعات علوم کامپیوتر و مهندسی نرمافزار تبدیل شد. این حادثه بر اهمیت آزمایشهای دقیق، مستندسازی کامل و وجود سیستمهای ایمنی چندلایه (سختافزاری و نرمافزاری) پافشاری میکند.
دسته بندی مطالب