段错误可能是由另一个进程引起的吗?

段错误可能是由另一个进程引起的吗?

假设两个独立的应用程序 A 和 B 正在运行。通常,A 中的内存损坏会导致 A 崩溃并出现段错误,而应用程序 B 不会受到影响。

但是,在 A 继续执行的情况下,A 中的内存损坏(有意或无意)是否会导致 B 中出现段错误?

我的操作系统是 Linux。

答案1

一般答案:

在没有“内存保护”的操作系统中......
(通常需要“MMU”,即内存管理单元,[硬件功能])

...一个应用程序/子进程/任务可能会通过“踩踏”(更改)第二个任务的代码或数据, 导致另一个任务失败或行为异常。

在具有内存保护的操作系统(例如 Linux)中,这种情况不应该发生。
但由于保护实施中的“漏洞”或不完善,在实践中仍有可能发生。
甚至可能是由硬件损坏(RAM、ROM、MMU、CPU、IRQ 等)引起的 - 这些硬件可能本质上非常间歇性、依赖于温度或任何类似的东西[1]。

[1] 例如,为操作系统提供“功能”的 IC(例如,仅用于特定任务的 IRQ 源)可能会损坏 - 因此仅在实际使用该功能时才会引起麻烦。

相关内容