嵌入式系统语言.docx
《嵌入式系统语言.docx》由会员分享,可在线阅读,更多相关《嵌入式系统语言.docx(26页珍藏版)》请在冰点文库上搜索。
嵌入式系统语言
1.嵌入式系统语言部分
(1)、填空题
1、嵌入式系统的三要素是嵌入、专用、计算机。
2、从嵌入式系统设计的角度来看,嵌入式软件结构可以分为循环轮询系统、前后台系统、单处理器多任务系统以及多处理器多任务系统等几大类。
3、衡量系统实时性的主要指标有:
响应时间、生存时间、吞吐量。
4、软件一般包括:
程序、数据和文档。
5、嵌入式软件的体系结构通常包括:
驱动层、操作系统层、中间件层和应用层。
6、嵌入式系统中的任务管理主要包括:
创建任务、删除任务、改变任务状态和查询任务状态等功能。
7、任务由代码、数据、堆栈和任务控制块TCB构成。
8、TCB包含操作系统用来控制任务所需要的信息,如任务状态、CPU寄存器、调度信息、内存管理信息和I/O状态信息等。
9、任务的主要特性包括:
动态性、并行性和异步独立性。
10、任务的特性可能通过优先级、周期、计算时间、就绪时间和截止时间等参数来进行描述。
11、任务的三种基本状态为:
等待、就绪和执行。
12、BSP的主要特点是:
硬件相关性与操作系统相关性。
13、评价实时操作系统的主要指标有:
系统响应时间、任务切换时间、中断延迟等。
14、实时系统与分时以及批处理系统的主要区别是高及时性和高可靠性。
15、创建任务原语的主要功能有:
为任务申请一个TCB并初始化、将新建任务设置为就绪状态并放入就绪队列中。
16、采用优先级调度算法时,一个高优先级任务由阻塞状态变为就绪状态时,可以有非抢占式和抢占式两种处理方式。
17、一个从磁盘上读文件的任务,在得到了所需要的文件信息后,它的状态应该从阻塞转换成就绪。
18、存储管理中,对存储空间浪费是以内部碎片和外部碎片两种形式表现出来的。
19、地址重定位可以分为静态重定位和动态重定位两种。
20、静态重定位是在程序装入时进行,动态重定位是在程序执行时进行。
21、设备管理的主要目标是:
提高外部设备的利用率、为用户提供统一的使用界面。
22、信号量的物理意义是当信号量值大于零时表示可分配资源的个数;当信号量值小于零时表示等待该资源的任务的个数。
23、用P、V操作管理临界区时,一个任务在进入临界区前应对信号量执行P操作,退出临界区时应对信号量执行V操作。
24、在嵌入式系统中,如果被多个任务同时操作,某些资源可能会变得不确定,这些资源包括:
共享事件结构、共享文件、共享硬件设备。
25、在对一个设备进行操作之前要完成下面三步:
安装设备驱动、初始化设备、打开一个设备并得到文件描述符。
26、块设备以块为单位传输数据,字符设备以字节为单位传输数据。
(2)、是非题
1、任务管理是通过对任务控制块的操作来实现的。
()
2、任务切换是指保存当前任务的TCB、并恢复需要执行任务的TCB的过程。
()
3、VxWorks支持动态优先级。
()
4、分时操作系统的主要目的是提高计算机系统的交互性。
()
5、一个任务从运行状态变成就绪状态必定会引起任务的切换。
()
6、VxWorks中不认任务处于何种状态,任务都参与任务调度。
()
7、VxWorks中不认任务处于何种状态,任务都参与任务调度。
()
8、VxWorks中的任务名是唯一的,任务ID也是唯一的()
9、VxWorks中,当任务从它的入口函数中返回时,exit例程被自动执行。
()
10、删除VxWorks任务时,系统会自动进行TCB和堆栈的回收。
()
11、删除VxWorks任务时,系统会自动进行资源的回收。
()
12、VxWorks中,一个任务可以安全地挂起自己。
()
13、VxWorks中使用taskRestart()时,将使用原来的参数、tid、和TCB重新启动任务,通常用于错误恢复。
()
14、VxWorks中taskSuspend()和taskResume()通常被用于调试和开发的目的。
()
15、VxWorks的lstLib库中对双向链表进行操作的函数不提供数据的互斥和同步。
()
16、VxWorksI/O设备都被当作文件来访问。
()
17、VxWorksI/O设备的创建函数是一样的。
()
18、VxWorks中文件描述符表是全局的。
()
19、VxWorks自动安装部分驱动,如ttyDrv()、pipeDrv()等。
()
20、VxWorks提供文件系统,通过I/O接口访问设备驱动程序。
()
21、VxWorks的文件系统是I/O系统的一部分。
()
22、VxWorks文件系统用于辅助块设备的管理,块设备通过文件系统访问,而不是直接I/O访问。
()
23、块设备不能直接与I/O系统交互,I/O系统与块设备之间必须有文件系统。
()
24、VxWorks为了实现与上层软件的独立,所有块设备驱动遵循统一的接口规范,即数据结构BLK_DEV。
()
25、
26、VxWorks的环形缓冲,没有同步机制,以先进先出的方式工作,要考虑互斥问题。
()
27、VxWorks中禁止抢占并不禁止中断。
()
28、二进制信号量通常用于任务的同步。
()
29、VxWorks中,等待事件的任务调用semTake(),并一直阻塞到得到信号量。
()
30、VxWorks中,互斥操作受优先级的影响。
()
31、VxWorks中,使用互斥操作保护某一资源时,最多只能有一个任务获得对资源操作的权限。
()
32、VxWorks中互斥信号量的初始状态为可用。
()
33、VxWorks中二进制信号量的初始状态为可用。
()
34、VxWorks中,当一个任务用semTake()获取一个计数信号量时,这个信号量的计数就会减1,调用semTake的任务就会继续执行。
()
35、VxWorks中,互斥信号量用于获得对共享资源得唯一访问权。
为要保护得资源创建一个互斥信号量,在对资源操作前,调用semTake();–为了释放资源,调用semGive()。
()
36、采用可变大小存储区管理时,如从页大小为256字节的堆中分配一个大小为350字节的段,实时内核实际分配的段大小为512字节。
()
37、Tornado集成开发平台提供通用的设备驱动程序。
()
38、任务可以被挂起,同时等待多个事件。
()
39、任务、ISR和VxWorks都可以发送事件。
()
40、VxWorks中,每个任务支持最多32个事件,用户最多可以自定义24个事件,每个比特对应一个事件。
()
41、VxWorks中,事件不计次数。
()
42、VxWorks中,一个任务可以注册到多个信号量上,一个信号量一次只能被一个任务注册。
()
43、VxWorks中,当消息队列被释放时,VxWorks可以向注册到该消息队列的任务发送事件。
()
44、VxWorks中任务堆栈是在任务被创建时从系统内存池中分配的,任务创建后堆栈的大小就固定了。
()
45、代码重载是指同一段代码可以被多个任务调用,而且不出错。
()
46、代码重载的代码内应该无全局变量或静态变量,且代码不能修改自身。
()
47、采用WDB调试时,Agent运行在目标板上,TargetServer运行在宿主机上。
()
48、VxWorks兼容POSIX1003.1b标准,支持ANSIC。
()
(3)、选择题
1、下面给出的任务状态变化中,C变化是不可能发生的。
A、运行—>就绪B、运行—>等待
C、等待—>运行D、等待—>就绪
2、某系统中共有5个任务,则处理阻塞状态的任务最多有F个。
A、0B、1C、2D、3E、4F、5
3、在任务管理中,当C时,任务从阻塞状态变为就绪状态。
A、任务被调度程序选中B、任务等待某一事件发生
C、等待的事件发生D、时间片到
4、一个任务被唤醒,意味着该任务D
A、重新占有CPUB、优先级变为最大
C、移至就绪队列之首D、变为就绪状态
5、操作系统中的存储管理是对C进行管理
A、辅助存储器B、整个内存空间
C、内存中的用户区D、内存中的系统区
6、虚拟内存的容量是由计算机的地址结构决定的,若CPU有32位地址,则它提供的虚拟地址空间为B字节。
A、2GB、4GC、1024KD、4096K
7、进行分页式存储管理时,每对内存进行一次读写数据,都要访问B次内存。
A、1B、2C、3D、4
8、虚拟内存的主要用途是D
A、进行内存保护B、允许程序浮动
C、允许程序移动D、扩充主存容量
9、在操作系统的设备管理中引入缓存,其主要目的是D
A、节省内存B、提高CPU的利用率
C、提高I/O设备的使用效率D、改善CPU和I/O设备间速度不匹配的情况
10、操作系统中设备管理中所开辟的缓冲区位于A
A、内存B、外存C、ROMD、寄存器
11、对存储设备,是以D为单位与内存进行数据传输的。
A、位B、字符C、字D、块
12、对输入/输出设备,是以B为单位与内存进行数据传输的。
A、位B、字符C、字D、块
13、在设备管理中,是由B完成真正的I/O操作的
A、输入/输出管理程序B、设备驱动程序
C、中断处理程序D、设备启动程序
14、文件采用哪种存储结构形式,与B有关。
A、文件的逻辑结构B、存储设备的类型
C、文件的长度D、对存储空间的管理方式
15、文件的绝对路径,是从C开始的一条到达文件的唯一路径
A、当前目录B、子目录C、根目录D、用户目录
16、文件系统管理的存储空间,实际上是对C的管理。
A、内存空间B、逻辑地址空间
C、辅存空间D、物理地址空间
17、文件系统的按名存取,主要是通过C实现的。
A、存储空间管理B、文件读写管理
C、文件目录管理D、文件路径管理
18、打开文件命令的主要功能是把文件的FCB内容复制到内存的D中。
A、空闲块表B、索引表C、链接表D、活动目录表
19、临界区是指并发任务中涉及共享变量的A。
A、程序段B、公共数据区C、信息保留区D、管理信息区
20、P、V操作是A
A、两条低级进程通信原语B、两条高级进程通信原语
C、两条系统调用命令D、两条特权指令
21、当信号量的初值为3、当前的值为-1,则表示有B个任务在与该信号量相关的队列上等待。
A、0B、1C、2D、3
22、若两个并发任务相关临界区的互斥信号量MUTEX现在取值为0,则正确的描述应该是B
A、没有任务进入临界区
B、有一个任务进入临界区
C、有一个任务进入临界区,另一个在等待进入临界区
D、不一定
23、有一个系统中有3个并发进程,都需要4个同类资源,试问该系统不会产生死锁的最少资源总数应该是B
A、9B、10C、11D、12
24、影响嵌入式系统软件可靠性的主要因素有:
ABCEFG
A、软件规模
B、软件内部结构
C、软件运行环境
D、电磁兼容性设计
E、软件开发方法
F、软件测试
G、实时性
25、嵌入式硬件系统的主要组成包括:
ABCD
A、嵌入式微处理器
B、总线
C、存储器
D、输入/输出接口设备
26、嵌入式操作系统的内核主要包括ABCDEG
A、任务管理
B、内存管理
C、中断管理
D、通信、同步与互斥机制
E、时间管理
F、驱动管理
G、I/O管理
27、嵌入式操作系统的时间性能指标主要有:
ABCDEF
A、中断延迟时间
B、中断响应时间
C、中断恢复时间
D、上下文切换时间
E、任务响应时间
F、系统调用的执行时间
28、在发生下列情况时,会引起任务调度程序工作:
ABCD
A、一个任务从运行状态变成了阻塞状态
B、一个任务从运行状态变成了就绪状态
C、一个任务从阻塞状态变成了就绪状态
D、一个任务运行结束后被撤消
29、任务调度主要完成的工作包括:
ABCD
A、记录系统中所有任务的有关情况
B、确定分配CPU的算法
C、完成CPU的分配
D、完成CPU的回收
30、在VxWorks中,下面关于任务标识(taskid)正确的是BCD。
A、任务名和任务ID是一一对应的
B、内核在任务创建时分配给任务的
C、对每个任务是唯一的
D、在任务退出后可以重用
31、在VxWorks中,下面关于中断锁正确的描述是:
ABCD
A、intLock()/intUnlock()通常配合使用
B、禁止中断
C、用于保护被任务或中断使用的资源
D、注意要保持criticalregion短
32、在VxWorks中,下面关于任务锁正确的描述是:
ABCD
A、taskLock()/taskUnlock()成对使用
B、禁止所有其它任务执行
C、当非常频繁地做某事时使用
D、注意要保持criticalregion短
33、嵌入式系统在内存管理方面要考虑的主要因素有:
ACD
A、快速而确定的内存管理
B、使用虚拟存储技术
C、使用内存保护技术
D、经常对内存分区,使用确定大小的内存块
34、在嵌入式系统中,应用程序需要通过内存来存储以下内容:
BDE
A、程序代码
B、指令代码
C、操作系统内核
D、静态分配的数据
E、用来存储数据的堆、栈或动态分配的数据
35、批处理操作系统的主要特点是:
BC;分时操作系统的主要特点是:
FH;实时操作系统的主要特点是:
DE;网络操作系统的主要特点是:
AGI。
A、互联性B、封闭性C、自动性D、可靠性
E、及时性F、独立性G、自治性H、交互性I、统一性
36、I/O设备的特性:
ABCDEF
A、I/O设备通过设备驱动程序来使用
B、大多数设备驱动程序执行相同的操作,向设备写数据,从设备读数据
C、VxWorksI/O系统提供了一种简单的设备
D、独立和可移植的接口
E、I/O系统支持重定向
F、设备驱动程序是一个软件模块,用于设备管理
37、VxWorks提供的I/O接口函数有:
ABC
A、BasicI/OAPI
B、BufferedI/OAPI
C、FormattedI/OAPI
38、VxWorks中,通过以下步骤实现对块设备的文件操作:
ABCD
A、安装块设备驱动和文件系统
B、初始化块设备
C、初始化文件系统
D、获得文件描述符
(4)、简答题
1、什么是嵌入式系统?
嵌入式系统的特点是什么?
嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统的主要特点如下:
Ø高实时性OS、系统内核小
Ø专用性强
Ø系统精简
Ø实时性和可靠性要求高
Ø嵌入式软件开发走向标准化
Ø嵌入式系统需要专门的开发工具和环境
2、嵌入式软件的特点有哪些?
Ø规模相对较小,开发难度大
Ø快速启动,直接运行
Ø实时性和可靠性要求高
Ø程序一体化
Ø两个平台
3、嵌入式系统的主要应用领域有哪些?
消费电子、通信设备、家庭设备、汽车电子、工业控制、军事国防、医疗电子等。
4、按实时性来分,嵌入式系统可分为几类?
它们的特点是什么?
可分为硬实时系统和软实时系统。
其中硬实时系统对响应时间有严格要求,如果系统响应时间得不到满足,就会引起系统崩溃或致命的错误;软实时系统对响应时间有要求,但系统响应时间得不到满足时,不会导致系统崩溃或致命的错误。
5、影响系统响应时间的主要因素有哪些?
影响系统响应时间的主要因素有:
Ø任务调度算法
Ø任务执行时间
Ø事件发生的频率
Ø任务数量
Ø中断响应时间
Ø任务响应时间
Ø资源共享
Ø任务间通信
6、根据自己的理解描述嵌入式系统的发展趋势?
行业性嵌入式软硬件平台——标准化
互联网的普及——网络化
半导体技术的改善——小型化
3C技术的快速融合——功能多样化
使用者的需求——个性化
信息服务应用生活化——泛在化
7、嵌入式系统的交叉开发环境是什么含义?
嵌入式的交叉开发环境包括宿主机和目标机两部分,交叉开发环境是指宿主机和目标机是不同的系统,即开发机器!
=执行机器、开发环境!
=执行环境。
8、用图说明冯.诺依曼体系和哈佛体系的区别
在冯·诺依曼体系结构中,数据和程序存储器是共享数据总线的。
数据总线共享有很多优点,比如减小总线的开销。
另外一个优点在于能够把RAM映射到程序空间,这样设备也能访问EEPROM中的内存。
而对于哈佛体系结构的计算机,程序和数据总线是分开的。
这种方式的优势在于能够在一个时钟周期内同时读取程序和数据,这样就相应地减少了执行每一条指令所需的时钟周期。
9、主流的嵌入式处理器有哪些?
ARM、MIPS、PowerPC、X86等。
10、总线的概念是什么?
有哪些主要参数?
总线就是各种信号线的集合,是计算机各部件之间传送数据、地址和控制信息的公共通路。
总线的主要参数有:
总线的带宽、总线的位宽、总线的工作时钟频率。
11、以图例说明嵌入式系统存储器的种类和时钟频率
12、嵌入式处理器的分类有哪些?
13、嵌入式实时系统采用多任务处理方式的主要好处有哪些?
相对于前后台软件结构而言,多任务处理结构的每个任务规模比较小,每个任务更容易编码和调试,其质量也更容易得到保证;
不少应用本身就是由多个任务构成的,采用多任务处理结构是应用问题的一个非常自然的解决方式;
任务之间具有较高的独立性,耦合性小,便于扩展系统功能;
实时性强,可以保证紧急事件得到优先处理。
14、使用线程的主要优势有哪些?
在一个已有的进程中创建一个线程比创建一个全新的进程所需的时间开销少;
终止一个线程比终止一个进程所花费的时间少;
线程切换比进程切换所花费的时间少;
使同一进程内部不同线程之间的通信效率得到显著提高。
15、以图例说明嵌入式软件运行的基本流程
16、任务和程序的主要区别体现在哪些方面?
任务能真实地描述工作内容的并发性,而程序不能;
程序是任务的组成部分,除程序外任务还包括数据、堆栈及其上下文环境等内容;
程序是静态的,任务是动态的;
任务有生命周期,而程序是相对长久的;
一个程序可对应多个任务,反之亦然;
任务具有创建其他任务的功能,而程序没有。
17、任务划分的基本原则有哪些?
I/O依赖性
时间关键性的功能
计算量大的功能
功能内聚
时间内聚
周期执行的功能
18、基本的调度算法有哪些?
先来先服务FCFS
最短周期优先SBF
优先级法(Priority)
轮转法(Round-Robin)
多级队列法(multi-levelqueues)
多级反馈队列(multi-levelfeedbackqueues)
19、什么是操作系统?
通常分为哪几类?
操作系统位于硬件与软件之间,负责管理整个系统,同时将硬件细节与应用隔离开发,为应用提供一个更容易理解和进行程序设计的接口。
通常分为批处理操作系统、分时操作系统、实时操作系统和网络操作系统等。
20、好的实时操作系统应具备哪些功能?
多任务和基于优先级的任务调度
具备消除优先级倒置的机制
任务间同步和通信
实时时钟服务
中断管理服务
操作系统的行为是可知的和可预测的
21、用图例说明什么是任务的优先级倒置
当高优先级任务挂起时,中优先级的任务抢先了正在使用共享资源的低优先级任务,如果高优先级任务已准备就绪并等待运行,但中优先级任务此刻正在运行,这时就出现了优先级倒置问题,即低优先级任务先运行。
22、用图例说明什么是任务的优先级继承
优先级继承是用来解决优先级反转的技术,当优先级反转发生时较低优先级的任务的优先级被暂时地提高以匹配较高优先级任务的优先级,这样就可以使较低优先级任务尽快地执行并且释放较高优先级任务所需要的资源。
23、死锁和锁住的概念是什么?
死琐是指两个任务同时相互等待对方的信号,导致它们永远不能运行。
锁住是指任务没有机会运行,可能是因为它等待的事件没有发生过或它具有太低的优先级。
24、什么是代码临界区?
实现代码临界区的方法有哪些?
代码临界区指一段不可分割的代码,一旦执行,不能被中断。
实现代码临界区的方法有:
一是屏蔽中断,通常在代码执行前关闭中断,执行后打开中断,只能用于单处理机的情形;二是通过信号量机制。
25、请简要叙述VxWorks的主要调度机制
VxWorks内核缺省调度机制为基于优先级的抢占式调度,采用这种机制时,系统把CPU分配给优先级最高的进程,使之执行。
在VxWorks中每个任务都有一个介于最高0到最低255之间的优先级,任一时刻系统内核一旦发现一个优先级更高的任务转变为就绪态,内核就保存当前任务的上下文并把当前任务状态转换为阻塞态,同时切换到这个高优先级任务的上下文执行。
VxWorks的另一种调度机制是时间片轮转,这是一种处理机平均分配的方法,优先级相同的任务公平地分享CPU,即让处于就绪态的优先级相同的一组任务依次轮流执行预先确定长度的时间片。
26、请描述任务间使用共享内存进行通信的原理,并说明其优缺点。
在VxWorks中经常采用用户自定义的数据结构,编写一个函数库来实现对这些全局变量或静态变量的操作,所有使用这个函数库中函数的任务实际上是对同一个物理空间进行操作。
VxWorks提供函数库对公共数据如环形缓存和链表的操作。
共享内存的优点是数据量大、访问效率高;缺点是必要时需要互斥访问。
27、信号量是什么?
VxWorks提供哪几种信号量?
有什么区别?
使用信号量进行任务间通信有何优缺点?
信号量是Vxworks操作系统提供的一种同步和互斥操作机制,实现任务间的信息传递。
VxWorks提供三种类型的信号量
二进制信号量:
最快和常用的信号量,提供阻塞方式,用于实现同步或互斥;
互斥信号量:
用于实现互斥问题的特殊的二进制信号量,解决具有互斥、优先级继承、删除安全和递归等情况;
计数信号量:
类似于二进制信号量,记录信号量被释放的次数。
适合于一个资源的多个实例需要保护的情况。
使用信号量进行任务间通信的优点是效率高,缺点是不能携带信息。
28、请简述计数信号量的工作原理。
计数器信号量通常用于保护多实例访问的资源。
计数信号量可以看成一个内存单元,这个内存单元的内容保存一个计数值。
当一个任务用semTake获取一个计数信号量时,会有两种结果:
如果这个信号量的计数是非0的,那这个信号量的计数就会减1,调用semTake的任务也会继续执行;
如果这个信号量的计数是0,调用semTake的任务会被阻塞,等待信号量的可用。
如果用semTake获取一个计数信号量时指定了超时,并且达到了超时值,这个任务会从阻塞队列移出并移入到就绪队列,同时返回错误状态。
有可能会有几个任务同时等待在一个计数信号量上。
当一个任务调用semGive()释放一个计数信号量时,等待在这个计数信号量队列中的任务会解除阻塞状态。
如果没有任务等待,该信号量计数会加1。
29、简述消息队列的工作机制?
工作模式?
有何