LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

バスエラー

バスエラー(bus error)とは普通CPUが物理的に割り当てられないメモリにアクセスを試みると起きる。バスエラーはコンピュータが検出した一般的なデバイスが故障することが原因でも起きることがある。バスエラーは、まれにコンピュータハードウェアが物理的に壊れたことを示すことがある。普通は、アクセスできない所にアクセスしようとするバグがあるソフトウェアによって引き起こされる。バスエラーの原因としては主に2つある。CPUは普通どんな時もデータバス幅いっぱいにデータをアクセスする。バイトデータにアクセスするために、CPUはデータバス幅いっぱいにメモリアクセスをして、ここのバイトをマスクしたりシフトしたりする。これは非効率的ではあるが、特に順番に処理を行うたいていのソフトウェアにとって本質的な特性だとして大目に見られている。バイトではなく、2つのアライメントにまたがる程より大きな単位のデータの場合は、データバスで2回以上データを取ってくる必要がある。CPUがサポートしていれば可能だが、この機能は機械語レベルで直接必要になることはめったにないので、CPU設計者は普通このような実装を避け、その代わり不整列メモリアクセスとしてバスエラーを発行する。CPUのメモリアクセス機構とコンパイラの進歩により、以前よりも問題として目立たなくなってきている。64bitCPUへの移行が行われ、ワード幅が増えた関係で、バスエラーが多発しやすくなっている。これはC言語で書かれた不整列メモリアクセスの例である。Note: すべてのアーキテクチャでテストしていないので、この例にはまずい所があるかもしれない。int main (void) {オペレーティングシステムのカーネルがバス・エラーに対して処理を行っているあいだに、さらなるバス・エラーが発生した場合をダブル・フォールトという。この語はDECのミニコンピューターで定義され、ほとんどのアーキテクチャにおいてこの語が使われる。バスエラー処理はリエントラントにすることができない。なぜならCPUのコンテキストがメモリに書き出され、再開するための準備が行われている状態にあるからである。バス・エラー処理中に新たなバス・エラーが発生すると、新たなCPUコンテキストがメモリに書き出されることになるが、このコンテキストを再びCPUに書き戻すと、その直前で発生したバス・エラー状態を再現してしまい、無限ループに陥る。多くのオペレーティングシステムは、この状態に至った場合を「異常事態」とみなし、Windowsではブルースクリーン、UNIXではカーネルパニックを発生させ、オペレーティングシステムは停止し、再起動以外に再開する方法はなくなる。この現象はデバイスドライバのバグなどで顕著に発生し、Windowsではクラッシュの大半が、UNIXではほとんどの場合がダブル・フォールトによる、カーネル空間上のコードで発生したバス・エラーである。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。