![](https://csdnimg.cn/release/download_crawler_static/87194926/bg8.jpg)
2. Watch Dog, Heart beat,重新启动失效的进程。
3. 完善而统一的日志系统以快速定位问题
4. 将错误孤立在最小的范围内,避免错误的扩散和连锁反应。核心代码要经过充分的
验证,对非核心代码,可以在监控或者沙盒中运行,避免其破坏整个系统。
举例,Symbian 上的 GPRS 访问受不同硬件和操作系统版本影响,功能不是非常稳
定。其中有一个版本上当关闭 GPRS 连接时一定会崩溃,而且属于 known issue。
将 GPRS 连接,HTTP 协议处理,文件下载等操作独立到一个进程中,虽然每次操
作完毕该进程都会崩溃,对用户却没有影响。
5. 双备份这样的手段较少采用
3.3. 内存不足
虽然当今的嵌入式系统的内存比之以 K 计数的时代已经有了很大的提高,但是随着软
件规模的增长,内存不足的问题依然时时困扰着系统架构师。有一些原则,架构师在进行设
计决策的时候可以参考:
3.3.1. 虚拟内存技术
有一些嵌入式设备需要处理巨大的数据量,而这些数据不可能全部装入内存中。一些嵌
入式操作系统不提供虚拟内存技术,比如 WinCE4.2 每个程序最多只能使用 32M 内存。对
这样的应用,架构师应该特别设计自己的虚拟内存技术。所谓的虚拟内存技术的核心是,将
暂时不太可能使用的数据移出内存。这涉及到一些技术点:
1. 引用计数,正在使用的数据不能移出。
2. 使用预测,预测下一个阶段某个数据的使用可能性。基于预测移出数据或者提前装
入数据。
3. 占位数据/对象。
4. 高速缓存。在复杂数据结果下缓存高频率使用的数据,直接访问。
5. 快速的持久化和装载。
下图是一个全国电信机房管理系统的界面示意图: