如何查找嵌入式软件设计中缺陷分析[2]

终端与业务 责任编辑:dsp1997 2011-01-12

摘要:*堆栈溢出*竞争条件*死锁读者可在网上阅读本文的第二部分,它将探讨下列问题:*时序问题*可重入条件在采用多任务实时设计技术的系统中,以上所有问题都相当普遍。堆栈溢出处理器使用堆栈来存储临时变量、向被调函数传递参数、保存线程“状态”,等等。如果系统不使用虚拟内存(换句话说,它不能将内存页面

  * 堆栈溢出

  * 竞争条件

  * 死锁

  读者可在网上阅读本文的第二部分,它将探讨下列问题:

  * 时序问题

  * 可重入条件

  在采用多任务实时设计技术的系统中,以上所有问题都相当普遍。

  堆栈溢出

  处理器使用堆栈来存储临时变量、向被调函数传递参数、保存线程“状态”,等等。如果系统不使用虚拟内存(换句话说,它不能将内存页面转移到磁盘上以释放内存空间供其它用途),堆栈将固定为产品出厂时的大小。如果由于某种原因堆栈越出了编程人员所分配的数量范围,程序将变得不确定。这种不稳定可能导致系统发生严重故障。因此,确保系统在最坏情况下能够分配到足够的堆栈至关重要。

  确保永不发生堆栈溢出的途径就是分析代码,确定程序在各种可能情况下的最大堆栈用量,然后检查是否分配了足够的堆栈。测试不大可能触发特定的瞬时输入组合进而导致系统出现最坏情况。

  堆栈深度分析的概念比较简单:

  1. 为每个独立的线程建立一棵调用树。

[1]  [2]  [3]  

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

通信工程师备考资料免费领取

去领取

距离2025 通信工程师考试

还有
  • 1
  • 2
  • 0
专注在线职业教育24年

项目管理

信息系统项目管理师

厂商认证

信息系统项目管理师

信息系统项目管理师

!
咨询在线老师!