Therac-25という放射線治療器で死亡事故が起きたバグ.PDP-11のアセンブラで1バイトをフラグにしてインクリメントして256回目に0になったそう、、、
このTweet見た。
人が死ぬバグってあるんだな...今まで平和なプログラミングしかしたことないや。https://t.co/8EtfrW0pvp pic.twitter.com/zF9ZNLfUtu
— Daiius (@DaiiusJmst) 2017年7月17日
えー、死亡事故が起きたバグがあったのか、、、 どんなのか見てみた。 これとか。
このプログラムは1人のプログラマによってPDP-11のアセンブラで書かれています。
セットアップ中、セットアップテストは他のイベントが発生するのを待って
再スケジュールされるため、数百回実行されます。
事故を起こしたコードでは、Class3変数は、セットアップテストを通過するたびに
1ずつインクリメントされます。
class3変数は1バイトなので、最大値255までしか含めることができません。
したがって、セットアップテストコードを256回通過するたびに、
変数はオーバーフローし、0になります。
このとき上部コリメータの障害は検出されません。
ということのようです。
こわーー。C++と直接関係しているというわけではないですが、、、
« なか卯で「5種野菜と唐あげのロカボ担々麺」を食べた。こんにゃく麺だが気にならなくてボリュームもたっぷり。 | トップページ | セブンイレブンで売っている蒙古タンメン中本 北極のカップ麺を食べた。さすがに辛い! »
「日記・コラム・つぶやき」カテゴリの記事
- 京都府では免許の更新時、優良運転者講習がオンラインでできるようになった!早速やってみたが、PCでやろうとするとマイナンバーカードをNFCリーダで読まないとだめで断念、iPhoneはChromeはだめでSafariじゃないと駄目とかいろいろ罠が…でも最終的にはよかった。(2022.05.28)
- Wordleを100回やってみて正解率の分布を見た。1回目で当たる確率をpとして、2回目からはk倍ずつ確率が上がっていく(kp,k²p,k³p…)とすると、私の結果はp=0.0089, k=2.4になった。(2022.05.27)
- 高周波回路シミュレータQucsStudioを使ってみる(その5)マルチポート(4ポートだとs4pみたいな)のSパラメータデータをTouchstoneファイルに出力しようとするとExport to SnPでは2ポートになってしまう。Project→Import Dataからポート数を手で入れないと。(2022.05.24)
- 新型コロナウイルス、日本の陽性者数&ワクチン接種者数総計をプロット&中国、韓国、アメリカ、ドイツ、フランス、イギリスの陽性者数もプロット(5/22更新)どの国もじわじわと増加は続いている。マスクをしなくなったり油断してるからかな…(2022.05.22)
- 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2022年5月19日 IEEE Microwave Magazineで磁性体を使わない非可逆デバイス、Microwave Journalは5Gスモールセル、THz、Movanoがミリ波血圧&血糖値計発表、三菱の3Dプリンタ衛星アンテナ、など。(2022.05.19)
トラックバック
この記事へのトラックバック一覧です: Therac-25という放射線治療器で死亡事故が起きたバグ.PDP-11のアセンブラで1バイトをフラグにしてインクリメントして256回目に0になったそう、、、:
« なか卯で「5種野菜と唐あげのロカボ担々麺」を食べた。こんにゃく麺だが気にならなくてボリュームもたっぷり。 | トップページ | セブンイレブンで売っている蒙古タンメン中本 北極のカップ麺を食べた。さすがに辛い! »
コメント