1、计算机水平考试中级嵌入式系统设计师 2006年下半年下午真题及答案解析(总分:43.00,做题时间:90 分钟)一、B试题一/B(总题数:3,分数:12.00)1.问题 1 图 16-2的状态图不完全,请将其补充完整,并将下面给出的转换关系填入图 16-2的适当位置。 (分数:4.00)_2.问题 2 按照你对 GPS终端系统的理解,将下列 AF 标记的处理过程填入图 16-3中的(1)(6)处,并选择正确的处理顺序。 A语音对话/按下按钮 B发送信息到通信模块 C监听命令 D接收成功要求监听信息 E要求监听 F通过 GSM发送信息 处理顺序选项: ABDFCE ACDBFE ABFDEC A
2、CBDEF(分数:4.00)_3.问题 3 画出 UML模型中常用关系符的图示:依赖、泛化、关联、聚合和实现。(分数:4.00)_二、B试题二/B(总题数:1,分数:1.00)4.说明 设有数组 X和 Y。X 数组中有 X1,X2、X10 十个数,Y 中有 Y1、Y2、 Y10 十个数。编制程序计算: Z1=X1+Y1 Z2=X2+Y2 Z3=X3-Y3 Z4=X4-Y4 Z5=X5-Y5 Z6=X6+Y6 Z7=X7-Y7 Z8=X8-Y8 Z9=X9+Y9 Z10=X10+Y10 设置一个 10位的标志尺:LOGIC_RULE,若它的每一位决定了当前按顺序该做加法(该位为 0)或减法(该位
3、为 1)操作,则由上列等式可知 LOGIC RULE中的低 10位应是U (1) /U。 汇编程序代码 datarea segment ;define data segment x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y8,y10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10 logic_ruledw U (2) /U ;LOGIC_RULE initialize datarea ends program segment ;define code segment main pro
4、c far assume cs:program, ds:datarea start: ;starting execution address U (3) /U ;save old data segment sub ax, ax ;put zero in AX push ax ;save it on stack ;set DS register to current data segment mov ax,datarea mov ds,ax ;MAIN PART OF PROGRAM GOES HERE mov bx,0 mov ex,10 mov dx,logic_rule next: mov
5、 ax,xbx shr dx,1 jc subtract U (4) /U jmp short result subtract: sub ax, y bx result: U (5) /U ;result=Zn add bx,2 loop next ret ;return to DOS main endp ;end of main part of program program ends ;end of code segment end start ;end of assembly 附:指令及寄存器说明。 MOV 传送字或字节 PUSH 把字压入堆栈 SHR 逻辑右移 JC 有进位时转移 JM
6、P 无条件转移指令 SUB 减法 ADD 加法 LOOP CX 不为零时循环 JNE/JNZ 不等于时转移 CMP 比较 段寄存器 2个: CS: 代码段寄存器 DS: 数据段寄存器 数据寄存器4个: AX: 累加器 BX: 基址寄存器 CX: 计数寄存器 DX: 数据寄存器(分数:1.00)_三、B试题三/B(总题数:4,分数:8.00)5.问题 1 什么是临界资源(critical resource)?请用 100字以内文字简要说明。(分数:2.00)_6.问题 2 代码一所示的方法能够实现共享资源的互斥访问吗?请用 300字以内文字举例说明。(分数:2.00)_7.问题 3 代码一采用了
7、一种繁忙等待(busywaiting)的策略,这种策略的缺点是什么?请用 100字以内的文字简要说明。(分数:2.00)_8.问题 4 如果把 Enter_Critical_Section()函数中的两条语句互换一下位置,会出现什么情况?(分数:2.00)_四、B试题四/B(总题数:5,分数:10.00)9.问题 1 代码段、数据段和 bss段的大小是在什么时候确定的?(分数:2.00)_10.问题 2 常用的堆空间的管理方法主要有哪两种?(分数:2.00)_11.问题 3 当图 16-4所示的程序经过编译连接并装入内存时,与 while语句相对应的可执行代码存放在哪一个段?(分数:2.00)
8、_12.问题 4 在图 16-4所示的程序中,变量 gvCh、gvShort、gvInt、gvLong、array 和 p分别存放在哪一个段?(分数:2.00)_13.问题 5 malloc函数申请的空间位于哪一个段?(分数:2.00)_五、B试题五/B(总题数:4,分数:12.00)14.问题 1 请说明异步传输和同步传输的不同之处。(分数:3.00)_15.问题 2 根据图 16-1,请用 300字以内文字简要描述异步串口的数据传输过程。(分数:3.00)_16.问题 3 如果系统设计采用串行数据传输最高波特率为 115200bps、16 倍分频,则时钟至少为多少赫兹?(分数:3.00)A
9、.B.C.D.17.问题 4 图 16-6所示的电路原理图设计实现了几路串口?每个串口为多少条连接线?(分数:3.00)_计算机水平考试中级嵌入式系统设计师 2006年下半年下午真题答案解析(总分:43.00,做题时间:90 分钟)一、B试题一/B(总题数:3,分数:12.00)1.问题 1 图 16-2的状态图不完全,请将其补充完整,并将下面给出的转换关系填入图 16-2的适当位置。 (分数:4.00)_正确答案:()解析: 试题一分析 统一建模语言 UML是面向对象的建模语言,强调两个重要的概念;鼓励将设计描述为许多交互的对象,而不是一些大的单块代码;至少一些对象对应系统中部分实际的软件或
10、硬件,可以用UML模型化同系统交互的外部世界,在这种情况下,对象可能与人或其他机器对应。 图 16-2是车载终端系统中的 GSM无线电通信模块的状态图,GSM 模块共有四个状态:通话中、有问题、待命和短消息通信中。当 GSM模块在通话、待命和短消息通信状态中出现问题时,会转入错误处理即进入有问题状态。当用户需要语音通话时,转入通话状态,通话完毕后,通信模块重新回到待命状态。当模块无法处理问题时,可以试图连接网络,上报车辆调度中心,此时模块处于空闲待命状态。 图 16-3为车载终端用户通过车载电话或按键与调度中心保持通信的处理过程顺序图。处理过程如下: 用户通过(1)按下按钮或语音对话试图连接调
11、度中心,(2)主控器模块接到连接请求后或连接建立后可以发送消息给通信模块,(5)通信模块负责处理并通过 GSM发送消息,(6)调度中心接收消息成功后要求监听信息,并把该要求返回给车载系统的 GSM通信模块,(3)GSM 通信模块把该请求交给主模块,(4)主模块把监听信息交给 GSM通信模块,然后可由(5)交给调度中心。2.问题 2 按照你对 GPS终端系统的理解,将下列 AF 标记的处理过程填入图 16-3中的(1)(6)处,并选择正确的处理顺序。 A语音对话/按下按钮 B发送信息到通信模块 C监听命令 D接收成功要求监听信息 E要求监听 F通过 GSM发送信息 处理顺序选项: ABDFCE
12、ACDBFE ABFDEC ACBDEF(分数:4.00)_正确答案:()解析:A,或语音对话按下按钮 (2)B,或发送信息到通信模块 (3)E,或要求监听 (4)C,或监听命令 (5)F,或通过 GSM发送信息 (6)D,或接收成功要求监听信息 正确的处理顺序为,或 ABFDEC3.问题 3 画出 UML模型中常用关系符的图示:依赖、泛化、关联、聚合和实现。(分数:4.00)_正确答案:()解析:二、B试题二/B(总题数:1,分数:1.00)4.说明 设有数组 X和 Y。X 数组中有 X1,X2、X10 十个数,Y 中有 Y1、Y2、 Y10 十个数。编制程序计算: Z1=X1+Y1 Z2=
13、X2+Y2 Z3=X3-Y3 Z4=X4-Y4 Z5=X5-Y5 Z6=X6+Y6 Z7=X7-Y7 Z8=X8-Y8 Z9=X9+Y9 Z10=X10+Y10 设置一个 10位的标志尺:LOGIC_RULE,若它的每一位决定了当前按顺序该做加法(该位为 0)或减法(该位为 1)操作,则由上列等式可知 LOGIC RULE中的低 10位应是U (1) /U。 汇编程序代码 datarea segment ;define data segment x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y8,y10 z d
14、w z1,z2,z3,z4,z5,z6,z7,z8,z9,z10 logic_ruledw U (2) /U ;LOGIC_RULE initialize datarea ends program segment ;define code segment main proc far assume cs:program, ds:datarea start: ;starting execution address U (3) /U ;save old data segment sub ax, ax ;put zero in AX push ax ;save it on stack ;set DS
15、register to current data segment mov ax,datarea mov ds,ax ;MAIN PART OF PROGRAM GOES HERE mov bx,0 mov ex,10 mov dx,logic_rule next: mov ax,xbx shr dx,1 jc subtract U (4) /U jmp short result subtract: sub ax, y bx result: U (5) /U ;result=Zn add bx,2 loop next ret ;return to DOS main endp ;end of ma
16、in part of program program ends ;end of code segment end start ;end of assembly 附:指令及寄存器说明。 MOV 传送字或字节 PUSH 把字压入堆栈 SHR 逻辑右移 JC 有进位时转移 JMP 无条件转移指令 SUB 减法 ADD 加法 LOOP CX 不为零时循环 JNE/JNZ 不等于时转移 CMP 比较 段寄存器 2个: CS: 代码段寄存器 DS: 数据段寄存器 数据寄存器4个: AX: 累加器 BX: 基址寄存器 CX: 计数寄存器 DX: 数据寄存器(分数:1.00)_正确答案:()解析:00 110
17、1 1100 (2)00dch, 或 00DCH,或 220,或等价的二进制形式 (3)push ds (4)add ax,ybx (5)mov zbx,ax 试题二分析 (1)Z1 的+运算对应于第 0位值为 0,Z2 的+运算对应于第 1位值位 0,直到 Z10的运算对应于第 9位,因此低 10位为 0011011100。 (2)LOGIC_RULE 初始化为(1)计算的值,十六进制为 00dch。 (3)把数据段压入堆栈,保存旧的数据段。 (4)dx 是保存的 LOGIC RULE值,逻辑右移一位是 1则跳转到 subtract执行减操作,否则顺序执行加操作。 (5)将执行的结果移入 Z
18、。三、B试题三/B(总题数:4,分数:8.00)5.问题 1 什么是临界资源(critical resource)?请用 100字以内文字简要说明。(分数:2.00)_正确答案:()解析:在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用。需要互斥访问的资源称为临界资源(critical resource),如打印机、共享变量和表格等。 试题三分析 本题考查的是任务之间的互斥问题,即基于繁忙等待的任务互斥实现方法。在多道程序系统中,各个任务是并发执行的,由于时钟中断的原因,使任务之间的执行顺序变得难以预测,每个任务都有可能在任意一条语句的后面被中断。在这种情形下,如果要
19、采用基于繁忙等待的互斥实现方法,就必须考察所有的可能,即如果每个任务在不同的位置被中断时,能否正确地实现任务间互斥。另外,在这种基于繁忙等待的方法下,每个任务要循环地去判断当前能否访问临界资源,这样会浪费大量的 CPU时间,而且如果设计不合理,容易导致死锁。6.问题 2 代码一所示的方法能够实现共享资源的互斥访问吗?请用 300字以内文字举例说明。(分数:2.00)_正确答案:()解析:代码一所示的方法不能实现资源的互斥访问。 例如,考虑如下的情形; (1)初始化的时候,flag数组的两个元素值均为 PALSE; (2)任务 0先执行,在执行 while循环语句时,由于 flag1=FALSE
20、,所以顺利结束,不会被卡住,假设这个时候来了一个时钟中断,打断其运行: (3)任务 1去执行,在执行while循环语句时,由于 flag0=FALSE,所以顺利结束,不会被卡住,然后就进入了临界区; (4)后来当任务 0再执行时,也进入了临界区,这样就同时有两个任务在临界区。7.问题 3 代码一采用了一种繁忙等待(busywaiting)的策略,这种策略的缺点是什么?请用 100字以内的文字简要说明。(分数:2.00)_正确答案:()解析:缺点是会浪费大量的 CPU时间。 简要说明:繁忙等待(busy waiting)的基本思路是,当一个任务要进入临界区,首先需要检查是否允许它进入,若允许,则
21、直接进入;否则,循环等待,使用一个循环语句不断执行测试指令,从而浪费了大量的 CPU资源。8.问题 4 如果把 Enter_Critical_Section()函数中的两条语句互换一下位置,会出现什么情况?(分数:2.00)_正确答案:()解析:可能会出现死锁。四、B试题四/B(总题数:5,分数:10.00)9.问题 1 代码段、数据段和 bss段的大小是在什么时候确定的?(分数:2.00)_正确答案:()解析:在编译时确定。 试题四分析 本题考查的是任务的内存布局问题。一般来说,一个任务的内存布局分为五个部分;代码段、数据段、bss 段、堆和栈。代码段主要存放操作系统和应用程序的指令;数据段
22、主要存放操作系统和应用程序当中所有带有初始值的全局变量;bss 段主要存放操作系统和应用程序当中所有未带初始值的全局变量;堆空间是动态分配的内存空间,在系统运行时,可以通过类似于malloc/free之类的函数来申请或释放一段连续的内存空间;栈空间主要保存运行上下文以及函数调用时的局部变量和形参。对于代码段、数据段和 bss 段来说,它们的大小是固定的,在编译时即可确定。栈空间是由系统自动来维护的,而对于堆空间来说,为了提高存储管理的效率,减少开销,通常采用分区存储管理方法 (包括固定分区和可变分区)。10.问题 2 常用的堆空间的管理方法主要有哪两种?(分数:2.00)_正确答案:()解析:
23、固定分区、可变分区。11.问题 3 当图 16-4所示的程序经过编译连接并装入内存时,与 while语句相对应的可执行代码存放在哪一个段?(分数:2.00)_正确答案:()解析:代码段。12.问题 4 在图 16-4所示的程序中,变量 gvCh、gvShort、gvInt、gvLong、array 和 p分别存放在哪一个段?(分数:2.00)_正确答案:()解析:全局变量 gvCh和 gvShort由于没有设置初始值,所以放在 bss段中。 全局变量 gvInt和 gvLong有初始值,所以放在 data段中。 指针 p和数组 array,它们都是 main函数的局部变量,所以存放在栈中。13
24、.问题 5 malloc函数申请的空间位于哪一个段?(分数:2.00)_正确答案:()解析:堆空间。五、B试题五/B(总题数:4,分数:12.00)14.问题 1 请说明异步传输和同步传输的不同之处。(分数:3.00)_解析:15.问题 2 根据图 16-1,请用 300字以内文字简要描述异步串口的数据传输过程。(分数:3.00)_解析:16.问题 3 如果系统设计采用串行数据传输最高波特率为 115200bps、16 倍分频,则时钟至少为多少赫兹?(分数:3.00)A.B. C.D.解析:分析 由于串行数据传输最高波特率为 115200bps、16 倍分频,故时钟至少为 11520016 =1.8432MHz17.问题 4 图 16-6所示的电路原理图设计实现了几路串口?每个串口为多少条连接线?(分数:3.00)_解析: