嵌入式实时操作系统题库1.docx
《嵌入式实时操作系统题库1.docx》由会员分享,可在线阅读,更多相关《嵌入式实时操作系统题库1.docx(25页珍藏版)》请在冰豆网上搜索。
![嵌入式实时操作系统题库1.docx](https://file1.bdocx.com/fileroot1/2023-2/24/155cabb9-d2a3-4eed-89cf-e0286b3652fa/155cabb9-d2a3-4eed-89cf-e0286b3652fa1.gif)
嵌入式实时操作系统题库1
嵌入式实时操作系统题库
一、填空题
1.uC/OS-II是一个简洁、易用的基于优先级的嵌入式(抢占式)多任务
实时内核。
2.任务是一个无返回的无穷循环。
uc/os-ii总是运行进入就绪状态的(最高
优先级)的任务。
3.因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。
所以,确定哪个
任务优先级最高,下面该哪个任务运行,这个工作就是由(调度器(scheduler))来完成的。
4.(任务级)的调度是由函数OSSched()完成的,而(中断级)的调度是
由函数OSIntExt()完成。
对于OSSched(),它内部调用的是(OS_TASK_SW())完成实际的调度;OSIntExt()内部调用的是(OSCtxSw())实现调度。
5.任务切换其实很简单,由如下2步完成:
(1)将被挂起任务的处理器寄存器推入自己的(任务堆栈)。
(2)然后将进入就绪状态的最高优先级的任务的寄存器值从堆栈中恢复到(寄存器)中。
6.任务的5种状态。
(睡眠态(taskdormat)):
任务驻留于程序空间(rom或ram)中,暂时没交给ucos-ii处理。
(就绪态(taskready)):
任务一旦建立,这个任务就进入了就绪态。
(运行态(taskrunning)):
调用OSStart()可以启动多任务。
OSStart()函数只能调用一次,一旦调用,系统将运行进入就绪态并且优先级最高的任务。
(等待状态(taskwaiting)):
正在运行的任务,通过延迟函数或pend(挂起)相关函数后,将进入等待状态。
(中断状态(ISRrunning)):
正在运行的任务是可以被中断的,除非该任务将中断关闭或者ucos-ii将中断关闭。
7.(不可剥夺型)内核要求每个任务自我放弃CPU的所有权。
不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。
8.当系统响应时间很重要时,要使用(可剥夺型)内核。
最高优先级的任务一旦就绪,总能得到CPU的控制权。
9.使用可剥夺型内核时,应用程序不应直接使用不可重入型函数。
调用不可重入型函数时,要满足互斥条件,这一点可以用(互斥型信号量)来实现。
10.(可重入型)函数可以被一个以上的任务调用,而不必担心数据的破坏。
11.可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。
可重入型函数或者只使用(局部变量),即变量保存在CPU寄存器中或堆栈中。
如果使用全局变量,则要对全局变量予以(保护)。
12.每个任务都有其优先级。
任务越重要,赋予的优先级应(越高)。
13.μC/OS-Ⅱ初始化是通过调用系统函数(OSIint())实现的,完成μC/OS-Ⅱ所有的变量和数据结构的初始化。
14.多任务的启动是用户通过调用(OSStart())实现的。
然而,启动μC/OS-Ⅱ之前,用户至少要建立一个应用(任务)。
15.μC/OS-Ⅱ的参数配置文件名为(OS_CFG.H)。
16.删除任务,是说任务将返回并处于(休眠状态),并不是说任务的代码被删除了,只是任务的代码不再被µC/OS-Ⅱ调用。
17.µC/OS-Ⅱ要求用户提供(定时中断)来实现延时与超时控制等功能。
18.定时中断也叫做(时钟节拍),它应该每秒发生10至100次。
19.时钟节拍的实际频率是由用户的应用程序决定的。
时钟节拍的频率越高,系统的负荷就(越重)。
20.µC/OS-II中的信号量由两部分组成:
一个是信号量的(计数值),它是一个16位的无符号整数(0到65,535之间);另一个是由等待该信号量的任务组成的(等待任务表)。
用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成
(1),这样µC/OS-II才能支持信号量。
21.µC/OS-II中表示当前已经创建的任务数全局变量名为:
(OSTaskCtr)。
21.µC/OS-II中表示当前内核运行的标记全局变量名为:
(OSRunning)。
22、一般而言,嵌入式系统的架构可以分为4个部分,分别是(处理器)、存储器、输入输出和软件,一般软件分为(操作系统)和应用软件两个主要部分。
23、从嵌入式操作系统特点可以将嵌入式操作系统分为(实时操作系统)和分时操作系统,其中实时系统可分为(硬实时系统)和软实时系统
24、µC/OS中,为保护任务之间的共享数据和提供任务之间的通信,提供了操作系统任务间通信方法有:
、邮箱、,事件标志。
6、μCOS-II操作系统中处于就绪状态的任务中,优先级最高的任务可以由任务调度马上切换到
7、µC/OS-II中,任务之间的通信和同步,操作系统提供了4种同步对象:
、邮箱、消息队列和事件。
二、选择题
1、uc/os操作系统不包括以下哪种状态
A、运行B、挂起C、退出D、休眠
2、0x70&0x11的运算结果是
A、0x1B、0x11C、0x17D、0x7
3、下列哪种方式不是ucos操作系统中任务之间的通信方式
A、信号量B、消息队列C、邮件D、邮箱
4、在将ucos操作系统移植到ARM处理器上时,以下那些文件不需要修改
A、OS_CORE.CB、include.hC、OS_CPU.HD、OSTaskInit
5、设计实时操作系统时,首先应该考虑系统的()。
A.可靠性和灵活性B.实时性和可靠性C.分配性和可靠性D.灵活性和实时性
6.大多数嵌入式实时操作系统中,为了让操作系统能够在有突发状态时迅速取得控制权,以作出反映,大都采用()的功能。
A:
抢占式任务调度B:
时间片轮转调度C:
单调速率调度D:
FIFO调度
5、以下描述中,哪一项不适用于前后台系统:
()
(A)是中断驱动系统的一种(B)后台是一个循环轮询系统一直在运行
(C)前台由一些中断处理过程组成(D)具有多任务
6、以下哪项不能降低嵌入式系统处理器的功耗()
(A)降低工作电压; (B)提供不同的时钟频率;
(C)关闭暂时不使用的功能块; (D)提升工作的时钟频率。
7、以下关于同步、互斥与通信机制的描述中,错误的是()
(A)间接通信指通信双方不需要指出消息的来源或去向,而通过中间机制来通信。
(B)在消息队列通信中,将数据从发送任务的空间完全拷贝到接收任务的空间,具有较好的时间及空间性能;
(C)操作系统可以环形缓冲的形式管理消息队列;
(D)事件无队列,即多次发送同一事件,在未经过任何处理的情况下,其效果等同于只发送一次。
8、以下哪一项不属于处理器存储器子系统的范畴()。
(A)MMU/MPU(B)Cache(C)writebuffer(D)externalmemory
9、多任务系统的优点很多,但()不是其优点。
(A)将复杂的系统分解成相对独立的多个任务,达到分而制之的目的,从而降低系统的复杂性;
(B)便于保证系统的实时性;
(C)需要增加功能:
任务间的协调,同步和通信功能;
(D)系统的模块化好,提高系统的可维护性。
10、以下关于任务分类的描述,不正确的是()
(A)按照到达情况的可预测性,任务可划分为周期任务和非周期任务;
(B)按照重要程度,任务可分为关键任务和非关键任务;
(C)非关键任务如果没有得到及时执行,将会产生严重后果;
(D)周期任务每隔一个固定的时间间隔就会执行一次。
11、运行任务被抢占的原因不包括()
(A)它唤醒了高优先级的任务(B)将自己挂起
(C)有多个同优先级的就绪任务,运行的时间片到(D)优先级较低的中断产生并处理中断
12.ARM处理器在哪种模式下,具有最多的影子寄存器()
(A)USER(B)SYSTEM(C)FIQ(D)IRQ(E)ABORT
13.以下关于ARM处理器的分类,哪项描述不正确()
(A)应用处理器具有最快频率、最高性能以及合理的功耗
(B)实时控制处理器具有实时响应、合理性能、较低功耗
(C)微控制器具有一般性能、最低成本和极低的功耗
(D)微控制器也可以具有存储器子系统
14.关于中断服务程序的编写原则,以下哪个是不正确的:
()
(A)中断服务程序要尽量地简短,只完成必要的处理工作;
(B)中断服务程序中可以调用操作系统提供的一些服务;
(C)中断服务程序中可以与任务相同的方式使用操作系统的服务;
(D)中断服务程序中可以打开系统的中断响应,以支持中断嵌套。
15.实际的嵌入式系统对实时性的要求各不相同,其中______属硬实时应用。
A.手机B.自动售货机C.汽车发动机/刹车控制D.PDA
4.下面属于嵌入式系统的是__________
A.“天河”计算机系统B.联想上网本C.联想笔记本电脑D.IPhone5
3、μCOS-II操作系统不属于()。
A、RTOS
B、占先式实时操作系统
C、非占先式实时操作系统
D、嵌入式实时操作系统
1、以下说法不正确的是()。
A、任务可以有类型说明B、任务可以返回一个数值
C、任务可以有形参变量D、任务是一个无限循环
3、μCOS-II操作系统中最多可以管理()个任务。
A、64B、56C、128D、63
26在μC/OS-II系统中,OSTimeTick()函数只被以下()函数或过程所调用。
A.OSTickISRB.OSShedC.OSCtxSwD.OSIntCtxSw
14、μCOS-II操作系统不属于()。
A、RTOSB、占先式实时操作系统C、非占先式实时操作系统D、嵌入式实时操作系统
9实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来信息,或建立某个条件后再向前执行,这种制约性合作关系被成为()。
A.同步B.互斥C.调度D.执行
4μCOS-II中对关键代码段由于希望在执行的过程中不被中断干扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是(4)A.先CLI、执行关键代码、再STIB.先STI、执行关键代码、再CLIC.先POPF、CLI、执行关键代码、再PUSHFD.先PUSHF、CLI、执行关键代码、再POPF。
1、以下说法不正确的是
(2)。
A、任务可以有类型说明B、任务可以返回一个数值C、任务可以有形参变量D、任务是一个无限循环
11.以下不是嵌入式系统应用领域的是(C)
Α.移动电话B.汽车电子C.办公系统D.军工航天
12.十进制数235,用八进制表达为(C)
Α.351B.352C.353D.354
20.1Byte等于(D)
Α.1024KBB.1024KMC.1024GBD.8bit
21.以下不是嵌入式系统应用领域的是(A)
Α.电子商务B.移动电话C.消费类电子产品D.军工航天
22.十进制数235,用十六进制表达为(A)
Α.EBB.ECC.EAD.EE
30.1KB等于(B)
Α.1024MBB.1024BC.1024GBD.D.8bit
31.以下不是嵌入式系统应用领域的是(A)
Α.通用软件B.工业控制C.消费类电子产品D.机器人
32.十进制数100,用十六进制表达为(C)
Α.62B.63C.64D.65
1、以下描述中,哪一项不适用于前后台系统:
()
(A)是中断驱动系统的一种(B)后台是一个循环轮询系统一直在运行(C)前台由一些中断处理过程组成(D)具有多任务
3、以下关于同步、互斥与通信机制的描述中,错误的是()
(A)间接通信指通信双方不需要指出消息的来源或去向,而通过中间机制来通信。
(B)在消息队列通信中,将数据从发送任务的空间完全拷贝到接收任务的空间,具有较好的时间及空间性能;
(C)操作系统可以环形缓冲的形式管理消息队列;
(D)事件无队列,即多次发送同一事件,在未经过任何处理的情况下,其效果等同于只发送一次。
5、多任务系统的优点很多,但()不是其优点。
(A)将复杂的系统分解成相对独立的多个任务,达到分而制之的目的,从而降低系统的复杂性;
(B)便于保证系统的实时性;
(C)需要增加功能:
任务间的协调,同步和通信功能;
(D)系统的模块化好,提高系统的可维护性。
6、以下关于任务分类的描述,不正确的是()
(A)按照到达情况的可预测性,任务可划分为周期任务和非周期任务;
(B)按照重要程度,任务可分为关键任务和非关键任务;
(C)非关键任务如果没有得到及时执行,将会产生严重后果;
(D)周期任务每隔一个固定的时间间隔就会执行一次。
7、运行任务被抢占的原因不包括()
(A)它唤醒了高优先级的任务(B)将自己挂起
(C)有多个同优先级的就绪任务,运行的时间片到(D)优先级较低的中断产生并处理中断
10.关于中断服务程序的编写原则,以下哪个是不正确的:
()
(A)中断服务程序要尽量地简短,只完成必要的处理工作;
(B)中断服务程序中可以调用操作系统提供的一些服务;
(C)中断服务程序中可以与任务相同的方式使用操作系统的服务;
(D)中断服务程序中可以打开系统的中断响应,以支持中断嵌套。
三、简单题
1、目前使用的嵌入式操作系统主要有那些?
请举出六种常用的。
WindwosCE、WindowsMobile、VxWork、Linux、uCos、Symbian、QNX
2、根据嵌入式系统的特点、写出嵌入式系统的定义
答:
以应用为中心,以计算机技术为基础,软硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统
3、分析抢占式和非抢占式的区别
执行的过程中对中断的处理方式不一样。
抢占式:
某一中断执行完成后,如果有更高优先级的任务处于就绪状态,将执行更高优先级的任务,而非抢占式不一样,一个任务只有主动放弃CPU控制权,其他任务才能够获得CPU的控制权。
4.OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()的含义及作用?
答:
OS_ENTER_CRITICAL():
关中断;OS_EXIT_CRITICAL():
开中断。
关中断和开中断是为了保护临界段代码。
5.uC/OS-II的任务框架答:
voidtask_xxx(void*pData)
{/*该任务的初始化工作*/„„
/*进入该任务的死循环*/
while
(1)
{„„}
}
6、uC/OS-II的三类事件
(1)中断服务函数发送的事件
(2)系统延时时间到所引起的(3)其它任务发送的事件。
7.与共享资源打交道时,使之满足互斥条件最一般的方法包括哪些?
答:
包括:
关中断、使用测试并置位指令、禁止做任务切换、利用信号量等。
8.描述利用μC/OS_Ⅱ宏调用关中断和开中断处理共享数据的示意性代码程序。
答:
OS_ENTER_CRITICAL();/*在这里处理共享数据*/OS_EXIT_CRITICAL();
9.信号量的典型应用包括哪些?
答:
信号量(Semaphores)是一种约定机制,在多任务内核中的典型应用包括:
(1)控制共享资源的使用权(满足互斥条件);
(2)标志某事件的发生(3)使两个任务的行为同步
10.对信号量只能实施哪三种操作?
答:
一般地说,对信号量只能实施三种操作:
(1)初始化(INITIALIZE),也可称作建立(CREATE);
(2)等信号(WAIT)也可称作挂起(PEND);(3)给信号(SIGNAL)或发信号(POST)。
11.给出μC/OS-Ⅱ中如何用信号量处理共享数据的示意代码?
答:
通过获得信号量处理共享数据的示意代码如下:
OS_EVENT*SharedDataSem;
voidFunction(void){
INT8Uerr;
OSSemPend(SharedDataSem,0,&err);/*共享数据的处理在此进行,(中断是开着的)*/OSSemPost(SharedDataSem);
}
11.给出初始化和启动μC/OS-Ⅱ的示意代码。
答:
voidmain(void){
OSInit();/*初始化uC/OS-II*/.
通过调用OSTaskCreate()或OSTaskCreateExt()创建至少一个任务;.
OSStart();/*开始多任务调度!
OSStart()永远不会返回*/}
12.任务可以是一个无限的循环,也可以是在一次执行完毕后被删除掉。
请给出示意代码结构。
答:
µC/OS-Ⅱ描述的任务示意代码必须是以下两种结构之一:
voidYourTask(void*pdata){
for(;;){
/*用户代码*/
调用µC/OS-Ⅱ的服务例程之一:
OSMboxPend();OSQPend();OSSemPend();
OSTaskDel(OS_PRIO_SELF);
OSTaskSuspend(OS_PRIO_SELF);OSTimeDly();
OSTimeDlyHMSM();/*用户代码*/}}或
voidYourTask(void*pdata){
/*用户代码*/
OSTaskDel(OS_PRIO_SELF);}
14.μC/OS-Ⅱ任务管理提供哪些服务?
答:
μC/OS-Ⅱ任务管理提供的服务包括:
(1)建立任务:
OSTaskCreate()或OSTaskCreateExt();
(2)删除任务:
OSTaskDel();
(3)请求删除任务:
OSTaskDelReq();
(4)改变任务的优先级:
OSTaskChangePrio();(5)挂起任务:
OSTaskSuspend();(6)恢复任务:
OSTaskResume();
(7)获得有关任务的信息:
OSTaskQuery()。
15.μC/OS-Ⅱ时间任务管理提供哪些服务?
答:
μC/OS-Ⅱ时间任务管理提供的服务包括:
(1)任务延时函数:
OSTimeDly()
(2)按时分秒延时函数:
OSTimeDlyHMSM()
(3)让处在延时期的任务结束延时:
OSTimeDlyResume()(4)设置系统时间:
OSTimeGet()(5)获得系统时间:
OSTimeSet()
16.μC/OS-Ⅱ提供的数据共享和任务通讯的方法包括哪些?
答:
μC/OS-Ⅱ提供的数据共享和任务通讯的方法包括五种方法:
(1)利用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来关闭中断和
打开中断。
(2)利用函数OSSchedLock()和OSSchekUnlock()对µC/OS-II中的任务调度函
数上锁和开锁。
(3)信号量。
(4)邮箱。
(5)消息队列。
17.对于事件控制块进行的一些通用包括哪些操作?
答:
对于事件控制块进行的一些通用操作包括:
(1)初始化一个事件控制块:
OSEventWaitListInit();
(2)使一个任务进入就绪态:
OSEventTaskRdy();
(3)使一个任务进入等待该事件的状态:
OSEventTaskWait();(4)因为等待超时而使一个任务进入就绪态:
OSEventTO()。
18.μC/OS-Ⅱ信号量提供哪些服务?
答:
μC/OS-Ⅱ信号量提供的服务包括:
(1)建立一个信号量:
OSSemCreate();
(2)等待一个信号量:
OSSemPend();(3)发送一个信号量:
OSSemPost();
(4)无等待地请求一个信号量:
OSSemAccept();(5)查询一个信号量的当前状态:
OSSemQuery()。
19.μC/OS-Ⅱ邮箱提供哪些服务?
答:
μC/OS-Ⅱ邮箱提供的服务包括:
(1)建立一个邮箱:
OSMboxCreate();
(2)等待一个邮箱中的消息:
OSMboxPend();(3)发送一个消息到邮箱中:
OSMboxPost();
(4)无等待地从邮箱中得到一个消息:
OSMboxAccept();(5)查询一个邮箱的状态:
OSMboxQuery()
20.μC/OS-Ⅱ消息队列提供哪些服务?
答:
μC/OS-Ⅱ消息队列提供的服务包括:
(1)建立一个消息队列:
OSQCreate();
(2)等待一个消息队列中的消息:
OSQPend();(3)向消息队列发送一个消息(FIFO):
OSQPost();(4)向消息队列发送一个消息(LIFO):
OSQPostFront();(5)无等待地从一个消息队列中取得消息:
OSQAccept();(6)清空一个消息队列:
OSQFlush();
(7)查询一个消息队列的状态:
OSQQuery()。
21.μC/OS-Ⅱ内存管理提供哪些服务?
答:
μC/OS-Ⅱ内存管理提供的服务包括:
(1)建立一个内存分区:
OSMemCreate();
(2)分配一个内存块:
OSMemGet();(3)释放一个内存块:
OSMemPut();
(4)查询一个内存分区的状态:
OSMemQuery()。
22.移植µC/OS-Ⅱ时,要使µC/OS-Ⅱ正常运行,处理器必须满足哪些基本要求?
答:
要使µC/OS-Ⅱ正常运行,处理器必须满足以下要求:
(1)处理器的C编译器能产生可重入代码。
(2)用C语言就可以打开和关闭中断。
(3)处理器支持中断,并且能产生定时中断(通常在10至100Hz之间)。
(4)处理器支持能够容纳一定量数据(可能是几千字节)的硬件堆栈。
(5)处理器有将堆栈指针和其它CPU寄存器读出和存储到堆栈或内存中的指令。
四、名词解释
1.代码的临界段
代码的临界段也称为临界区,指处理时不可分割的代码。
2.资源
任何为任务所占用的实体都可称为资源。
资源可以是输入输出设备;资源也
可以是一个变量,一个结构或一个数组等。
3.共享资源
可以被一个以上任务使用的资源叫做共享资源。
4.任务
一个任务,也称作一个线程,是一个简单的程序,该程序可以认为CPU完全只属该程序自己。
典型地、每个任务都是一个无限的循环。
5.任务切换
指ContextSwitch,其含义是CPU寄存器内容切换。
当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(Context),即CPU寄存器中的全部内容。
6.内核
多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。
内核提供的基本服务是任务切换。
7.调度(Scheduler)
内核的主要职责之一,就是要决定该