问答题
希赛公司最近签订了一份控制系统软件的研制合同。合同技术要求如下:
①本控制系统的软件运行平台拟采用嵌入式实时操作系统,控制系统的工作周期为10ms,要求控制软件能够精确地按事先预定的时间顺序完成数据的采集、处理和输出。
②为了提高整个系统的可靠性,控制系统采用容错处理,即用两个相对独立的计算机承担相同的工作,通过交叉对比,实现控制的双余度管理;当任何一台计算机出现故障时,系统可以进行单余度控制。系统结构如图所示。
[*]
③在10ms工作周期内的时间分配如表所示。
{{B}}10ms工作周期内时间分配{{/B}}
|
| 功 能 |
时间要求(ms) |
| 余度数据采集 |
1.5 |
| 输入交叉对比 |
1 |
| 数据处理 |
4 |
| 比较监控 |
1 |
| 输出交叉对比 |
1.5 |
| 其他 |
1 |
公司总工程师将本项任务交付给项目主管李工程师实施,要求李工按双方合同要求完成本项目的策划、需求分析和方案设计工作,重点强调系统的可靠性要求,并特别提示:目前比较流行的嵌入式操作系统普遍采用可抢占式优先级调度策略,不能满足用户关于“能够精确地按事先预定的时间顺序完成数据的采集、处理和输出”的要求。
问答题
李工接到任务后,认为本项目比较简单,很快就安排3名技术人员分别负责数据采集/输出模块、数据处理模块和比较监控模块的编写。总工程师听到汇报后,认为李工的方案和安排不妥,理由是李工忽视了系统的可靠性要求,对系统需求的理解不够深入。为实现系统关于可靠性方面的需求:
①你认为在组织结构、人员分工、设计开发等方面应做出哪些安排和规定?
②请写出关于余度表决算法的考虑。
【正确答案】(1)成立两个独立的软件开发小组。
两个小组合作编写统一的系统需求稳当和软件功能说明书。
两个小组分别进行软件开发,最好使用不同的编程设计语言(如C语言、C++语言和ADA语言)。
(2)余度表决算法一般采用主从式。
以下假设设计计算机1为主机,计算机2为从机。
对输入数据进行交叉对比,如果一致,则用计算机1的数据为数据处理;如果不一致,有历史数据时,计算机1用历史数据为数据处理;无历史数据时,若计算机1和计算机2的数据中有一个在门限值之内,则使用该数据作为数据处理,若无门限值之内的数据,则计算机1使用默认数据进行处理。交叉对比不一致,应建立故障记录,若故障记录超过门限值,系统变为单余度工作方式。
对输出数据进行交叉对比,如果一致,用计算机1的数据为输出数据;如果不一致,且计算机1和计算机2均无历史数据,则计算机1用默认数据作为输出数据。交叉对比不一致,应建立故障记录,若故障记录超过门限值,系统变为单余度工作方式。
【答案解析】
问答题
请用200字以内的文字说明李工应如何设计优先级调度策略,并按照如表所示的要求实现任务流程处理。
【正确答案】设计时,将本项目的所有任务设定为统一的优先级,避免优先级抢占;根据10ms工作周期内的时间节点划分,设定操作系统的时钟节拍为0.5ms,设计出一个软件定时器;根据软件定时器的计时情况,在事先安排好的时间节点上,分别启动相应的任务工作;如果在规定的时间上任务工作未完成,则按超时处理。原则上使用上一周期的数据。
【答案解析】
问答题
如下图所示为控制软件的数据流程关系,请根据本题给出的各个功能模块,填补其中的空缺处。
【正确答案】(1)数据采集;(2)交叉对比;(3)同步;(4)同步;(5)交叉对比;(6)输出
【答案解析】
问答题
请用150字以内的文字说明什么是系统失步,系统失步后应如何处理。
【正确答案】计算机1和计算机2进行同步操作时,相互间未能同步上,则称为失步。
在一个工作周期开始时,两个计算机在时间上必须同步,一旦发生失步,为了确保系统的稳定,本周期内的工作将采用上一周期的数据进行;如果输出失步,则输出交叉对比功能无效,使用上一周期的输出数据作为本周期的输出。
【答案解析】