嵌入式系统的可靠性、安全性与稳定性保障
1. 软件可靠性
1.1 硬件与软件可靠性差异
硬件可靠性分析和改进相对成熟,其故障多为随机独立的。例如,将两个硬件组件置于相同条件下,除非严重超出其预期工作环境,否则它们不太可能同时失效。然而,软件组件在很多问题上的故障往往具有高度相关性。同样的软件副本在相同情况下,很可能以相同方式失效。所以,在两个冗余计算机中使用相同软件副本,虽能提升硬件系统可靠性,但软件可靠性并无改善。
1.2 提升软件可靠性的方法
1.2.1 提高软件质量
消除软件中的各种缺陷是提高软件可靠性的最有效方法。这些缺陷可能存在于代码、设计、需求甚至用户手册中,只要导致系统无法满足用户预期,都应视为缺陷。
为提高软件质量,可采取以下措施:
- 招聘优秀的开发人员。
- 为开发人员提供良好的工具、工作环境、合理的截止日期、完善的需求文档和测试支持等。
但仅有良好的环境还不够,还需要一个完善的软件流程。一个定义清晰、执行良好的流程,更有可能产生可靠的软件。例如,遵循安全关键设计方法,有助于确保软件达到所需的可靠性水平。
1.2.2 软件状态清理
部分软件故障具有随机性,可将其建模为随机独立故障。常见的随机故障源包括:
- 内存泄漏:动态分配的内存未被释放。
- 指针损坏:导致错误的内存位置被覆盖。
- 硬件瞬态故障引发的软件故障。
- 特定传感器值触发的缺陷。
- 对丢包的非鲁棒响应。
- 定时错误和竞态条件。
- 计数器和定时器溢出。
对于桌面软件,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



