问答题
[说明]
某研究所承担了一项宇航嵌入式系统的研制任务,本项任务技术难度大,可靠性要求高,进度要求紧,预计软件规模约在一万行以上。而该所原先承担的相关项目均是用汇编语言编写的(软件规模较小,一般是几百行)。项目主管工程师将软件开发的论证工作分别布置给了架构师阮工和刘工,要求他们根据本项目的技术要求,在一周内分别提出软件的实施方案。
(1)该宇航嵌入式系统由数据处理机、信号处理机及数据采集模块组成。信号处理机主要通过数据采集模块将大量不固定时间周期的外部数据采集进来,进行预处理(如FFT变换)后提交给数据处理机;数据处理机根据功能要求完成各种计算处理工作,并将结果输出。为了达到数据处理机和信号处理机的标准化,这两类处理机均采用同种处理机的体系结构(如PowerPC 7410)。整个系统工作的最大周期为1s,最小周期为5ms。数据处理机上的任务分布如下表所示。
{{B}}数据处理机上的任务分布表{{/B}}
工作周期 任务数(个) 共占时间(ms)
5 1 1
10 2 4
40 2 8
50 3 9
1000 2 3
(2)一周后,架构师阮工和刘工提交了各自的实施方案,其共同之处在于二者均提出采用操作系统及相应的软件开发环境。但是,阮工和刘工在选择什么样的操作系统及开发环境方面出现了较大分歧。阮工的实施方案指出,为了满足本项目的技术要求,并有利于本所软件的长期发展,应选用具有硬实时处理能力的嵌入式实时操作系统及开发环境(例如VxWorks等);而刘工的实施方案指出,操作系统主要完成对计算机资源的管理与分配工作,考虑到人们对操作系统及软件开发工具的熟悉程度,本项目应选用具有大众化的,开发人员容易上手的嵌入式操作系统(例如Windows CE、Linux等)。
(3)在两人争执不下的情况下,项目主管工程师组织了相关专家对阮工和刘工提交的实施方案进行了评审。最后,专家组一致认为阮工的方案切实可行,操作系统的选型论证充分、客观,可以作为本所未来几年中相关项目的软件开发的基本环境。同时专家组还就具体实施选择嵌入式实时操作系统及开发环境产品时应着重考虑的相关问题提出了几点建议。
问答题 为什么专家组一致认为阮工的实施方案切实可行?请用200字以内的文字简要说明。
【正确答案】①宇航嵌入式系统是一种硬实时系统,要求对外部事件做出快速响应,因此,阮工提出的选用具有硬实时操作系统在实时处理和相应的方面优于一般嵌入式操作系统。 ②从资源的约束性来讲,宇航嵌入式系统由于受空间和重量的限制,操作系统代码不宜过于庞大,选择具有可剪裁功能的操作系统更适应本项目。 ③宇航嵌入式系统要求软件可靠性较高,而阮工选择的操作系统已经过相关部门验证,其可靠性高于刘工所选的操作系统
【答案解析】[解析] 这是一道要求读者通过对题目的理解,根据题目给出的技术参数说明选择操作系统的依据的综合分析题。本试题的解答思路如下。 (1)嵌入式操作系统的使用与具体的应用方向紧密相关。目前,根据不同的应用领域,嵌入式操作系统分为嵌入式操作系统和嵌入式实时操作系统,实时又分为强实时和弱实时。 (2)强实时、资源约束和可靠性是宇航软件必须考虑的三大因素。强实时将是本题首要关注的选型内容之一;而可靠性则是宇航系统极为重要的考虑内容;可剪裁、开放和可扩展是嵌入式系统的公共特性。 (3)在宇航系统中,由于航天航空飞行器速度非常快,需要各个控制设备应具有快速的反应和处理能力(一般工作周期为ms级),即该宇航系统的各周期任务的工作时序必须在规定的时间期限内完成,偶尔出现违反某些应用的时间需求将对系统运行造成严重影响。具有硬实时处理能力的嵌入式实时操作系统提供的任务调度功能,可以有效地管理本系统多周期任务的调度,并且操作系统提供的事件、信号和任务间的通信机制,可以有效地解决本系统中资源共享中的互斥问题。因此,结合题干给出的技术指标要求,应重点考虑强实时操作系统。由于硬实时操作系统在实时处理和相应的方面优于一般嵌入式操作系统,因此阮工提出的选用具有硬实时处理能力的嵌入式操作系统方案可行。 (4)从资源约束性的角度来讲,宇航嵌入式系统由于受空间和重量的限制,操作系统代码不宜过于庞大,选择具有可剪裁功能的操作系统更适应本项目。 (5)宇航嵌入式系统要求软件可靠性较高,而“具有硬实时处理能力的嵌入式实时操作系统及开发环境(例如VxWorks等)”在上市之前需要经过相关部门验证,因此阮工选择的操作系统的可靠性高于刘工所选的操作系统(例如,Windows CE、Linux等)。
问答题 选择实时嵌入式操作系统及开发环境时应考虑哪几方面的问题?请用200字以内的文字简要论证。
【正确答案】①硬实时性,即要具有很高的外部事件的响应能力。 ②可扩展性,即要支持多种目标机、多种API标准接口,以利于软/硬件的升级。 ③接口的开放性。提供了丰富的应用软件接口服务,使用户可根据自己的需要定制专用系统。 ④可靠性要高。应长期被许多厂家应用过,或已通过权威机构认证。 ⑤可剪裁性。可根据具体项目要求进行功能模块的剪裁,操作系统内核要尽量小。 ⑥环境的可用性。要求开发环境集成具有丰富的工具,使用方便,符合习惯。 ⑦兼容性。开发环境应支持多种常用的文件格式,以利于环境间的数据交换。
【答案解析】[解析] 这是一道要求读者在嵌入式实时操作系统及开发环境选型时需要考虑哪些方面的简答分析题。本试题所涉及的知识点如下。 (1)题干的第1段描述信息说明了问题所在,虽然估计到新项目程序代码将达到一万行(过去只有几百行),但这些数据在本题中没有实质性应用,只表明代码规模发生了实质性变化,这一点是选择使用操作系统的考虑因素之一。 (2)硬实时性,即操作系统是否具有很高的外部事件的响应能力。 (3)可扩展性,即操作系统是否支持多种目标机和多种API标准接口,今后软/硬件的升级是否简便可行。 (4)接口的开放性,即操作系统是否提供了丰富的应用软件接口服务,使用户可根据自己的需要定制专用系统(有利于灵活使用)。 (5)可靠性,即所选的操作系统的可靠性是否长期被许多厂家应用过,或已通过权威机构认证。通常要求嵌入式操作系统对可靠性有较强的保障支持能力。 (6)可剪裁性,即要求操作系统可根据具体项目要求,进行功能模块的剪裁,操作系统内核要尽量小。 (7)操作系统的硬件支持是否支持目标硬件平台,开发环境是否集成有丰富的工具,使用是否方便、符合日常的操作习惯(环境的可用性)。 (8)开发环境的兼容性,即开发环境应支持多种常用的文件格式,以利于环境间的数据交换。 (9)具体应用环境对操作系统性能的要求,是否需要中文内核支持,与应用环境标准的兼容性,以及技术支持程度等。
问答题 根据本项目中任务的时间性能参数,请用200字以内的文字(也可用图示)描述任务的被调度关系,并分析系统是否可调度(暂不考虑操作系统的时间开销)?
【正确答案】(1)任务的调度关系描述
①根据实时任务调度的小周期任务优先原则,任务的优先级排列如图1所示。
[*]

图1 任务优先级排列图

②系统最小调度周期不能大于5ms。在5ms时间点到达时,5ms任务可以终止低优先级任务,处理机优先执行5ms的所有任务;当5ms任务完成或被阻塞,可以执行其他低优先级任务:同样,10ms任务可以终止40ms、50ms、1000ms的任务;依次类推,1000ms的任务只能在处理机空闲时被执行。
③同周期任务的优先级可根据任务间的关系采用同等优先级,也可采用不同优先级,但是,同周期最低优先级的任务,其优先级不能低于其他大周期任务的优先级。
(2)可调度性分析
①系统的最大周期为1000ms,其中,5ms周期任务共执行200次、10ms周期任务共执行100次、40ms周期任务共执行25次、50ms周期任务共执行20次,1000ms周期任务共执行1次。
②在1000ms的最大周期内,所有任务共需执行的时间是:T=200×1+100×4+25×8+20×9+1×3=983ms。
③完成所有任务共需时间为983ms,小于最大周期数,因此,系统是可调度的
【答案解析】[解析] 这是一道要求读者根据题目内容完成在操作系统控制下,对本项目算法设计的考虑及完成可调度性分析的综合理解题。
对于“任务的调度关系描述”问题的解答思路如下。
(1)题干的第2段描述了所开发的宇航项目的技术需求。其中,1s和5ms分别被定义为该宇航项目系统的最小时间框架和最大时间框架,并给出了各个周期任务的需求参数。
(2)根据实时任务调度的小周期任务优先原则,任务的优先级排列如图1所示。
(3)在5ms时间点到达时,5ms任务可以终止低优先级任务,处理机优先执行5ms的所有任务;当5ms任务完成或被阻塞,可以执行其他低优先级任务;同理,10ms任务可以终止40ms、50ms或1000ms的任务;依次类推,1000ms的任务只需在处理机空闲时被执行。
(4)同周期任务的优先级可根据任务间的关系采用同等优先级,也可采用不同优先级,但是,同周期最低优先级的任务,其优先级不能低于其他大周期任务的优先级。
对于“系统可调度性分析”问题的解答思路如下。
(1)将该宇航系统的最小时间节拍定义为5ms,即系统最小调度周期不能大于5ms。系统最大工作周期(或称主时间框架)为1000ms。
(2)在每个5ms起点,5ms任务首先运行,占1ms时间,完成后转入处理被终止的任务;如果这个时刻时间到达10ms的起点,则启动2个10ms任务运行,各占2ms时间(共占4ms),完成后转入处理被终止的任务;依次类推,确保在1s周期内所有任务按规定的时间序列执行,如图2所示。
[*]

图2 各周期任务的工作时序示意图

(3)由于系统的最大周期为1000ms,因此5ms周期任务共执行200次,10ms周期任务共执行100次,40ms周期任务共执行25次,50ms周期任务共执行20次,1000ms周期任务共执行1次。
(4)在1000ms的最大周期内,所有任务共需执行时间是:
T=200×1+100×4+25×8+20×9+1×3=983ms
暂不考虑操作系统的时间开销,完成所有任务共需时间为983ms,小于最大周期数(1000ms),因此,该系统是可调度的。