首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我在无限时间内运行这段代码,得到错误的概率是多少?

如果我在无限时间内运行这段代码,得到错误的概率是多少?
EN

Stack Overflow用户
提问于 2014-02-22 16:36:48
回答 2查看 118关注 0票数 0

假设我以任何语言运行这段代码,可以在任何计算机上使用c、python或javascript等,假设是在macbook 2011年底(这是我的计算机)上运行的。如果我在无限时间内运行这段代码,我得到错误的概率是多少?

代码语言:javascript
复制
    int a=1;
    int b=1;

    while(true)
    {
        if(a!=b){
          //error occurred
         }
    }

简单地说,

  1. 现代的处理器有多可靠?
  2. 在手机或平板电脑等设备上,是否有来自廉价品牌的处理器经常会产生这样的错误?
  3. 是否有一个著名的案例(从过去),现代处理器确实产生错误的结果?

编辑1

假设机器永远不会死,过热,蓝屏什么的。

EN

回答 2

Stack Overflow用户

发布于 2014-02-22 18:04:09

是的,错误可能发生在某些非零概率中,但不太可能导致程序达到无效状态检查。

您可能会让alpha粒子在CPU或内存中碰到一些关键的逻辑来翻转一些位(这可能会导致几乎任何事情),或者您可能会将一些页面交换到一个有故障段的磁盘上。发生这种情况的确切速度取决于以下几点:

  1. 您的CPU使用的电压水平-现代CPU将有更低的水平,以节省电力,移动的可能是一些最敏感的。电压越低,阈值越低,一些外力越容易翻转逻辑值。
  2. 你运行的环境--为航天飞机、核电站甚至CERN超级对撞机设计CPU的人可能正在拼命工作以防止这种情况发生,因为这些CPU可能经常受到辐射的轰击,并看到更高的故障率。
  3. 对机器施加压力。CPU 24/7工作,更有可能被击中。
  4. CPU区域-拥有多个核心的服务器更有可能被击中,它们只是提出一个更大的目标。
  5. 内置的支持错误检测和校正的大多数现代CPU都有ECC位和奇偶校验,适用于大多数敏感的HW区域。通常可以纠正单个错误,可以检测到更复杂的错误(几位翻转),但HW至少会在此基础上引起一些错误或机器检查错误(因此您甚至无法在代码中进行错误检查)。当然,对于磁盘可靠性,还有另一组特性,如RAID。

请注意,一些关键系统需要更高的可靠性(例如银行),因此它们可能会购买提供更好的RAS功能的CPU。智能手机和桌子通常不那么关键,但我想你可能会看到一些这种东西的表格系统。

无论哪种方式,今天任何合理的CPU都应该有足够的保护来捕获大多数可能的错误,并在“隐藏之下”中修复,这样您甚至都不会知道它们的存在。无法处理的复杂错误仍然最有可能被捕获,可能只会导致机器挂起或重新启动。您可以假设一个简单的程序具有几乎100%概率的确定性行为。

票数 1
EN

Stack Overflow用户

发布于 2014-02-22 19:33:48

所以我的两分钱,(你有权得到全额退款)

这是一个很容易问的问题,但一旦你调查它,事情会变得有点模糊。

如果您将问题定义为具体情况,则a与b不相同。在Python中(据我理解)a是b,因此永远不会失败。(这只是说,如果a变化,b也会发生变化)。现在把变焦旋钮打开一点。现在,'!=‘部分可能会失败,原因是什么?(在python中,您仍然认为)a仍然是b。这是您的问题框架中的失败吗?

把变焦器再放大一点,“正当”会失败吗?这是你问题的一部分吗?操作系统的故障算不算?窗户会重新启动因为..。

然后我们进入Leeor的观点。

当我们不断放大的时候,我们一直在寻找不适合这个问题的案例。如果运行的数据中心被电磁脉冲武器摧毁的话.你知道这是怎么回事。

在我的过去,我不得不在这条路上追逐这个问题。(医学,航空电子,.)

于是出现了一个循环:“我们能检测到有故障吗?”(Leeor关于ECC的观点浮现在脑海中)。如果它失败了,但我们抓住了它,它会失败吗?

量子力学告诉我们,最终'this_rock‘= 'this_rock’。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21957113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档