computerの日記

Cisco,SHELL,C,Qt,C++,Linux,ネットワーク,Windows Scriptなどの発言です

なぜコンピュータはクラッシュするのか(翻訳)

翻訳
Why do computers crash?

https://www.scientificamerican.com/article/why-do-computers-crash/

なぜコンピュータがクラッシュするのか。

電源部 (Power Unit) の不良:

交流を直流に変換しているが、それがおかしくなると、電源部がノイズを含んだシグナルを発するため、コンピュータがクラッシュする可能性がある。

RAM (Random Access Memory) の不良:

特に高温になると、RAM に保存されている内容が、破壊される可能性があり、コンピュータがクラッシュする可能性がある。

CPU (Central Processing Unit) の不良:

CPU も、高温になると、コンピュータがクラッシュする原因となる。大きな音を発するファンは、これを防ぐためにあるのだが、しばしばファンが回らなとかがある。
ファン自体が、埃やダストを筐体に吸い込んでしまう、ということもある。このダストが、舞い上がることにより、回路がショートすることが起こり、コンピュータがクラッシュする原因ともなり得る。
エアコンプレッサーでダストを吹き飛ばしたり、バキュームクリーナーで吸い込んだりして防ぐことができる。

その他の問題は、トリッキーであり、ソフトウェアのテストや、器材の部品交換によらなければわからない。

もっと永続的な障害は、コンピュータのディスクにおいて発生する。
システム情報を含んだセクタに障害が発生すると、コンピュータがクラッシュする原因となる。

ハードウェアエラーがコンピュータのクラッシュの原因と成りうるが、OS のソフトウェアのエラーによっておこるクラッシュが最も多い。

OS は、ユーザにコンピュータを使用させるインタフェースを提供しているだけではない。
アプリケーションとハードウェアの間の永続的インタフェースを提供しており、異なるプログラム間で、システムのリソースを共有する働きをしている。
その結果、いくつかのエラーが発生する可能性がある。
もっともよくあるものは、OS が誤ったメモリアドレスにアクセスしようとした際に発生する誤動作であり、プログラミングのエラーの結果であろう。
ウィンドウズにおいては、GPF(General Protection Fault) として知られている。
その他のエラーは、OS を無限ループに陥れ、コンピュータが同じ命令を何度も何度も実行して、そこから抜け出すことができなくなり、どんな入力をも受けつけなくなり、リセットするしかなくなる、という状態もある。
その他の問題の可能性もあり、それは、ほとんどないとは考えられるが、メモリバッファにバグ情報を書き込んでしまう、という可能性である。
バッファの限界を「超えて」メモリに書き込まれるという問題もある。
これら同様のエラーは、アプリケーションプログラムのいて発生する可能性がある。
最新の OS は、アプリケーションクラッシュに堅牢であろうが、古いシステムは、このようなバグがシステム全体のクラッシュへとつながる場合がある。
新しい OS 自体は、丁寧に作られており慎重にテストもされている傾向にあるため、比較的安定しているが、プリンタドライバ等、追加のデバイスを使用させるためのドライバ等には、クラッシュの元となる場合がある。
このために、ほとんどの新しい OS は、特別のブートモードにおいて、ドライバをロードさせないのである。
ドライバは、後で、一つ一つ、どのドライバでエラーが発生したかがわかるように、ロードされる。

OS は、それ自身のシステムリソースを正しくマネージすることのジョブに失敗すると、クラッシュする。
OS がデッドロックの状態になることはあり得る。というのも、多くのプログラムが、他のプログラムが必要とするリソースを制御するということが起こりうるからである。
スイッチングは、時間がかかる(メモリ情報がディスクから読み込まれディスクに書き込まれる)ため、マシンがスラッシュする(プログラムを出し入れするだけで、生産的な処理がなにも実行されない)可能性がある。
スラッシングが発生しているマシンは、遅い又は反応がない状態になっているが、ディスクが動作しており、一般的に、その状態から抜け出すのに数分間はかかる状態である。

スラッシングは、メモリスペースの回収・配分が正しくできていないことを示しています。
OS がプログラムを実行する時は、メモリを配分します。OS は、プログラムが停止するときに正しくメモリを回収できない。
そうなると、OS の内部上方では、ほとんど使用できるメモリがない、と出てしまう。
コンピュータは、異なるデバイスが同一の内部 ID を使用しようとして、クラッシュすることがある。
これらの種類のクラッシュは、あたらしいハードウェアをシステムに追加した場合に発生するタイプのクラッシュである。

最後に、OS は、ディスク上の情報に誤りがあると、クラッシュし得る。
これは、コンピュータがクラッシュし、電源が失われ、あるいは、メモリ上の内容を正しくファイルに書き込めなかった場合などにしばしば発生する。
システムのクラッシュは、リブート後にまたクラッシュすることがあり得る。
ファイル破壊は、システムがウィルスに罹患した場合にも発生する。

コンピュータがクラッシュする方法はこのように多くあるため、どのようにして問題を診断したらよいのだろうか?簡単ではないが、問題の解決へのアプローチについてのガイドラインがあります。
以下から入手可能。
http://www.pcguide.com/ts/x/sys/crash.htm

Clay Shields, a professor of computer science at Georgetown
University, explains.

ジョージタウン大学 クレイ・シールズ
2003年1月6日