问答题 某公司新近签订了一份控制系统软件的研制合同。合同技术要求如下:
(1)本控制系统的软件运行平台拟采用嵌入式实时操作系统,控制系统的工作周期为10ms,要求控制软件能够精确地按事先预定的时间顺序完成数据的采集、处理和输出。
(2)为了提高整个系统的可靠性,控制系统采用容错处理,即用两个相对独立的计算机承担相同的工作,通过交叉对比,实现控制的双余度管理;当任何一台计算机出现故障时,系统可以进行单余度控制。系统结构如图4-1所示。
问答题 李工接到任务后,认为本项目比较简单,很快就安排3名技术人员分别负责数据采集/输出模块、数据处理模块和比较监控模块的编写。总工程师听到汇报后,认为李工的方案和安排不妥,理由是李工忽视了系统的可靠性要求,对系统需求的理解不够深入。为实现系统关于可靠性方面的需求: (1)你认为在组织结构、人员分工、设计开发等方面应做出哪些安排和规定? (2)请写出关于余度表决算法的考虑。
【正确答案】(1)成立两个独立的软件开发小组。 两个小组合作编写统一的系统需求文档和软件功能说明书。 两个小组分别进行软件开发,最好使用不同的编程设计语言(如C语言、C++语言和ADA语言)。 (2)余度表决算法一般采用主从式。 以下假设计算机1为主机、计算机2为从机。 对输入数据进行交叉对比,如果一致,则用计算机1的数据为数据处理:如果不一致,有历史数据时,计算机1用历史数据为数据处理;无历史数据时,若计算机1和计算机2的数据中有一个在门限值之内,则使用该数据作为数据处理,若无门限值之内的数据,则计算机1使用默认数据进行处理。交叉对比不一致,应建立故障记录,若故障记录超过门限值,系统变为单余度工作方式。 对输出数据进行交叉对比,如果一致,用计算机1的数据为输出数据:如果不一致,且计算机1和计算机2均无历史数据,则计算机l用默认数据为输出数据。交叉对比不一致,应建立故障记录,若故障记录超过门限值,系统变为单余度工作方式。
【答案解析】
问答题 请用200字以内的文字说明李工应如何设计优先级调度策略,并按照上表的要求实现任务流程处理。
【正确答案】设计时,将本项目的所有任务设定为统一的优先级,避免优先级抢占;根据10ms工作周期内的时间节点的划分,设定操作系统的时钟节拍为0.5ms,设计出一个软件定时器:根据软件定时器的计时情况,在事先安排好的时间节点上,分别启动相应的任务工作;如果在规定的时间点上任务工作未完成,则按超时处理。原则上使用上一周期的数据。
【答案解析】[解析] 本问题是在通用操作系统的基础上,为了达到本题所要求的“能够精确地按事先预定的时间顺序完成数据的采集、处理和输出”这一技术特点,在第一问题总体思路的基础上,给出在操作系统之上实现精确的交叉对比与系统同步方法。要求考生对操作系统的任务调度方法要有一定的了解,这样才能准确回答此问题。本题主要考验考生在嵌入式实时操作系统之上开发任务确定性调度的设计方法,需要根据题中表内所示的 10ms内的任务分派情况,设计出系统软件定时器的节拍数和对操作系统中任务管理的限制等问题,重点衡量对嵌入式系统知识面的掌握程度。
问答题 图4-2为控制软件的数据流程关系,请根据本题给出的各个功能模块,填补其中的空缺处。
【正确答案】(1)数据采集 (2)交叉对比 (3)同步 (4)同步 (5)交叉对比 (6)输出
【答案解析】[解析] 本问题包含两个问题,其一是根据本题给出的两余度数据处理流程的关系,以填空方式,给出流程中默认的处理功能及数据流关系。本题主要考验考生对余度管理的具体处理步骤的熟悉程度;其二是说明在系统发生失步的情况下,如何继承性地处理余度数据。 第二步:根据问题要点,仔细阅读正文,找出相应的段落。 (1)本题第二段描述了问题的所在,从图中可以看出,本题的余度方案是两余度系统,输入是从一个数据源进入计算机系统,在系统内一分为二,分别输入到不同的计算机中;而输出仅有一路,这说明,两个计算机分别处理完后,通过交叉对比,选择最为接近的数据作为输出数据。理解了这一点,对余度系统的设计具有一定的帮助。 (2)本题的第一段值得关注,尤其是文中提到的“要求控制软件能够精确地按事先预定的时间顺序完成数据的采集、处理和输出”,是本题关键所在,也是回答[问题2]的基础。 (3)本题的第三段主要通过“10ms工作周期内的时间分配表”间接地描述余度管理的重要功能流程,考生可根据本题上述描述的内容,确定性描绘出本题的控制流程。而失步问题值得关注,本题中没有明确提出,但是,作为余度系统,失步是重要的处理环节,考生必须知道。 第三步:分析试题的内容,构思答案的要点。 通过前两步的分析与归纳,余度问题将是本题首要关注内容之一,也是提高系统可靠性极为重要的考虑内容。通过组织管理、在消化了余度管理核心思想的基础上,主要对任务调度管理、同步设计等关键技术进行解决,就可以设计出较为完善的余度系统。因此,问题1和问题2是通过对本题的理解而形成答案;问题3是基于考生对余度系统理解,完成本命题的流程设计。
问答题 请用150字以内的文字说明什么是系统失步,系统失步后应如何处理。
【正确答案】计算机1和计算机2进行同步操作时,相互间未能同步上,则称为失步。 在一个工作周期开始时,两个计算机在时间上必须同步,一旦发生失步,为了确保系统的稳定,本周期内的工作将采用上一周期的数据进行;如果输出失步,则输出交叉对比功能无效,使用上一周期的输出数据作为本周期的输出。
【答案解析】