7.Mars
约 496 个字 3 张图片 预计阅读时间 2 分钟
1. Mars Pathfinder¶
1.1 Mission¶
- Demonstrate new landing techniques: parachute and airbags;
- Take pictures、Analyze soil samples;
- Demonstrate mobile robot technology: Sojourner;
1.2 System Reset¶
- Within a few days of landing, when Pathfinder started gathering meteorological data, spacecraft began experiencing total system resets.
- 开始以为是负载太高了;
- 开始的尝试是,slow down系统处理的速度;
- 困难是,bug不是稳定复发的,不知道会在什么时候出现bug;
- 我们为了复现操作系统的bug,会有一种 recall and replica 技术,录制和重放;
- 地球上有一个完整的火星车复制品,复现了火星车在火星的所有操作;
1.3 VxWorks RTOS(实时操作系统)¶
-
Mutex同时只能被一个线程使用,只有拥有Mutex才能访问Information Bus;
-
当Weather Data Thread得到Mutex并往Information Bus 里写数据的时候,数据还没写完就发生了一次调度,高优先级的线程获得了资源,而高优先级线程再去读Information Bus的资源时,也得先拿到Mutex,就开始等待;
- 这时又发生了调度,中优先级的线程,在run的时候,低优先级线程没有机会得到运行,但低优先级线程持有mutex,这样高优先级线程也不能跑;
- 这时操作系统就会以为系统故障,就 重启了;
1.4 优先级反转¶
- 高优先级线程在等待一个低优先级线程持有的资源的时候,这时就要使用优先级反转来解决这个问题;
- 把低优先级线程优先级进行暂时的提高;
1.5 如何fix¶
- 优先级继承(当低优先级线程持有高优先级线程所需要的一些资源时,会暂时继承高优先级的优先级);
1.6 启示¶
-
- 调试是比较难的,所以一个detailed trace是很有必要的;
-
- 热补丁系统:不重新升级或者重启的情况下,打上补丁;(比如change memory里面的值或者修复代码里面的bug)
本文总阅读量次