Polyspace产下载188bet金宝搏品

并发性:竞争条件和死锁

并发为什么重要?

工程师正在越来越多地利用多核体系结构和处理器等高度集成各种嵌入式应用程序的军事航空电子设备和汽车系统,除了传统的嵌入式应用程序,如网络和通信系统。这一趋势正在推动部分性能需求的持续上升ADAS和V2V通信等应用程序。利用这样的架构,您需要考虑多线程。这带来了一套新的复杂的设计和验证的挑战,特别是当确保类系统的鲁棒性和安全性。其中一些挑战存在即使在系统只利用一个多任务处理的核心。

挑战是什么?

并发编程的最复杂的挑战之一在于并发线程之间的相互作用的不可预测性。这是因为线程交错是不确定的。测试任何这样的系统会导致数量的测试用例。这将导致另一个关键的挑战:测试用例发现bug,但无法重现问题,因为没有方法来确定和重复的一系列事件。这很难跟踪控制和数据流来确定问题的根源,和调试变得昂贵和耗时的并发问题。因此,有现实生活场景的软件验证和测试已经错过了并发缺陷。

即使在单线程嵌入式应用程序,你会看到一些这样的复杂性在外部感官输入的异步交互形式的中断。当多个任务访问共享资源,比如全局变量,你看到一个新类的缺陷,比如竞态条件,数据竞争和死锁。

竞态条件的一个典型的例子是场景,两个客户端同时修改相同的资源在一个服务器上,同时银行撤回的情况下。指的是并行计算wiki节阅读更多关于这个例子。

Polyspace静态分析的解决方案

Polyspace®工具利用抽象解释的形式方法技术进行语义分析。Polyspace引擎可以静态检测并发问题和跟踪控制和数据流帮助调试问题的根源。在接下来的例子中,你与两个任务死锁(bug_deadlock_task1和bug_deadlock_task2)正在等待其他输入相同的临界区(acquire_sensor ())。事件跟踪了订单的指令,导致死锁。

死锁img

简单的例子说明死锁检测到Polyspace错误发现者和事件跟踪,导致死锁。

指的是完整的列表Polyspace错误发现者™可以检测的缺陷。另一个新兴的担忧对并发bug是嵌入式系统的对安全的影响。安全指导方针比如CERT C和CWE协议优先并发缺陷,例如竞态条件。

Polyspace绿色-竞态条件的缺失

在并发缺陷,竞态条件可能是最有害的。竞态条件一直负责一些严重的运行时错误失败,如Therac-25放疗机器。研究人员发表的详细调查运行时错误失败,几个病人的死亡负责。

Polyspace代码验证™是一个良好的静态分析工具,可以帮助此类复杂不确定的运行时失败,因为它详尽验证所有可能的交错。它同时也突显出潜在的竞态条件,考虑到最坏的情况。更重要的是,它验证共享资源时适当保护关键部分(通过强调他们在绿色)。

例如,如果你有多个线程共享全局变量使用,Polyspace代码验证场景不仅要求潜在的竞态条件(强调在橙色),但它也提供了特定的事件序列(交叉)的形式事件跟踪。

在下面的例子中,全局变量PowerLevel突出显示在橙色,因为它不是防止并发访问由多个任务(server1, server2和tregulate)。读和写操作的序列变量和相应的修改数据范围成办等调试事件跟踪价值的竞态条件。Polyspace代码验证进一步提供了详细的控制流图的并发访问的形式强调任务和函数调用的序列如下所示。

死锁img 2

变量访问提供了详细的数据范围为全局变量。

使用Polyspace产品,你也下载188bet金宝搏可以检测和调试并发缺陷和验证多任务操作的可靠性,以确保您的软件是健壮的。这方面的一个例子分析共享全局变量使用,Polyspace产品可以为您提供详细的洞察力和生成构件,帮助开发和验证活动的多任务应用程序。下载188bet金宝搏

了解更多关于Polyspace产品。下载188bet金宝搏

阿莱尼亚·马基公司

“对我们来说,基于模型设计的一个关键优势是专注于设计和开发的能力,而不是低级代码,验证和认证工作。结果是高质量,做- 178 b认证软件,更快的迭代”。

阿莱尼亚用户故事