嵌入式实时操作系统ucos期末考试题.docx

上传人:b****4 文档编号:6565266 上传时间:2023-05-10 格式:DOCX 页数:13 大小:23.50KB
下载 相关 举报
嵌入式实时操作系统ucos期末考试题.docx_第1页
第1页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第2页
第2页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第3页
第3页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第4页
第4页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第5页
第5页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第6页
第6页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第7页
第7页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第8页
第8页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第9页
第9页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第10页
第10页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第11页
第11页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第12页
第12页 / 共13页
嵌入式实时操作系统ucos期末考试题.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

嵌入式实时操作系统ucos期末考试题.docx

《嵌入式实时操作系统ucos期末考试题.docx》由会员分享,可在线阅读,更多相关《嵌入式实时操作系统ucos期末考试题.docx(13页珍藏版)》请在冰点文库上搜索。

嵌入式实时操作系统ucos期末考试题.docx

嵌入式实时操作系统ucos期末考试题

一、名词解释:

1、OS:

操作系统

2、MCU:

微控制器

3、ISR:

中断服务子程序

4、FIFO:

先进先出

5、TCB:

TaskControlBlock,任务控制块

6、API:

应用程序接口

7、RTOS:

实时操作系统

8、UART:

通用异步收发传输器

9、MMU:

内存管理单元

10、JTAG:

边界调试接口

二、填空题

1、(优先级抢占和时间片轮转)是一种运行时间一到就剥夺进程处理器使用权的剥夺式调度。

2、实时系统的两个基本要求:

(逻辑或功能正确)、时间正确。

所谓时间正确是指

(实时系统的计算必须在预定的时间内完成)。

3、临界区是指(处理时不可分割的代码、每个进程中访问临界资源的那段程序)

4、UCOS调用系统延时最小时间单位(毫秒)

5、UCOS配置文件中OS_TICKS_PER_SEC的数值定义为32,含义是(时钟频率为32hz)

6如果某一个任务不是必须的监控任务,我们一般采用(动态内存管理)的机制来创建该任务所需要的变量内存空间,要想能使用这种机制,必须首先将内存交给(操作系统)来统一管理

7、如果系统中某一个资源属于独占资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决

8、在UCOS中,优先级用一个数字表示,数字越大表示任务的优先级别越(低)

9、优先级调度的(任务就绪表)标志进程抢占处理器的权利大小。

10、(任务控制块)主要用来记录任务的堆栈指针,任务的当前状态,任务的优先级别等一些与任务管理有关的属性的表。

11、临界区是指(保证共享资源的完整性和可靠性的代码段)。

12、可重入指的是(是一段代码(如一个函数)可以被多个任务同时调用,而不必担心会破坏数据)。

13、某事件周期不确定,持续时间较短,处理容忍度较长,通常我们采取在(任务就绪表)中发现该事件,在(任务调度)中处理该事件。

14、如果系统中有2个资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决。

15、在UCOS中,最低优先级自动赋给(空闲任务)这个系统任务。

16、对CPU资源进行分配的两种操作系统常见调度算法为__(任务级调度_)和(中断级调度)。

17、uC/OS中,主要依靠_(任务堆栈_)来保存任务工作环境。

18、uC/OS为加快就绪任务的检索速度,定义了_OSRdyTbl[]______数组保存所有任务的就绪状态,定义了变量_OSRdyGrp______来表明上面的数组中有那些行有任务就绪。

19、uC/OS进入中断时首先需要调用的函数为_OSIntEnter()______,退出中断时需要调用的函数为___OSIntExit()____。

20、uC/OS为保证低优先级的任务得到CPU控制权,要求除空闲任务外,所有任务必须在任何的合适位置调用系统延时函数如_OSTimeDly()或事件等待函数如OSTimeDlyHMSM()_____。

21、uC/OS如果某个任务的执行需要多个信号量组合决定,可使用系统资源___事件标志组flag__

22、实时操作系统的两个基本要求是__逻辑或功能_____正确和__时间_____正确。

23、uC/OS的设计人员并不知道用户的任务名,却可以正常的调用用户任务,主要依靠的技术是_函数指针_____。

24、uC/OS为保证任务控制块的检索为常量时间,定义的数组为OSPrioTbl[]_______,为加快当前任务的访问速度,定义的变量为__OSTCBCur_____。

25、uC/OS中断级别的调度器为__OSIntExt()___,任务级的调度器为__OSSched()____。

26、uC/OS要求所有操作超过一个机器字长的全局变量必须作为__原子操作____处理,对可能被多个任务调用的函数必须是___可重入___的。

27、uC/OS用来解决优先级反转的问题主要是依靠互斥信号量___解决的。

28、如果系统中有20个资源,n个任务都需要使用,标准的做法是使用(信号量)来解决。

三、选择题

1、下列不属于构成嵌入式系统的实际物理装置的是(c)

A、CPUB、存储器 C、固件D、接口设备

2、下列哪项不属于对实时操作系统的要求(d)

A、多任务B、任务切换为常量时间

C、中断延迟短D、开源

3、关于uC/OS中的优先级,下列说法错误的是(a)

A、优先级数目越大,优先级越高;

B、空闲任务的优先级为OS_LOWEST_PRIO-1;

C、一般要求和中断相关的任务优先级较高;

D、uC/OS版本中优先级数目应小于64

4、下列操作中,不属于OSTCBInit()函数所需要完成的任务是(a)

A、创建空任务控制块链表;

B、为任务从空任务控制块链表中取得一个任务控制块;

C、对任务控制块各个成员进行赋值;

D、把任务控制块链入任务控制块链表;

5、下列哪项不属于中断级调度必须检查的条件(c)

  A、OSRunning==TRUE          B、OSIntNesting==0          

C、OSstatRdy==0           D、OSLockNesting==0 

6、下列不属于嵌入式操作系统特点的是(d)

A、高可靠性B、可裁剪性 C、实时性D、免费

7、下列操作系统中,哪个不属于嵌入式操作系统(c)

A、VxWorksB、WinCEC、MinixD、uC/OS

8、如果常数OS_LOWEST_PRIO为6,使能了统计任务,则最多可安排的用户任务数为(b)

A、6B、5C、4D、7

9、uCOS-II操作系统中最多可以管理多少个任务。

(a)

A、64B、56C、128D、63

10.下面属于嵌入式系统的是(a)

A、“天河”计算机系统B、智能电能表

C、联想笔记本电脑D、核电站控制系统

11、如果常数OS_LOWEST_PRIO为6,使能了统计任务,则最多可安排的用户

任务数为(d)

A、6B、5C、4D、7

12、运行任务被抢占的原因不包括(d)

A、它唤醒了高优先级的任务

B、将自己挂起

C、有多个就绪任务,允许任务的运行的时间片到

D、优先级较低的中断产生并处理中断

13、以下不是嵌入式系统应用领域的是(a)

Α、通用软件B、工业控制

C、消费类电子产品D、机器人

14、下列哪项不属于对实时操作系统的要求(d)

A、多任务B、任务切换为常量时间

C、中断延迟短D、开源

15、以下说法不正确的是(d)

A、任务可以有类型说明B、任务可以返回一个数值

C、任务可以有形参变量D、任务是一个无限循环

四、简答题

1、实时操作系统设计应尽量满足的5个条件(第一章)(9页10业)

实时操作系统必须是多任务系统;

实时操作系统的任务切换时间与系统中任务数无关;

中断延迟的时间可预知并尽可能的短;

2、标准的UCOS中断处理程序都应该使用那些功能的系统功能调用(要求按调用顺序书写,可以不写出具体函数名)。

 

3、OSTimeTick()的功能(书本)

函数OSTimeTick()的任务,就是在每个时钟节拍了解每个任务的延时状态,使其中已经到了延时时限的非挂起任务进入就绪状态。

μC/OS-II与大多数计算机系统一样,用硬件定时器产生一个周期为ms级的周期性中断来实现系统时钟,最小的时钟单位就是两次中断之间相间隔的时间,这个最小时钟单位叫做时钟节拍(TimeTick)。

硬件定时器以时钟节拍为周期定时地产生中断,该中断的中断服务程序叫做OSTickISR()。

中断服务程序通过调用函数OSTimeTick()来完成系统在每个时钟节拍时需要做的工作。

OSTimeTick()是为系统提供时钟节拍的服务程序。

 

4、设ucos设定的一个时钟节拍为20ms,则在代码中主要需要哪两处

5、标准的UCOS中断处理程序都应该使用那些功能的系统功能调用(要求按调用顺序书写,可以不写出具体函数名)。

 

6、ucos都在什么时候可能调用任务调度函数进行任务调度

任务调度的依据是任务就绪表

仅仅在OSTimeDly()任务延时函数中才发生OS_Sched()任务调度。

任务级的任务调度是由OS_Sched()函数完成的,而且任务级的调度要保存所有的状态。

中断级的任务调度是由另一个函数OSIntExt()完成的,在中断级的调度中,一些状态在进入中断前已被保存。

 

创建任务,中断,osdelay,pend;

7、uC/OS中任务的状态主要有哪几种,并对任务状态进行简要解释。

课本52页

运行状态:

任务掌握了CPU的控制权,正在运行中的状态。

就绪状态:

任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行的状态。

在μC/OS-Ⅱ中,当任务一旦建立,这个任务就进入就绪态准备运行;

睡眠状态:

任务驻留在程序空间之中,还没有交给μC/OS-Ⅱ管理的状态,而将任务交给μC/OS-Ⅱ管理是通过调用函数OSTaskCreate()实现的;

被中断状态:

因为中断服务程序正在执行而得不到CPU控制权的状态;(中断服务状态)

等待状态:

任务在等待某一事件的发生还不能运行的状态;

8、uC/OS中如果需要将系统时钟节拍设置为40Hz,主要需要做哪些工作如涉及到主要系统函数,必须进行说明。

9、uC/OS中的任务按照执行方式分类,主要分成哪几种,并对各种方式使用的系统函数做简要说明。

如涉及系统函数调用,必须进行说明。

 

10、uC/OS优先级大小设置的原则都有哪些请简要说明。

(周立功)

传递性:

信息传递的上游任务的优先级高于下游任务的优先级。

如信号采集任务的优先级高于数据处理任务的优先级。

快捷性:

在前面各项条件相近时,越快捷(耗时短)的任务安排的优先级越高,以使其它就绪任务的延时缩短;

频繁性:

对于周期性任务,执行越频繁,则周期越短,允许耽误的时间也越短,故应该安排的优先级也越高,以保障及时得到执行;

中断关联性:

与中断服务程序(ISR)有关联的任务应该安排尽可能高的优先级,以便及时处理异步事件,提高系统的实时性。

如果优先级安排得比较低,CPU有可能被优先级比较高的任务长期占用,以致于在第二次中断发生时连第一次中断还没有处理,产生信号丢失现象;

关键性:

任务越关键安排的优先级越高,以保障其执行机会;

紧迫性:

因为紧迫任务对响应时间有严格要求,在所有紧迫任务中,按响应时间要求排序,越紧迫的任务安排的优先级越高。

紧迫任务通常与ISR关联;

 

11、uC/OS中如果想使用统计任务,主要需要做哪些工作如涉及到系统函数或配置参数,必须指出名字。

统计任务OSTaskStat()。

这个统计任务每秒计算一次CPU在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量OSCPUsage中,以便应用程序通过访问它来了解CPU的利用率,所以这个系统任务OSTaskStat()叫做统计任务

 

12、uC/OS主要有哪些类系统函数禁止在中断中调用,请居于至少三类,并说明其原因。

函数要求指出函数名。

(任务跳转)

13、μC/OS-Ⅱ时间管理提供哪些服务,并简要说明每个函数的功能。

OSTimeDly()以时钟节拍为单位延时或OSTimeDlyHMSM()以钟时分秒毫秒为单位延时

OSTimeDlyResume()恢复延时的任务

OSTimeDlyHMSM()可能需要多个OSTimeDlyResume()才能恢复

OSTimeGet()获得系统时间以时钟节拍为单位

OSTimeSet()设置系统时间以时钟节拍为单位

OSTimeTick()时钟节拍处理函数由时钟节拍中断处理程序调用,用户很少使用

14、给出uCOS-II单次执行任务和周期性执行任务的示意性代码。

单次:

voidMyTask(void*pdata)

{

进行准备工作的代码;定义和初始化变量及硬件设备

任务实体代码;完成该任务的具体功能

调用任务删除函数;将自己删除,操作系统将不再管理它

}

周期:

voidMyTask(void*pdata)

{

进行准备工作的代码;

while

(1){

任务实体代码;

调用系统延时函数;

}

}

15、uC/OS主要有哪几类任务同步方法,请每类至少举出一个系统函数名。

信号量

OSSemCreate()建立信号量OSSemDel()删除信号量

OSMutexCreate()建立互斥信号量

消息邮箱

OSMboxCreate()建立消息邮箱OSMutexDel()

消息队列

OSQCreate()建立消息队列OSQDel()

五、程序分析题

1、#definedebug1

#ifdebug!

=1

fun();

#endif

则在最终的代码中,是否包含fun()函数

答:

不包含

2、在某.h文件中有如下代码,功能为

#ifndef__DEVICE_H

#define__DEVICE_H

….

#endif

答:

如果没有定义__DEVICE_H定义__DEVICE_H,这样多次include同一个.h文件,就不会重复引用其中的内容。

3、写出下列两个任务的执行效果,并分析它们相互之间是否有影响。

voidMyTask4(void*ppdata)

{ppdata=ppdata;

for(;;)

{

LED4=0;

OSTimeDlyHMSM(0,0,0,800);

LED4=1;

OSTimeDly(OS_TICKS_PER_SEC*;

}

}

voidMyTask5(void*ppdata)

{ppdata=ppdata;

for(;;)

{

LED5=0;

OSTimeDlyHMSM(0,0,0,300);

LED5=1;

OSTimeDly(OS_TICKS_PER_SEC);

}

}

设低电平点亮,则led4以2s为周期、亮秒,灭秒闪烁。

设低电平点亮,则led5以为周期、亮秒,灭1秒闪烁。

两者互不影响。

六、程序设计题

有任务Task1和任务Task2,任务Task1的优先级为3,任务Task2的优先级为7,任务要求必须保持Task1、Task2、Task1、Task2……的顺序执行,请写出Task1、Task2和相关的支持代码。

 

信号量!

全局变量

 

 

 

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2