如果将软件 运行 所在的系统更新为更快的系统,可能会出现什么问题或为什么软件会停止工作?

What could go wrong or why could software stop working if the system where the software is running is updated to a faster system?

我面试的时候遇到过这个问题。我可以想到以下原因:

  1. 从 32 位移动时依赖于体系结构的代码可能会中断 到 64 位机器

  2. 某些指令集可能会升级以某种方式破坏现有指令集(但感觉处理器架构是 向后兼容以避免此类问题)

我真的想不出更多的理由,其他人可以吗?

让软件在更好的硬件上中断的一种可能方法是存在竞争条件错误。在较慢的硬件上,它可能永远不会出现,因为硬件条件使其足够慢,但在较快的硬件上,程序的 2 个线程可能会无意中最终竞争相同的资源。