参考答案:
详细解析:
本题主要考查考生对装备控制类嵌入式软件开发知识的理解和应用。
本题通过一个实例,说明移动智能终端设备的软件与装备控制类软件在需求方面存在比较大的差异,实时性、安全性和可靠性是装备控制类软件开发必须重点关注的特性。
本题首先考查考生对传统意义上的嵌入式系统知识的理解程度;其次通过判定题考查考生能否针对装备控制类系统需求,选择合适的嵌入式操作系统;最后通过填空回答宇航设备(装备控制类)的嵌入式软件与移动智能终端嵌入式软件在安全性(Safety)、实时性、交互性设计和编码方面的要求有何差异。此类题目要求考生认真阅读题目对问题的描述,根据对嵌入式系统知识的理解,采用总结、概括等的方式,可从问题描述中发现问题的相关性,从而正确回答问题。
【问题 1】
嵌入式系统是一种可深埋在某一专用设备中的系统。一般而言,由于设备的体积、重量和功耗的限制,嵌入式系统将受到多种条件和环境的制约,这也对嵌入式系统提出了有别于其他计算机系统的特殊要求。通常,嵌入式系统具备以下7 个特点:
(1)系统专用性强。嵌入式系统是针对具体应用的专门系统。它的个性化很强,软件和硬件结合紧密。一般要针对硬件进行软件的开发和移植,根据硬件的变化和增减对软件进行修改。
(2)系统实时性强。许多嵌入式系统对外部事件要求在限定的时间内及时作出响应, 具有实时性。根据实时性的强弱,通常将嵌入式系统分为实时嵌入式系统和非实时嵌入式系统,其中大部分为实时嵌入式系统。
(3)软硬件依赖性强。嵌入式系统的专用性决定了其软硬件的互相依赖性很强,两者必须协同设计,以达到共同实现预定功能的目的,并满足性能、成本和可靠性等方面的严格要求。
(4)处理器专用。嵌入式系统的处理器一般是为某一特定目的和应用而专门设计的。 通常具备功耗低、体积小和集成度高等特点,能够将许多在通用计算机上需要由板卡完成的任务和功能集成到芯片内部,从而有利于嵌入式系统的小型化和移动能力的增强。
(5)多种技术紧密结合。嵌入式系统通常是计算机技术、半导体技术、电力电子技术、机械技术与各行业的具体应用相结合的产物。通用计算机技术也离不开这些技术, 但它们相互结合的紧密程度不及嵌入式系统。
(6)系统透明性。嵌入式系统在形态上与通用计算机系统差距甚大。它的输入设备 往往不是常见的鼠标和键盘之类的设备,甚至不用输出装置,用户可能根本感觉不到它所使用的设备中有嵌入式系统的存在,即使知道,也不必关心嵌入式系统的相关情况。
(7)系统资源受限。嵌入式系统为了达到结构紧凑、高可靠性和低成本的目的,其存储容量、I/O设备的数量和处理能力都比较有限。
【问题2】
本问题主要要求考生在理解宇航系统的特殊性基础上,判断表 3-1 中给出的 8 种选型观点是否正确。
(1)在工程实践中,不是市场上销售的任何一款操作系统都能适用工程需要,要选择一款适应的产品必须从项目需求入手。因此,“选择操作系统根据项目(系统)需要的嵌入式操作系统功能来选择操作系统产品,要考虑系统需求是否覆盖了操作系统的全部功能或部分功能,是否支持文件系统和人机界面,是实时系统还是分时系统”的说法是正确的。
(2)嵌入式操作系统通常根据对时间的敏感性分为硬实时操作系统和弱实时操作系 统两类,即使在微电子快速发展的今天,随着处理器计算速度的提升,人们赋予计算机处理事物的能力也在增强,因此,传统的嵌入式操作系统分类方法仍然满足现在需求。所以,“在微电子技术高速发展的今天,硬件资源受限已不再是嵌入式系统设计的难点,通常的嵌入式操作系统都能满足各类嵌入式系统的需要”的说法是不正确的。
(3)选择操作系统的目的是提高嵌入式软件开发效率,将应用软件的开发从与硬件相关分离出来。因此选择操作系统时除了考虑操作系统能力与项目需求相匹配外,还要充分考虑配套开发环境的优劣。因此,“有些 RTOS 只支持该系统供应商的开发工具 。也就是说,还必须向操作系统供应商获取编译器和调试器等;有些嵌入式操作系统使用广泛,且有第三方工具可用,因此,选择的余地比较大”的说法是正确的。
(4)嵌入式操作系统主要功能就是管理计算机硬件资源的,它与硬件资源耦合度很高,操作系统的可移植性也是选择操作系统的条件之一。因此,“嵌入式操作系统到硬件的移植是一个重要的问题,是整个系统能否按期完工的关键因素,因此,要选择那些可移植性程度高的产品,从而避免嵌入式操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度”的说法是正确的 。
(5)可剪裁性和可配置性是嵌入式操作系统主要特性之一,在选择操作系统时一定要考虑资源的剪裁性优劣,用户应根据项目应用需求分配资源,而不是为操作系统分配资源。因此,“均衡考虑是否需要额外 RAM 或 EEPROM 来满足操作系统对内存的较大要求。有些嵌入式操作系统对内存的要求是与目的相关的,如 VxWorks 等,开发人员能够按照应用需求分配所需资源,而不是为嵌入式操作系统分配资源”的说法是正确的。
(6)选择操作系统还要考虑对扩展功能的支持能力,可剪裁的组件越丰富,操作系统的适用面就越大,因此,“嵌入式操作系统是否包含所需的软件部件,例如网络协议栈、文件系统和各种常用外设的驱动等,也是选择嵌入式操作系统重点关注的”的说法是正确的。
(7)宇航系统是一种高安全系统 ,其核心目标是保障宇航设备安全、可靠运行,操作系统的质量好坏,直接影响宇航设备的安全,成熟度是宇航系统选择操作系统的重要因素之一。因此,“在宇航系统中,一般选择嵌入式操作系统时,首先要考虑的是产品的先进性,希望采用更多新技术、新方法,其次才是开放性、成熟度”的说法是不正确的。
(8)硬实时系统和弱实时系统有着本质差别,因此,“有些嵌入式操作系统只能提供弱实时性能,对于需要达到硬实时性性能要求的系统就不适用”的说法是正确的。
【问题3】
如果考生能够正确回答前两个问题后,就可对宇航系统软件的特殊性有所了解,如果考生从事过高安全系统的软件开发工作,一定会从安全性、实时性、交互性和编码等方面识别出宇航软件与智能终端软件的开发过程中的差别,正确回答出问题。
(1)安全性:宇航软件通常根据软件所在设备失效而对系统安全性(Safety)影响的严重程度分为多种安全级别(如:A---E 五级),而不同安全级别的软件开发过程有其不同的要求;而移动智能终端中的软件主要用于辅助人们工作与生活,一般不会对生命 产生直接影响,它不适用安全级别之分。
(2)实时性:为了提高实时性,宇航软件设计上要充分考虑与硬件的紧密协同,尽可能地有效发挥硬件特点,在设计上要仔细考虑将实时性能需求分解到每个软件部件中;而移动智能终端软件属于弱实时系统,对时间特性不敏感,达到人们可容忍即可,设计上尽量避免软件与硬件紧藕合。
(3)交互性:宇航软件大多数属于非人机交互系统,关注重点是安全性和可靠性设计;而移动智能终端软件设计上重点关注的是人机界面友好性、简洁性,注重用户体验。
(4)编码:宇航软件编码要遵守语言标准,尤其是应按照高级语言的安全子集标准开展编码,对代码函数的语句条数、扇入扇出、圈复杂度等影响代码质量因素都有严格规定;而移动智能终端软件编码虽然也要遵循一定的编码标准,但在安全编码、扇入扇出、圈复杂度等方面没有严格要求。