中科大软院实时系统设计课程中深入探讨了实时系统设计的关键概念和技术。首先,课程强调了安全与任务关键性的重要性。关键任务(critical task)是指一旦失败可能导致系统崩溃的活动,例如在航空航天等领域。安全系统(safe system)则指即使出现故障也不致造成整体损害,如日常办公软件。安全关键实时系统(safecritical real-time)的概念更为严格,任何失误都会对系统造成严重后果。
课程中指出,在传统系统中,安全和可靠性是两个独立的概念。安全系统旨在防止故障引发损害,而可靠系统则是强调长时间运行无故障。然而,在安全关键系统中,这两个属性是相互关联的,因为系统的安全性往往依赖于其可靠性。例如,一个系统可能因不可靠而导致故障,但如果能在故障后进入所谓的失败安全态(fail-safe state),即使不完全可靠也能提供一定程度的安全保障。
失败安全态是一种设计策略,确保在系统故障时能够自动转变为安全状态,如交通灯系统中的橙色闪烁模式。然而,对于安全关键系统,这种状态是不存在的,因为它们必须通过提高整体可靠性来确保安全。
设计高可靠性系统的方法包括错误避免、错误检测和修复,以及利用硬件和软件容错技术。硬件冗余如三模冗余和自测试电路,以及软件容错策略如N-版本编程和恢复模块,都是提升系统稳定性的关键手段。
实时系统的设计面临诸多挑战,如CPU利用率的有效性和可预测性之间的平衡。实时并不等同于快速响应,而是强调系统在给定的时间约束内完成任务的能力。设计时要考虑体系结构因素,如缓存、中断处理和DMA,操作系统层面的调度和同步,以及编程语言的选择,这些都会影响系统的实时性能。
此外,对于关键任务系统,设计必须在最坏情况下的预期执行时间(WCET)进行,确保系统的鲁棒性。处理器的选择同样关键,需考虑软件支持(操作系统、编译器、调试工具等)、成本效益、性能和能耗等因素,以及长期可用性。
最后,课程还涉及实时系统的响应时间目标(RTO),这是衡量系统对突发请求快速响应能力的一个指标,对于实时系统的性能评估至关重要。中科大软院实时系统设计课程深入剖析了设计过程中的复杂性与挑战,为理解和实践安全关键实时系统提供了扎实的基础。