列表

详情


近年来,分区化(Partitioning)技术已被广泛应用于大型嵌入式系统,此项技术重在解决嵌入式系统中多类应用软件共享计算机资源的安全性问题,同时,也可降低软件开发成本,提高软件的可重用能力。某公司承担了一项宇航计算机系统研制任务,要求将以前采用的多处理机系统精简为由单个处理器系统完成,而整体功能应在原有功能不变的基础上,可灵活扩展,并要求原应用软件可被快速移植到新系统。公司将任务交给王工程师组织并承担总体设计工作。在采用何种嵌入式实时操作系统的选型问题上,王工认为宇航系统强调安全性,原系统应用软件功能分布在各自的处理机上,在保持功能不变的情况下,应适当地维持各个软件的相对独立性,因此采用具有分区能力的操作系统(如:VxWorks653)比较合适。

【问题1】(共9分)
图3-1给出了具有分区能力的操作系统架构,该架构支持分区和进程两类调度,并提供了分区的时间、空间隔离保障,保证了应用软件可安全共享计算机资源。请用300字以内文字说明该类操作系统中分区化技术的主要特点。
 

图3-1 具有分区能力的操作系统架构

【问题2】(共16分)
完成该项目总体设计后,王工将软件设计工作交给李工,要求李工在原有软件基础上,完成新环境下的软件设计。经分析,李工统计出了原系统的任务基本情况(见表3-1)。原系统包含三个子系统,为了保证各子系统软件间的相对独立性,将三个子系统移植到新系统的三个分区工作,假设将“显示子系统”、“雷达子系统”和“任务子系统”分别用P1、P2和P3表示,系统的最小时间计时(tick)设为1ms,调度表的主时间框架将是40ms。
根据表3-1给出的原系统各任务周期和最坏执行时间数据,新系统中的所有任务可被调度,请对此进行分析说明,完善表3-2所示的分区调度表的设计,在空(1)~(10)填写正确内容并将解答填入答题纸的对应栏内。
(注:WCET,Worst-Case Execution Time)。
表3-1 原系统软件任务情况

表3-2 分区调度表设计(时间单位:ms)


表3-2(续) 分区调度表设计(时间单位:ms)

参考答案:

【问题1】

分区是一个相对独立实体,对于每个分区来讲,它们在空间和时间上完全隔离;分区由一个以上的进程组成,在时间上,每个分区按预先设定的时间片运行,分区没有优先级,系统中的所有分区按线性方式顺序工作;在空间上,每个分区有自己独立的存储空间,其空间大小是预先分配好的,任何分区内的进程发生故障不会影响其他分区的进程运行。分区技术使应用之间既能够相互独立的工作而不相互影响,又能共享系统资源;各个应用之间故障隔离,防止错误蔓延,可靠性和安全性高。开发人员能够快速地将新的软件模块插入系统,从而实现了高级别的系统集成和更新。

【问题2】

(1)0          (2)1                 (3)2                 (4)P2               (5)P3

(6)4          (7)20               (8)3                 (9)null               (10)7

详细解析:

【问题1】
图3-1给出的具有分区技术的操作系统架构已明确说明了此类操作系统的能力,通过本图考生就可以正确地回答该问题。
【问题2】
本题涉及到两方面的知识,其一是实时系统的周期任务的可调度分析方法;其二是正对问题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的分区调度表就可很容易实现。调度表是分区操作系统调度分区的依据,调度表将时间框架分成若干个窗口,每一个窗口可定义分配给哪个分区运行,启动时间是指本窗口针对主时间框架的第一个窗体“0”的偏移量,持续时间是指分配给此窗口的实际可运行时间。考生在填写时必须清楚以下4点:
(1)分区时间表调度中某窗口的启动时间不一定必须等于上一窗口的启动时间加持续时间。也就是说,窗口间的启动时间可以不连续;
(2)分区时间表调度中的第一个窗口的启动时间一般都为0;
(3)操作系统调度程序在遇见主时间框架最后一个窗口运行完后,应在主时间框架结束时刻重新加载主时间框架,新周期开始从第一个窗口运行;
(4)空窗口(null)是指本时间段操作系统不做任何分区调度,系统运行一种称之为空分区的任务。

上一题