问答题
试题三(共25分)
请详细阅读有关嵌入式实时操作系统方面的描述,回答问题1至问题2。
[说明]
近年来,分区化(Partitioning)技术已被广泛应用于大型嵌入式系统,此项技术重在解决嵌入式系统中多类应用软件共享计算机资源的安全性问题,同时,也可降低软件开发成本,提高软件的可重用能力。某公司承担了一项宇航计算机系统研制任务,要求将以前采用的多处理机系统精简为由单个处理器系统完成,而整体功能应在原有功能不变的基础上,可灵活扩展,并要求原应用软件可被快速移植到新系统。公司将任务交给王工程师组织并承担总体设计工作。在采用何种嵌入式实时操作系统的选型问题上,王工认为宇航系统强调安全性,原系统应用软件功能分布在各自的处理机上,在保持功能不变的情况下,应适当地维持各个软件的相对独立性,因此采用具有分区能力的操作系统(如:VxWorks653)比较合适。
问答题
[问题1](共9分)
图3—1给出了具有分区能力的操作系统架构,该架构支持分区和进程两类调度,并提供了分区的时间、空间隔离保障,保证了应用软件可安全共享计算机资源。请用300字以内文字说明该类操作系统中分区化技术的主要特点。
【正确答案】 (1)应用软件代码和操作系统代码工作在处理器的不同特权级别上,应用软件的失效不会影响操作系统的运行;
(2)每一个分区有自己私有存储资源,分区所占空间是相互隔离的,分区内某进程的失效仅仅只影响到进程所在的分区;
(3)操作系统可为分区内应用软件提供多种类型的API服务,使原有应用软件可方便地移植到分区内运行;
(4)分区的调度是按预先配置好的时间表进行调度,任何一个分区只能在系统分配给它的时间窗口内运行,任何分区不能、也无法占用其他分区的窗口时间;
(5)具有分区能力的操作系统提供健康监控管理能力,它通过操作系统内的故障监测机制,将发现的应用、分区和系统的错误通过注入机制报告健康监控系统,由它进行统一的故障处理;
(6)分区化操作系统允许不同安全等级(A—E)的应用软件共享计算机资源,可实现软件验证的最小化、局部化。
【答案解析】试题三 分析
目前,分区(Partition)技术已被广泛应用于电子系统的数据融合领域,分区技术重在解决处理器速度极大提升后,嵌入式系统无法充分发挥处理器性能的问题。分区化的核心思想就是采用MMU(存储器管理部件)机制将单个处理器划分成多个虚拟机,使每一虚拟机内的应用程序视为在独享处理器资源。本题重点是考查考生对当前基于虚拟机的操作系统的知识掌握程度,同时,考查考生对目前国内广泛使用满足ARINC653标淮的操作系统的了解程度,本题的[问题1]和[问题2]所涉及的内容是一般操作系统设计者或使用者也应具备的基本知识。
[问题1]
图3-1给出的具有分区技术的操作系统架构已明确说明了此类操作系统的能力,通过本图考生就可以正确地回答该问题。首先,从图3—1可以看出此类操作系统不同于平板类操作系统,它支持处理器的两种工作状态(核心态和用户态)实现了应用软件与操作系统软件间的空间和访问权限隔离,保护了系统;其次,图3—1给出的分区和进程的概念,考生完全可以分析出此概念类似于一般操作系统的进程和线程的概念,这里的分区类似于进程、进程类似于线程,从而可推断出分区一定会具备通常进程的属性,进程一定会具备通常进程的属性,即分区具有自己私用空间。分区间空间是隔离的;同样,题干给出的“要求原应用软件可被快速移植到新系统”需求就可以说明最好的移植方法是操作系统提供与原始的API相兼容,因此分区内提供可提供多种API接口是此类操作系统的特性之一;考生如果了解满足ARINC653标准的操作系统,那么它应有的独特性也会知晓,如:分区调度是采用预先配置的时间表调度,实现了分区时间上的确定性和时间隔离,与其他操作系统的最大区别是将健康监控能力植入操作系统内核,实现了系统故障监视和统一的故障处理机制,从应用角度看,分区技术的时空隔离特征,保障了不同安全等级(宇航分为5级A-E)的应用软件可安全共享计算机资源也是主要特征之一。
问答题
[问题2](共16分)
完成该项目总体设计后,王工将软件设计工作交给李工,要求李工在原有软件基础上,完成新环境下的软件设计。经分析,李工统计出了原系统的任务基本情况(见表3—1)。原系统包含三个子系统,为了保证各子系统软件间的相对独立性,将三个子系统移植到新系统的三个分区工作,假设将“显示子系统”、“雷达子系统”和“任务子系统”分别用P1、P2和P3表示,系统的最小时间计时(tick)设为1ms,调度表的主时间框架将是40ms。
根据表3-1给出的原系统各任务周期和最坏执行时间数据,新系统中的所有任务可被调度,请对此进行分析说明,完善表3—2所示的分区调度表的设计,在空(1)~(10)填写正确内容并将解答填入答题纸的对应栏内。
(注: WCET, Worst-Case Execution Time)。
【正确答案】 所有任务可被调度的分析如下:
保证所用任务的可调度性必须满足在主时间框架内,系统中所用任务的最坏执行时间(WCET)均被执行至少一次。初步计算如下:
1(P3T1)≤5ms
1(P1T1)+1(P2T1)≤10m
2(P1T2)+1(P3T2)≤20m
1(P3T1)*8+1(P1T1)*4+1(P2T1)*4+2(P1T2)*2+1(P3T2)*2+5(P1T3)*1+3(P2T2)<=40ms
依据上述三个设计条件,新系统的分区调度表可安排如下:
(1)0 (2)1 (3)2 (4)P2 (5)P3
(6)4 (7)20 (8)1 (9)null (10)7

【答案解析】 本问题主要考查考生对嵌入式实时系统方面的知识掌握程度。这里涉及两方面知识,其一是实时系统的周期任务的可调度分析方法;其二是针对[问题1]中提到的分区的时间表调度算法,完成对表3—1的实例进行可调度分配,使操作系统按照设置好的调度序列调度分区,一定会保证表3—1中所有任务在最坏情况下按其周期要求执行完成。在可调度分析时,表3—1给出实例中,分区调度的主时间框架应是实例中所用任务周期的最大公约数,即40ms,这样可调度分析首先应分析在40ms时间范围内是否可保证表3—1中的所有任务的最坏执行时间都被至少执行一次。在此前提下,以此类推,完成对20ms周期、10ms周期和5ms周期三种周期内的所用任务的最坏执行时间都被至少执行一次,如果四种分析都可调度,则表3—1给出的实例是可调度的。具体公式如下:
1(P3T1)≤5ms;
1(P1T1)+1(P2T1)≤10ms
2(P1T2)+1(P3T2)≤20ms
1(P3T1)×8+1(P1T1)×4+1(P2T1)×4+2(P1T2)×2+1(P3T2)×2+5(P1T3)×1+3(P2T2)≤40ms
如果上述分析是可调度的,那么,完成表3-2的分区调度表就可很容易实现。调度表是分区操作系统调度分区的依据,调度表将主时间框架分成若干个窗口(windows),每一窗口可定义分配给哪个分区运行,启动时间是指本窗口针对主时间框架的第一个窗体“0”的偏移量,持续时间是指分配给此窗口的实际可运行时间。考生在填写时必须清楚以下4点:
(1)分区时间表调度中某窗口的启动时间不一定必须等于上一窗口的启动时间加持续时间。也就是说,窗口间的启动时间可以不连续;
(2)分区时间表调度中的第一个窗口的启动时间一般都为0;
(3)操作系统调度程序在遇见主时间框架最后一个窗口运行完后,应在主时间框架结束时刻重新加载主时间框架,新周期开始从第一个窗口运行;
(4)空窗口(null)是指本时间段操作系统不做任何分区调度,系统运行一种称之为空分区的任务。