很多
用户都曾经亲身体验过应用程序或设备
驱动死锁的情况。
为了解决这种问题,微软的研究人员想出了一个数学解决方案来对代码进行检测。
这个来自微软研究中心的项目叫做TERMINATOR软件验证项目。这个工具对软件代码进行检测,并对所有循环进行数学原理的检验以确保它们不会挂起。
微软研究人员Byron Cook表示,人们常误以为当软件挂起时,它们就已经进入假死状态。实际上是,它们并没有停止执行,只是陷入无限循环中而不能跳出来。
例如,一个没有硬编码超时设置的设备
驱动不停的尝试初始化已经失去响应的
硬件,又或者是,一个应用程序尝试连接到没有连接的
网络,并且不能确定何时该停止。
这个就是有名的“Halting Problem”,首次由图灵发现,他证明了没有任何办法可以证明所有应用程序能一直运行到完成。
为了解决这个问题,Cook为应用程序设计了一个数学解决方案,以判断应用程序是否最终会把控制权返回给
用户。TERMINATOR还有另外一个辅助程序,称为SLAM,它是特别针对设备
驱动而设计的。
程序员不停的运行这些工具,最后的结果表明,代码里面的循环从数学上来说是不会导致死锁,又或者是代码在哪些地方存在问题。
目前,Cook还不能确定这项
技术什么时候才能应用于Visual Studio或其它的微软开发工具。他表示,微软已经把TERMINATOR和SLAM用于内部的
Vista测试,并取得了很好的效果。
JupiterKagan的高级分析师Joe Wilcox表示,微软声称Windows中出现的很多死锁都是由第三方的软件引起的,而设备
驱动则显得特别麻烦。
如果微软所言属实,那么干净的
驱动将能够大大的提升Windows的性能和稳定性。
另外,对微软这两个工具感兴趣的读者请到这里查看微软
官方的资料:
TERMINATOR,
SLAM。
关注天下网吧微信,了解网吧网咖经营管理,安装维护 / 下载天下网吧APP,交流讨论