[计算机类试卷]2012年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析.doc

上传人:visitstep340 文档编号:493046 上传时间:2018-11-30 格式:DOC 页数:20 大小:283.50KB
下载 相关 举报
[计算机类试卷]2012年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析.doc_第1页
第1页 / 共20页
[计算机类试卷]2012年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析.doc_第2页
第2页 / 共20页
[计算机类试卷]2012年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析.doc_第3页
第3页 / 共20页
[计算机类试卷]2012年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析.doc_第4页
第4页 / 共20页
[计算机类试卷]2012年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、2012年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析 一、试题一 0 阅读下列说兑明和图、表,回答下列问题,将解答填入答题纸的对应栏内。 【说明】 某车载导航系统的结构如图 1一 1所示,由导航处理系统和显示系统两部分组成。导航处理系统安装在某型车的设备区,显示系统安装在某型车的前方,便于驾驶员观看和操作。 导航处理系统由主处理机模块、电子盘模块、信号处理模块和电源模块组成,主处理机模块执行电了地图功能、导航控制功能等,生成的导航显示画面通过信号线在LCD液晶彩色显 示屏显示给驾驶员;信号处理模块处理外部采集数据,将处理后的数据通过内部总线传输给主处理机

2、模块;电子盘模块存储电子地图数据及导航数据。 显示系统由 LCD液晶彩色显示屏、面板键盘 (门定义键盘 )和电源模块组成,主要是显示导航画面,也可通过面板键盘进行导航控制。 1 GPS天线接收卫星信号,将定位信息以帧的形式,通过 RS232串行接口传输给丰处理机模块。通常 RS232的管脚规格如表 1-1所示。 采用 RS232通信,如果发送的数据量超过接收方缓冲区时,可能在接收方缓冲区因处理时间延迟等导致接收数据丢失。因此,需要进 行流量控制。 请回答下面三个问题,将答案填写在答题纸的对应栏中。 (1)如果通过软件进行流量控制,也就是将流量控制信息以特殊的数据进行发送,使用上表中的哪两个管脚

3、进行状态信息发送 ?(回答管脚名称 ) (2)如果通过硬件方式进行流量控制,使用上表中的哪两个管脚进行状态信息发送 ?(回答管脚名称 ) (3)若 RS232适配器的 FIFO深度为 4B,通信波特率为 9600bps,数据位为 8位,无校验,停止位为 1,无数据流控。在应用设计中每次以 4字节为单位进行数据发送,每两次发送之间严格控制时间间隔为 10ms,连续发送 100次,在此过程中,忽略所有由于调度等因素引起的发送延迟。那么,从第 1次发送开始,到第 100次数据发送出去,消耗的时间为多少毫秒 ? 2 主处理机模块与信号处理模块间通过双端口存储器进行数据交换。李工设计时,将双端口存储器空

4、间划分为两个缓冲区,两个缓冲区分别交替地接收信号处理机传输来的最新数据,然后按数据块方式提供给用户程序使用。 假设每个缓冲区的大小为 512 KB,将 512 KB数据写入当前空闲缓冲区接口服务为 Write Buffer,将当前有效的 512 KB数据读出缓冲区的接口服务为 Read Buffer,假设双端口存储器中不提供硬件信号量,两个缓冲区间的互斥操作由软件标记实现,软件对双端口存储器的单次操作 (读写一个字的操作 )为原子操作。 下面是用 C语言设计的一组对双缓冲区的管理程序代码,请填补该程序代码中的空缺,将答案填写在答题纸上。 int*BufferFlag2; *0表示无有效数据,

5、0xff表示有新数据 * int*Mutex2; *软件锁, 0表示末锁定, 0xff表示锁定 * int Read_Buffer(int id, char *data); * 从缓冲区读数据,用于数据处理模块, id表示缓冲的序列号, 0表示缓冲区 1, 1表示缓冲区 2, data为存放读取数据的缓冲,返回值表示读取到有效数据的长度 * void write_Buffer(int id, char *data); * 向缓冲区写数据,用于信号处理模块, id表示缓冲的序列号, 0表示缓冲区 1, 1表示缓冲区 2, data为待写入数据的缓冲 * int INIT_PPC() *数据处理模

6、块端的初始化,缓冲区起始地址为 0xffffc000。 * BufferFlag=(int*)0xffffc000; Mutex= (int*)0xffffc010; *BufferFlag0=0; *BufferFlag1=0; *Mutex0=0; *Mutex1=0; return(0); int PPC_Read_Data(char*Data)( * 数据处理模块读数据程序段 * int len=0; if(!(*BufferFlag0) (!(*BufferFlag1) return(0); *无新数据 * if(*BufferFlag0) if ( (1) ) *Mutex0=0x

7、ff; len=Read Buffer(0, Data); *BufferFlag0=0x00; (2) ; else if(*BufferFlag1) if(!(*Mutex1) *Mutex1=0xff; (3) ; *BufferFlag1=0x00; *Mutex1=0x00; return(len); int DSP_Write_Data() *信号处理模块鸯数据程序段,初始化与数据处理模块端类似,同样以BufferFlag表示与数据处理模块端的对应的标志,即两端操作的是相同的地址空间; 同样 Mutex 也表示与数据处理模块端的对应的软件锁,即两端操作的是相同的地址空间。这里就略去

8、双口在 DSP上的起始地址说明和初始化部分。 * char Data1024*512; while(1) 等待信号处理模块产生新的数据并存入数据缓冲 Data中; if (!(*Mutex0) *Mutex0=0xff; Write_Buffer(0, Data); *BufferFlag0=0xff; *Mutex0=0x00; else if (!(*Mutex1) *Mutex1=0xff; Write_Buffer(1, Data); *BufferFlag1=0xff; *Mutex1=0x00; renurn(0); 3 请回答关于面板按键设计过程中的下列问题,将答案填写在答题纸的

9、对应栏中。 在进行面板键盘处理设计时,通常在扫描键盘过程中,按键会产生机械抖动。针对抖动问题,王工认为只有通过硬件设计才能消除抖动,而李工认为用软件方法就可以解决该问题。针对 抖动问题,你认为可以采用哪类方式消除 ? 二、试题二 3 阅读下列说明和图,回答下列问题,将解答填入答题纸的对应栏内。【说明】 在某嵌入式系统设计中,使用 8片 RAM进行 64KRAM的外部存储器扩展,如图 2-1所示。该 CPU共有 16根地址线, 8根数据线,在设计中,利用 CPU的 MREQ作为访问控制信号,该访问控制信号低电平有效。另外, R W作为读写命令信号(高电平为读,低电平为写 )。 8片 8Kx8位的

10、 RAM芯片与 CPU相连, RAM芯片的片选内部为上拉电阻到电源,各个 RAM芯片的片选信号和 74138译码器的输出相连,译码器的地址选择端连接到 CPU的 A13, A14, A15地址线上。 4 根据上图所示,写出 RAM0, RAM1和 RAM7的地址范围 (请用 16进制进行表示 )。 RAM0: (1) RAM1: (2) RAM7: (3) 若 CPU操作的地址总线为 A800H,结合图 2-1所示的示意图, CPU访问的是哪个 RAM存储器 (4) 。 5 如果运行时发现不论往哪片 RAM写入数据后,以 C000H为起始地址的存 储芯片都有与其相同的数据,假设芯片与译码器可靠

11、工作,则说明: (1)RAM0 RAM7中 (1) 的片选输入端总是处于低电平。 (2)如果有问题的存储芯片的片选输入端总是处于低电平,以下可能原因中描述不正确的是 (2) 。 A该存储芯片的 CS端与存储芯片的 端错连或短路 B该存储芯片的 CS端与 CPU的 端错连或短路 C该存储芯片的 CS端与地线错连或短路 D该存储芯片的 CS端悬空 6 根据连接图,若出现地址线 A15与 CPU断线,并搭接到高电平上,下面描述中正确的是 _。 (该题为 多选题 ) A此时存储器只能寻址 A15=1的地址空间 B此时存储器只能寻址总共 64KB空间的高 32KB地址空间 C此时访问 64KB空间的高

12、32KB地址空间时会错误地访问到低 32KB地址空间 D此时访问 64KB空间的低 32KB地址空间时会错误地访问到高 32KB地址空间 三、试题三 6 阅读下列说明和图,回答下列问题,将解答填入答题纸的对应栏内。 【说明】 操作系统主要功能之一是处理机管理,处理机管理主要是实现处理机扩充,以支持多个进程的并行运行,提高计算机的 计算效率。 进程是动态的概念,通常称进程为程序的一次执行。进程的主体部分是程序,包括程序和数据。进程在执行期间具备确定的状态。 线程是进程中某个单独执行的控制流,也称为轻量进程。 7 简述抢占 (剥夺 )式调度算法和非抢占式调度算法的特点。 8 请从下列叙述中选择出正

13、确的叙述并将其序号填写在答题纸上。 (该题为多选题 ) A在多进程多线程系统中,处理机调度的最小单位是进程 B线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度的实体 C一个线程可以属于 多个进程 D进程处于可执行状态时,它的线程可以被调度执行,处于阻塞状态时,其所有线程均不能执行 E进程的多个线程共享进程的地址空间 9 进程状态之间切换关系如图 3-1所示,具体说明进程三种状态的特点,并将三种状态之间的切换条件 (a)至 (d)填写在答题纸对应栏目中。 四、试题四 9 阅读下列说明和表,回答下列问题,将解答填入答题纸的对应栏内。 【说明】 看门狗 (Watchdog)技术是嵌入式

14、系统设计中保证系统可靠的常用技术。嵌入式控制系统运行时由于受到外部干扰或者内部系 统错误,程序有时会出现 “跑飞 ”现象,导致整个系统瘫痪。为了防止这一现象的发生,对系统可靠性要求较高的场合往往要加入看门狗电路。当系统 “跑飞 ”时,看门狗电路能自动恢复系统的运行。 10 设某嵌入式系统程序完整运行所需的周期时间是 tp,看门狗的定时周期为 tw,要求 tw (1) tp,在程序运行过程中需要定时 (2) (俗称 “喂狗 ”),只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在 tp时刻修改定时器的计数值,定时器将在 tw时刻 (3) ,引发 (4) ,使系统得以重新运行。 请填

15、充以上叙述中空缺处的内容,将答案填写在答题纸的对应栏中。 11 张工在某嵌入式系统中设计实现了看门狗电路,采用的芯片寄存器如表 41、表 4 2、表 4 3、表 4-4所示。 王工编写了以下程序代码,实现看门狗电路的初始化。请仔细阅读每行代码,然后回答问题。 #define PCLK 10000000 第 1行 #define rWTCON (*(volatile unsigned int*)0x53000000) 第 2行 #define rWTDAT (*(volatile unsigned int*)0x53000004) 第 3行 #define rWTCNT (*(volatile

16、unsigned int*)0x53000008) 第 4行 void watchdog_test(void) 第 5行 第 6行 rWTCON = (PCLK 1000000-1) 8)|(3 3)I(1 2); 第 7行 rWTDAT=7812; 第 8行 rWTCNT=7812; 第 9行 rWTCON |= (1 5); 第 10行 请将以下问题的答案写在答题纸的对应栏中。 (1)在程序的第 2、 3、 4行,分别使用了volatile关键字,请说明该关键字的作用。 (2)在程序的第 7行,实现了对看门狗的三个功能设置,除了设置预装比例值外,其他两个功能分别是什么 ? (3)在程序的第

17、10行,实现了对看门狗的哪个功能设置 ? (4)该系统结构采用的编址方式是什么 ? (5)该系统的位序是大端方式还是小端方式 ? 五、试题五 11 阅读下列说明和程序,回答下列问题,将解答填入答题纸的对应栏内。 【说明 】 在开发某嵌入式系统时,设计人员根据系统要求,分别编写了相关程序,其中: 【程序 1】是李工编写的一个数据交换子程序。 【程序 2】是赵工编写的一段利用递归方法判别链表表示的两个数据结构是否相等的程序,若相等则返回值为 1,否则返回为 0。判别的准则是若两个链表的首指针相等,则相等;否则进行内部元素比较,元素中的 itemid表示后面联合体 un的有效性, itemid为 0

18、时,联合体 un里面的 data项有效,否则联合体 un中的 link项有效。 【程序 1】 #include swap(int x, int y) int t; t=x; x=y; y=t; main() int a, b; a=3; b=4; swap(a, b); printf(“ d, d n”, a, b); 【程序 2】 typedef struct Item int itemid; union char data; struct Item*link: un; struct Item*nextItem: ItemNode; int EqualItem(ItemNode *x, It

19、emNode *y) int res; if(x=y) return 1; if( (1) ) if( (2) ) if(x-itemid=0) res= (3) elSe res = (4) if (res) return (5) return 0; 12 执 行【程序 1】后,打印出来的 a=3, b=4;并没有完成数据交换,请指出李工的问题 ?并改正程序错误。 将答案填写在答题纸中对应的栏目。 13 仔细阅读并分析【程序 2】中的 C语言代码,完成其中 (1) (5)空白填空,将答案填入答题纸的对应栏内。 14 李工编写某嵌入式软件时,遇到了一些问题,请帮助李工解答下面 2个问题,并将答

20、案填写在答题纸中对应的栏目。 (1)李工在编译时,程序没有通过编译,经检查程序后将文件头的#include改为 #include“filename h”后编译通过,请问#include和 #include“filename h”的区别是什么 ? (2)李工在编写一段 C+程序时,需要调用一段已编译的 C语言函数,为什么要加 extern“C”? 2012年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷答案与解析 一、试题一 1 【正确答案】 (1)RXD和 TXD(或者 TXD和 RXD) (2)RTS和 CTS(或者 CTS和 RTS) (3)993 75 【试题解析

21、】 本题主要考查嵌入式 系统软硬件协同设计中串口 R$232的基本软硬件应用知识。 在 RS-232标准中,字符是以将比特串一个接一个的串行 (serial)方式传输,优点是传输线少,配线简单,传送距离可以较远。最常用的编码格式是异步起停(asynchronousstart-stop)格式,它使用一个起始比特后面紧跟 7或 8个数据比特(bit),然后是可选的奇偶校验比特,最后是一或两个停止比特。所以发送一个字符至少需要 lO比特,带来的一个好的效果是使用全部的传输速率,发送信号的速率以 10划分。 RS-232设计之初是用来连接调制解调器做传输之用,也因此它的脚位意义通常也和调制解调器传输有

22、关。 RS-232的设备可以分为数据终端设备 (DTE, Data TerminalEquipment, For example, PC)和数据通信设备 (DCE, Data Communication Equipment)两类,这种分类定义了不同的线路用来发送和接受信号。一般来说,计算机和终端设备有 DTE 连接器,调制解调器和打印机有 DCE连接器。使用中采用配线分接器测试连接,或者用试误法来判断电缆是否工作,常常需要参考 相关的文件说明。 RS-232指定了 20个不同的信号连接,由 25个 D-sub(微型 D类 )管脚构成的 DB-25连接器。很多设备只是用了其中的一小部分管脚,出于

23、节省资金和空间的考虑不少机器采用较小的连接器,特别是 9管脚的D sub 或者是 DB-9型连接器广泛使用在绝大多数 PC 机和其他许多设备上。 DB-25和 DB-9型的连接器在大部分设备上是雌型,但不是所有的都是这样。 在使用 R$232进行数据传输时, RXD和 TXD管脚被用来进行数据的接收和发送, R$232的流控方式包括无流控,软件流控和硬件流控三种。无流控 是指没有流控功能。软件流控也称之为 XON XOFF流控,使用控制字符 XON、 XOFF来实现。在 RS232数据通信过程中,如果发送方收到 XOFF字符则停止发送数据,反之如果收到 XON字符则重新开始发送数据。 XON一

24、般定义为十六进制数Ox11, XOFF为十六进制数 0xl3。硬件流控义分为 DSR DTR流控和 CTSRTS 流控。硬件流控是通过硬件的高低电平来通知发送方,接收方的缓冲区是否快满了。 CTS RTS 流控时, R$232(DB9)的 8引脚为 RTS, 7引脚为 CTS。 DSR DTR流控时, R$232(DB9)的 6引脚为 DSR, 4引脚为 DTR。 在使用 R$232进行数据传送时,需要注意其配置方式,包括流控位宽,起始位宽等。在该题目中,数据位宽为 8bit,停止位为 1bit,无别的流控位,因此,每个字节传输需要的位宽为 9bit,按照 9600bps的速率进行传输时,每个

25、字节需要的时间为 9 9600=0 9375ms,因此传输 4字节需要的时间为40 9375ms=3 75ms。在进行 100次的传输中,每隔 10ms传输一次,又由于同时忽略了其他调度时间,由于 3 75小于 10,可知,在每 10ms 传输一次的过程中肯定是 可以将对应的 4字节数据传输完毕。因此,在 100次的传输中,前 99次传输需要的时间是 9910ms=990ms,最后一次也就是第 100次传输消耗的时间为3 75ms,因此,总共需要的时间为 990ms+3 75ms=993 75ms。 2 【正确答案】 (1)!(*Mutex0)或者 *Mutex0=0x00或者 *Mutex0

26、=0 (2)*Mutex0=0x00或者 *Mutex0=0 (3)len=Read Buffert(1, Data) 【试题解析】 本题考查嵌入式系统 中的 C程序设计,要求考生正确使用软件锁。 在本题中主处理机模块与信号处理模块间通过双端口存储器进行数据交换。由信号处理模块发送数据,主处理机模块接收数据。 在本题中给出了很多假设条件,如将双端口存储器空间划分为两个缓冲区,两个缓冲区分别交替地接收信号处理机传输来的最新数据;再如假设双端口存储器中不提供硬件信号量,两个缓冲区间的互斥操作由软件标记实现,软件对双端口存储器的单次操作 (读写一个字的操作 )为原了操作。同时本题也给出了软件程序的架

27、构, BufferFlag 为缓冲区有无新数据的标志, Mutex 为软件锁。 在数据处理模块端的初始化程序 INIT PPC()中,、 BufferFlag 和 Mutex被分配在缓冲区的前端,并被初始化为无数据和未锁定。 信号处理模块写数据程序 DSP_Write_Data()中,初始化与数据处理模块端类似,同样以 BufferFlag 表示与数据处理模块端的对应的标志,即两端操作的是相同的地址空间;同样 Mutex也表示与数据处理模块端的对应的软件锁,即两端操作的是相同的地址空间。信号处理模块写数据程序 DSP_Write_Data()是一个无限循环程序,在等待信 号处理模块产生新的数据

28、,之后就将数据写入双缓冲 Data中。具体过程如下: 1)循环等待新数据; 2)如果缓冲区 0未被锁定,则: (1)缓冲区 0加锁; (2)写数据到缓冲区 0; (3)标记缓冲区 0未有数据: (4)缓冲区 0解锁。 3)如果缓冲区 0已被锁定,则对缓冲区 1重复上述步骤。 在数据处理模块端读数据程序 PPC_Read_Data()首先判断双缓冲有无数据,如果缓冲区 0有数据,再判断缓冲区 0是否加锁,如果未加锁,则先加锁,再读数据,再解锁。对 缓冲区 1同样如此处理。 3 【正确答案】 硬件方法和软件方法都可以。 【试题解析】 在一般的按键设计中,通常的按键所用开关为机械弹性开关。由于机械触

29、电的弹性作用,按键在闭合及断开的瞬间均伴随有一连串的抖动。键抖动会引起一次按键被误读多次。为了确保 CPU对键的一次闭合仅作一次处理,必须去除抖动。消除抖动的方法有硬件和软件两种方法。硬件方法常用专用的去抖芯片或者自己组装一个双稳态消抖电路,就是两个与非门构成的 RS触发器。 软件方法是当检测出键闭合后执行一个 10ms 20ms的延时程序,再一次 检测键的状态,如仍保持闭合状态,则确认真正有键按下。 硬件方法和软件方法都可以消除抖动问题。 二、试题二 4 【正确答案】 (1)0000H-1FFFH (2)2000H-3FFFH (3)E000H-FFFFH (4)RAM5 【试题解析】 在该

30、嵌入式系统设计中,使用 8片 RAM进行 64KRAM的外部存储器扩展。该 CPU共有 16根地址线, 8根数据线。在设计中,各个 RAM的片选信号依次连接在 74LS138的八位输出信号上, 74LS138的地址选择线连接在 CPU的地址 线 A15, A14, A13上,因此,对 8个 RAM的选择依赖于 CPU的地址线A15, A14和 A13的电平。根据 74LS138 可知,对于 RAM0 RAM7的 8个 RAM而言,依次对应的 A15, A14, A13的值为 000, 001, 010, 011, 100, 101,110, 111。 同时,由于每个 RAM的空间大小为 8K,

31、占据的地址线为 A0 A12,因此,可以知道各个 RAM的地址范围依次是: RAM0: 0000H-1FFFH RAM1: 2000H-3FFFH RAM2: 4000H-5FFFH RAM3: 6000H-7FFFH RAM4: 8000H-9FFFH KAM5: A000H-BFFFH RAM6: C000H-DFFFH RAM7: E000H-FFFFH 5 【正确答案】 (1)RAM6 (2)D 【试题解析】 由上题分析可知,对应 C000H地址的片选为 RAM6,也就是说RAM6一直处于被选通状态。 从原理图中的连接情况可以看出, CS 片选只有一商是低电平状态下才可以有效。从原理图

32、中叮以看出, WE以及 MREQ信号都是低电平有效, 同时由题目中知道,该管脚为片内上拉到电源,因此如果该 CS 一直有效,可能潜在的原因包括与 WE 信号或者 MREQ 信号接错,或者是直接与地短接。 6 【正确答案】 A,B,D 【试题解析】 如果 A15与 CPU断开,并且接到高电平,则说明 A15一直为高,那么 A15, A14, A13取值的可能范围为 100, 101, 110, 111。也就是说,此时存储器的寻址范围只能是 A15=1的存储地址空间,与之前的 8片 RAM相比,现在只能寻址到 4片 RAM,因此先前的 64KB 空间中只能寻址到高 32KB 的地址空间。同时,由于

33、高位 A15一直为 1,因此,如果按照用户期望访问总共 64KB 空间的低 32KB 空间时,会错误的访问到高 32KB 地址空间。 三、试题三 7 【正确答案】 所谓抢占式,指按照一定的规则 (例如优先数 ),在每次中断处理结束后进行调度,选择条件最优的进程投入运行; 所谓非抢占式调度是指,进程一旦被调度,就将一直运行,除非由于自身原因不能运行。 【试题解析】 在操作系统初始化时,创建所有进程,进程运行过程中,也可创建子进程。进程调度算法很多,归结为两类,即抢占 (剥夺 )式和非抢占式。抢占式调度策略,指按照一定的 规则 (例如优先数 ),在每次中断处理结束后进行调度,选择条件最优的进程投入

34、运行。非抢占式调度是指,进程一旦被调度,就将一直运行,除非由于自身原因不能运行。 8 【正确答案】 B,D,E 【试题解析】 在多进程多线程系统中,处理机调度的最小单位是线程,而不是进程。 线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度的实体。 进程由一个或一组线程组成;一个线程属于且仅属于一个进程。 进程处于可执行状态时,它的线程可以被调度执行,而处于阻塞状态时,其所有线程均不能执行。 进程的多个线程共享进程的地址空间。 9 【正确答案】 运行状态特点:进程占有 CPU,正在运行其程序时处于运行态。 就绪状态特点:进程具备了一切运行的条件,但由于 CPU正在运行别的进程而使它

35、不能运行时,处于就绪态。 等待状态特点:进程由于自身原因必须等待某个条件的具备,否则不能继续运行时,处于等待态。 (a)某个运行条件不能满足 (例如等待资源 ); (b)等待条件消失 (例如等待的资源已经获得满足 ); (c)进程自愿放弃 CPU使用权,或被强制剥夺 CPU使用权; (d)就绪队列中的进程获得 CPU使用权。 【试题解析】 图 3-1给出了进程三个状态:运行、就绪、等待之间的切换关系,这三种状态的特点如下: 进程拥有 CU,正在运行其程序时处于运行态; 具备了一切运行的条件,但由于 CPU正在运行别的进程而使它不能运行时,进程处于就绪态; 由于自身原因必须等待某个条件的具备,否

36、则不能继续运行时,进程处于等待态。 对于正在运行的进程,当某个运行条件不能满足,例如等待某个资源时,便将CPU让出而转入等待态;当等待条件消失,例如等待的资源已经获得满足,进程从等 待态进入就绪态等待调度;处于运行态的进程,如自愿放弃 CPU,或被高优先级进程强制剥夺 CPU使用权后,从运行态转入就绪态;控制权被释放后, CPU将从就绪队列中选取排在最前面的进程投入运行。就绪队列中获得 CPU使用权的进程,便转入运行态。 三种状态的特点如下。 (1)运行态:进程占有 CPU,正在运行其程序时处于运行态; (2)就绪态:进程具备了一切运行的条件,但由于 CPU正在运行别的进程而使它不能运行时,处

37、于就绪态; (3)等待态:进程由于自身原因必须等待某个条件的具备,否则不能 继续运行时,处于等待态。 三种状态之间的切换条件分别为: (1)某个运行条件不能满足 (例如等待资源 ); (2)等待条件消失 (例如等待的资源已经获得满足 ); (3)进程自愿放弃 CPU使用权,或被强制剥夺 CPU使用权; (4)就绪队列中的进程获得 CPU使用权。 四、试题四 10 【正确答案】 (1)或大于 (2)修改定时器的计数值 (或重新设定看门狗的定时周期 ) (3)溢出 (或超时 ) (4)系统复位中断 【试题解析】 看门狗电路是一个独 立的定时器,有一个定时器控制寄存器,可以设定时间。当系统工作正常时

38、,应用程序在到达时间之前要置位 (喂狗 ),表明程序正常运行,如果没有置的话,就认为是程序跑飞,看门狗电路发出 RESET指令,迫使系统自动复位而重新运行程序。看门狗的主要作用是防止程序跑飞或死锁。 所以,当程序完整运行的周期是 tp,看门狗的定时周期为 tw 时,要求 tw大于tp,在程序运行过程中需要定时修改定时器的计数值 (俗称 “喂狗 ”),只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在 tp 时刻修改定时器的计数值,定时器将在 tw 时刻溢出 (或超时 ),引发系统复位中断,使系统得以重新运行。 11 【正确答案】 (1)类型修饰符,防止编译器对代码进行优化 (2)

39、设置看门狗的分频因素为 1 128、使能中断产生 (3)使能看门狗定时器 (4)统一编址 (5)小端方式 【试题解析】 (1)在驱动程序中对寄存器操作时,经常使用 volatile关键字,作用是确保本条指令不会因编译器的优化而省略,且要求每次直接读值。 (2)在程序第 7行,对看门狗定时器控制寄存器 (WTCON)设置了三个属性值,通过查 表 4 4中 WTCON的相应标识位,可以得知对预装比例值 15: 8、时钟分频因素 4: 3、中断使能 2进行了设置。 (3)在程序第 10行,也对看门狗定时器控制寄存器 (WTCON)进行了设置,通过查表 44中 WTCON的相应标识位,可以得知使能看门

40、狗定时器 5。 (4)从程序的第 2、 3、 4行可以看出,对寄存器的操作,采用存储器指令进行,所以,该系统结构采用的是内存和外设统一编址的方式。 (5)从程序第 7行、第 10行对看门狗定时器控制寄存器的操作,结合表 44中对应寄存器的位定义 可以看出,该系统的位序是小端方式。 五、试题五 12 【正确答案】 李工的问题:形参不能作为函数的输出参数使用。 对应的 swap函数修改如下: swap(int *x, int *y) int t; t= *x; *x= *y; *y=t; 调用时修改为 swap(&a, &b) 【试题解析】 函数 swap采用值传递,虽然将形参 x和 y交换了,但

41、是并不影响到实参,所以执行【程序 1】后,打印出来的 a=3, b=4;并没有完成数据交换。将值传递改成指针传递就可以了。 对应的 swap 函数应修改如下: swap ( int *x, int *y) int t; t = *x; *x = *y; *y=t; 调用时应修改为 swap(&a, &b) 13 【正确答案】 (1)x!=NULL&y!=NULL (2)x-itemid=y-itemid (3)x-un data=y-un data (4)Equalltem(x-un link, y-un link); (5)Equalltem(x-nextItem y-nextItem);

42、【试题解析】 该段 C语言程序是一段利用递归方法判别链表表示的两个数据结构是否相等的程序,若相等则返回值为 1,否则返回为 0。判别的准则是若两个链表的首指针相等,则相等;否则进行内部元素比较,元素中的 itemid 表示后而联合体 un 的有效性, itemid 为 0时,联合体 un 里面的 data项有效,否则联合体 un中的 link项有效。该程序具体如下: 如果 x=y,则返回 1,表示断定两个数据实际指向是同一地方,当然相等; 如果 x和 y都不为空则继续,否则返回 0; 如果 x-itemid=D y-itemid,则继续,否则返回 0; 如果 x-itemid=0,则若 x-u

43、n data=y-un data, res=1,否则 res=0; 如果 x-itemid 不等于 0,联合体 un中的 link 项有效,递归调用 Equalltem(x-un link, y-un link),继续判 断: 如果 res=1,也就是 x-un data=y-un data,则递归调用EqualItem(x nextItem, y-nextItem),判断下一级链表: 如果 res=0,也就是 x-un data不等与 y-un data,则即可断定两个数据不相等,返回为 0。 14 【正确答案】 (1)对于 #include,编译器从丁程指定路径搜索filename h;

44、对于 #include“filename h”,编译器从当前路径和工程指定路径搜索filename h: (2)C+语言支持函数重载, C语言不支持函数重载,函数被 C+编译后在库中的名字与 C语言不同。 C+提供了 C连接交换指定符号 extem“C”来解决名字匹配问题。 【试题解析】 本题考查考生对预处理指令 include的正确理解。对于#include来说,编译器会从工程指定路径搜索 filename h 文件;对于 #include“filename h”来说,编译器会从当前路径和工程指定路径搜索filename h 文件。 C+语言支持函数重载, C语言不支持函数重载,函数被 C+编泽后在库中的名字与 C语言不同。为了 C+程序中能够调用 C程序,就需要 C+提供 C连接交换指定符号 extern“C”来解决名字匹配问题。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1