某公司新近签订了一份控制系统软件的研制合同。合同技术要求如下:
(1)本控制系统的软件运行平台拟采用嵌入式实时操作系统,控制系统的工作周期为10ms,要求控制软件能够精确地按事先预定的时间顺序完成数据的采集、处理和输出。
(2)为了提高整个系统的可靠性,控制系统采用容错处理,即用两个相对独立的计算机承担相同的工作,通过交叉对比,实现控制的双余度管理;当任何一台计算机出现故障时,系统可以进行单余度控制。系统结构如图所示。
(3)在10ms工作周期内的时间分配如表所示。
功能 | 时间要求(ms) | 功能 | 时间要求(ms) |
余度数据采集 | 1.5 | 比较监控 | 1 |
输入交叉对比 | 1 | 输出交叉对比 | 1.5 |
数据处理 | 4 | 其他 | 1 |
【问题2】
请用200字以内的文字说明李工应如何设计优先级调度策略,并按照表的要求实现任务流程处理。
参考答案:设计时,将本项目的所有任务设定为统一的优先级,避免优先级抢占;根据10ms工作周期内的时间节点的划分,设定操作系统的时钟节拍为0.5ms,设计出一个软件定时器:根据软件定时器的计时情况,在事先安排好的时间节点上,分别启动相应的任务工作;如果在规定的时间点上任务工作未完成,则按超时处理。原则上使用上一周期的数据。
解析:
本问题是在通用操作系统的基础上,为了达到本题所要求的“能够精确地按事先预定的时间顺序完成数据的采集、处理和输出”这一技术特点,在第一问题总体思路的基础上,给出在操作系统之上实现精确的交叉对比与系统同步方法。要求考生对操作系统的任务调度方法要有一定的了解,这样才能准确回答此问题。本题主要考验考生在嵌入式实时操作系统之上开发任务确定性调度的设计方法,需要根据题中表内所示的 10ms内的任务分派情况,设计出系统软件定时器的节拍数和对操作系统中任务管理的限制等问题,重点衡量对嵌入式系统知识面的掌握程度。