【答案解析】[解析] 这是一道嵌入式系统架构试题,题目以宇航嵌入式设备的研制为背景。考查软件需求分析、软件架构、框架设计、可靠性设计及嵌入式操作系统相关的一些知识。题目所述的项目中提出了一种新型的架构TLS,由于是项目中提出的架构,大家必然对这种架构感觉比较陌生,但从图中,我们可以很明显地看到,架构是分层的结构。这也就回到了我们熟悉的技术框架之内了。
首先看第1问,问题要求说明“公司制定的TLS软件架构的层次特点”,这需要从层次型架构的特点,以及题目已给出的说明两方面着手进行说明。层次型架构总的来说,特点有:下层为上层提供服务,层次与层次之间有着良好的独立性,结合题目的说明,可以总结出以下的特点:
①应用软件仅与操作系统服务相关,不直接操作硬件。
②操作系统通过模块支持原软件访问硬件,可与具体硬件无关。
③模块支持层将硬件抽象成标准操作。
④通过三层栈的划分可实现硬件的快速更改与升级,应用软件的升级不会引起硬件的变更。
基于这种思想,TLS结构框架实现了宇航设备中软件功能服务,这样考生就可以完整地叙述各层软件的设计内涵,即:
①应用层主要完成宇航设备的具体工作,由多个功能任务组成,各功能任务间的隔离由操作系统层实现。
②操作系统层实现应用软件与硬件的隔离,为应用软件提供更加丰富的计算机资源服务。操作系统为应用软件提供标准的API接口(如POSIX),确保了应用软件的可升级性。
③模块支持层为操作系统管理硬件资源提供统一管理方法,用一种抽象的标准接口实现软件与硬件的无关性,达到硬件的升级要求,便于硬件的外场快速更换。
接下来看第2问,该问考查嵌入式操作系统的相关知识。VxWorks和Linux是两个常见的嵌入式操作系统,其特点如表3所示。
{{B}}表3 两种操作系统的主要差异{{/B}}
|
比较类型 |
VxWorks 5.5 |
Linux |
工作方式 |
操作系统与应用程序处于同一存储空间 |
①操作系统与应用程序处于不同存储空间 |
多任务支持 |
支持多任务(线程)操作 |
②支持多进程、多线程操作 |
实时性 |
③硬实时系统 |
实时系统 |
安全性 |
④任务间无隔离保护 |
⑤支持进程间隔离保护 |
标准API |
支持 |
支持 |
通过比较,显然选用类似于Linux的嵌入式操作系统适用本题要求。理由包括3点:
①Linux操作系统是一种安全性较强的操作系统。内核工作在系统态,应用软件工作在用户态(这点是系统安全性要求),可以有效防止应用软件对操作系统的破坏。
②Linux操作系统调度的最小单位是线程,线程归属于进程,进程具有自己独立的资源。进程通过存储器管理部件(MMU)实现多功能应用间隔离。
③嵌入式Linux操作系统支持硬件抽象,可有效实现TLS结构,并将硬件抽象与操作系统分离,可方便实现硬件的外场快速更换。
最后看第3问,作为宇航系统的嵌入式设备,硬/软件故障是宇航系统最为关注的内容,根据宇航系统的特点和系统组成,故障一般分为3类,即硬件故障、应用软件故障和操作系统故障,在设计中,应考虑这3类故障的处理方法。硬件故障一般包括CPU运算错误、存储器访问/越界错误、MMU配置错误、定时器计数错误和内总线错误等;应用软件故障一般包括计算越界、除0、溢出和超时等各种异常情况;操作系统故障一般包括越权访问、死锁、资源枯竭、调度超时、配置越界和操作系统异常等。
一般情况下,宇航系统的故障分为瞬态故障和永久故障,瞬态故障是指偶然发生的错误,而永久故障是指发生后不可消失的错误。在容错系统中,故障一般是由瞬态故障向永久故障转变,将鉴别瞬态故障和永久故障的算法称为滤波算法。在嵌入式实时系统中,常用的滤波算法包括门限算法、递减算法、递增算法和周期滤波算法等。
故障的鉴别目的是实现宇航系统的容错与重构。常用的容错算法是N+1备份、冷备、温备和热备。N+1备份是指N个通用模块之一的任何一个模块发生故障后,将故障模块的任务迁移到备份模块运行;冷备、温备和热备是3种备份方式,可根据宇航系统的总体备份时间或重要程度安排不同的备份算法。