本页使用了标题或全文手工转换

总线错误

维基百科,自由的百科全书
跳转至: 导航搜索

计算机领域,总线错误bus error)是一种硬件故障英语Fault (computing),为通知操作系统一个进程正尝试访问CPU无法访问的物理地址,即一个无效的位址匯流排地址,它由此得名。在现代的大多数架构中,这比記憶體區段錯誤(段错误)更罕见,而那主要由于内存访问冲突所造成:即逻辑地址或权限的问题。

POSIX兼容平台上,总线错误通常导致发送SIGBUS信号到导致错误的进程。SIGBUS也可能因计算机检测到的任何常规设备故障引发。总线错误很少代表硬件存在物理损坏,而通常是因程序源代码中的程序错误引起。[來源請求]总线错误也可能因其他某些分页错误引发,见下文。

原因[编辑]

总线错误有至少三种主要原因:

不存在的地址[编辑]

未对齐的访问[编辑]

分页错误[编辑]

不存在段(x86)[编辑]

x86上存在一种较旧的称为x86記憶體區段的内存管理机制。

如果应用程序使用不存在段的选择器加载段寄存器(在POSIX兼容的操作系统下只能使用汇编语言完成),则会生成异常。

参考资料[编辑]