答案及评分细则
课程名称:_嵌入式系统开发_ 考试形式:闭卷 考试日期: 2012    考试时长:120分钟
一、 判断题(共15分,共 15题,每题1分)
1.T 
2.F 
3.T
4.T
5.  F 
6.T 
7.F 
8.F 
9.F 
10. T
11. F
12.T 
13.F 
14.F
15.F 
二、单向选择题(共20分,共 10题,每题2 分)
1、D 
2、D 
3、B
4、D
5、C
6、 C
7、B
8. C 
9. D
10. C
三、填空题(共20分,共 20空,每题1 分)
1.   乘加操作   SIMD类操作  零开销循环指令 多媒体加速指令   
2.         动态性        并行性      异步独立性   
3. 取指令   译码     执行          写寄存器   
4.   外部中断       
5.     SWI          INT     
6.   防止地址越界        防止操作越权   
7. 存储器映射编址    I/O映射编址 
8.  冯诺依曼结构  哈佛结构 
四、简答题 30分,共5题,第4题为9分,第56分,其余每题5分)
 
1.
答:任务是一个具有独立功能的无限循环的程序段的一次执行,是实时内核调度的单位,具有动态性、并行性和异步独立性等特征。( 1分 )
其中:1)动态性是任务状态是不断变化的,任务状态一般分为就绪态、运行态和等待态。在多任务系统中,任务的状态将随着系统的需要不断进行变化。( 1分 )
2)并行性是系统中同时存在多个任务,这些任务在宏观上是同时运行的。( 1分 )
3)异步独立性是每个任务各自按照相互独立的不可预知的速度运行,走走停停。( 1分 )
任务和进程的主要区别在于:任务的属性中(任务控制块中)包含了于时间相关的参数,比如:优先级别、周期、计算机时间、截止时间等,而内核对认为进行调度时,必须参考并遵循这些参数以确保任务的实时性与确定性。( 1分 )
2.
答:第28到31位为条件标志位 (1分):
–N = ALU产生负数结果 (0.5分)
–Z = ALU产生结果是0  (0.5分)
–C = ALU操作产生进位或借位 (0.5分)
–V = ALU结果溢出 (0.5分)
                                                 
(2分)   
评分细则:见答案。
3.
答:
嵌入式软件的特点决定了其调试具有如下特点:
1) 一般情况下调试器和被调试程序运行在不同的计算机上,调试器主要运行在宿主机上,而被调试程序运行在目标机上。(1分)
2) 调试器通过某种通信方式与目标机建立联系,通信方式可以室串口、并口、网络、JTAG或者专业的通信方式。(1分)
3) 一般在目标机器上有调试器的某种代理,这种代理能配合调试器一起完成对目标机上运行的程序的调试,这种代理可以是某种软件,也可以是某种支持调试的硬件等。(1分)
4) 目标机器也可以是一种虚拟机,在这种情况下,似乎调试器和被调试程序运行在同一台计算机上,但是调试方式的本质没有变化,即被调试程序都是被下载到了目标机器,调试并不是直接通过宿主机操作系统的调试支持来完成的,而是通过虚拟机代理的方式来完成的。(1分)
5) 通过下表-1对上述答案做补充:(1分)
表-1交叉调试与非交叉调试
交叉调试
非交叉调试
调试器和被调试程序运行在不同的计算机上
调试器和被调试程序运行在同一计算机上
可独立运行,无需操作系统支持
需要操作系统支持
被调试程序的装载由调试器完成
被调试程序的装载专门的loader程序完成
需要通过外部通信的方式来控制被调试程序
不需要通过外部通信的方式来控制被调试程序
可以直接调试不同指令集的程序
只能直接调试相同指令集的程序
评分细则:该题根据对每一点的简要叙述酌情给分。
4.
答:嵌入式实时操作系统采用了如下机制提高系统的实时性与确定性。
1)实时调度算法:比如RM,EDF等确保任务截止时间的强实时调度算法。        (1分)
2)可抢占内核:技术系统运行在内核态,高优先级的任务仍然可抢占内核的运行。 (1分)
3)在中断处理过程中设置抢占点减小内核关中断时间。                        (1分)
4)设计高效的数据结构(优先级位图法,双项链表,差分时间链等)。            (1分)
5)确定的内存管理:采用静态内存分配方式,不用虚拟内存管理。              (1分)
6)资源有效等待。                                                        (1分)
7)解决好优先级反转:用优先级继承或者优先级天花板避免优先级反转。        (1分)
8)减小中断相应时间,提高中断处理速度。                                  (1分)
9)浮点数的优化处理,提高浮点运算的速度和效率。                          (1分)
评分细则:该题根据对每一点的简要叙述酌情给分。
5.
答:优先级反转(priority inversion): 优先级反转发生在一个高优先级的任务被迫等待一段不确定时间,有三个优先级不同的task,A,B,C; A的优先级最高,B次之,C最低。其中A和C有共享的临界区。如果C已进入临界区,那么A在进入进入临界区之前,就会被阻塞。task B有可能打断C而进入运行状态,这样C什么时候从临界区退出,就是一个未知的时间。A只有C从临界区退出后才能被调度,A被阻塞的时间也是未知的。这样,低优先级的B先于高优先级的A被调度,优先级发生了逆转。(2分)
1) 优先级继承(priority inherence):优先级继承协议的基本思想是:当一个任务任务T阻塞一个或多个优先级更高的任务任务时,将T的优先级暂时提高到被它阻塞的所有任务中具有的最高优先级,从而使T能够抢占它所阻塞的所有任务而进入临界区,并且不影响与它所进入的临界区无关的其他高优先级的任务的执行.当T退出临界区时就恢复原来的优先级.优先级的继承是可以传递的(transitive).例如,假设T1,T2,T3是3个优先级从高到低排列的任务,如果T3阻塞T2,T2阻塞T1,则T3嵌入式系统开发是什么将通过T2而继承T1的优先级。(2分)
2) 优先级天花板(priority ceiling):优先级天花板协议的目的在于解决优先级继承协议中存
在的死锁和阻塞问题,优先级天花板指控制访问临界资源的信号量的优先级天花板,信号量的优先级天花板为所有使用该信号量的任务任务的最高优先级。在基本的优先级继承协议的基础上,Sha等人提出了一个改进的方案——优先级优先级天花板。与优先级继承协议不同的是,优先级上限协议定义了信号量的优先级上限——一个信号量的优先级上限与可能锁定该信号量的所有任务中优先级最高的任务相等;调度的时候不仅比较任务之间的优先级,还要比较信号的优先级上限。当一个任务T要进入一个临界区的时候,如果T的优先级不比已经被其他任务锁定的所有信号量的优先级上限高,则T被阻塞。(2分)
评分细则:该题根据对每一点的简要叙述酌情给分。
五、综合题(共15分,共2题,第1题为8分,第2题为7分)
1 (8分)在嵌入式实时操作系统中,对于时间等待的任务,可以组织为差分链表的方式进行管理。假设某个时刻,有一组任务T1、T2、T3、T4、T5,分别等待10、5、7、15、12个tick。
(1)画出由五个任务形成的差分链表;
(2)经过8个tick后,T6进入时间等待状态,等待时间为5个tick。请画出该时刻的差分链表;
(3)说明采用差分链管理时间等待任务的好处;
(4)时间等待任务,通常由定时器触发的中断服务程序进行处理。说明中断服务程序的主要性能指标及其基本含义。另外,通常要求中断服务程序的执行时间比较短,说明相应的处理措施。
参考答案与评分细则:
(1)五个任务的差分链表:2分)
(2)8个tick后,T6进入等待链后的差分链表:2分)
(3)每个tick到达后,时间等待链表的管理又更高的效率和时间确定性。1分)
(4)
中断延迟时间:从中断发生到系统获知中断,并且开始执行中断服务程序所需要的时间;中断响应时间:从中断发生到开始执行用户中断服务程序的第一条指令之间的时间;中断恢复时间:用户中断服务程序结束后回到被中断代码之间的时间;中断处理时间:执行用户中断服务程序所需的时间。1. 5分)
可以采用延迟服务程序的方式进行处理:中断服务程序只进行必要的处理;花费时间较长的数据处理工作,则由一个任务来完成。1. 5分)
评分细则:该题根据学生对上描述情况酌情给分。
2 (7分)在ucOS的优先级位图算法中,处于就绪状态任务的优先级,通过优先级就绪组OSRdyGrp和优先级就绪表OSRdyTbl进行管理:
(1)基于C语言,给出OSRdyGrp和OSRdyTbl的变量定义;
(2)从进入就绪态、退出就绪态和获取当前处于就绪态的最高优先级等三个方面,描述优先级位图算法管理就绪任务的基本方法;
(3)对于优先级分别为7、20和18的三个任务,分别描述三个任务依次进入就绪态时的OSRdyGrp及OSRdyTbl[]的值(假设初始OSRdyGrp=0b00000001,OSRdyTbl[0]=0b00010000,OSRdyTbl[1-7]= 0b00000000);
(4)当这三个任务都处于就绪状态时,判断出当前处于就绪态的最高优先级。
参考答案与评分细则:
(1)char OSRdyGrp; char OSRdyTbl[8]; 1分)
(2)进入就绪态:根据优先级的高三位,确定就绪任务在优先级就绪组OSRdyGrp中的位置,并把相应的二进制为置为1;根据优先级的高三位,确定就绪任务在优先级就绪表OSRdyTbl中所对应的组,并根据优先级的低三位,确定就绪任务在优先级就绪表所在组中的二进制位,并把该二进制位置为1。1分)
退出就绪态:根据优先级的高三位,确定就绪任务在优先级就绪表OSRdyTbl中所对应的组,并根据优先级的低三位,确定就绪任务在优先级就绪表所在组中的二进制位,并把该二进制位置为0;如果优先级就绪表对应组所在的字节数据为0,则把优先级就绪组OSRdy
Grp对应的二进制为置为0。1分)
获取当前处于就绪态的最高优先级:对于优先级就绪组OSRdyGrp对应的字节数据,获取1出现的最低二进制位序号,该二进制位序号作为最高优先级的高三位;以二进制位序号索引优先级就绪表OSRdyTbl得到一个字节数据,获取该字节数据中1出现的最低二进制位序号,该序号作为最高优先级的低三位。1分)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。