12UCOS学生练习- 带答案

更新时间:2024-01-29 13:37:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、名词解释:

1、OS 操作系统是一种系统软件。

2、MCU 微控制单元,又称单片微型机或单片机。 3、ISR 中断服务程序 4、FIFO 先入先出队列 5、TCB 任务控制块

6、API 应用程序编程接口

7、RTOS 是计算机系统及时响应外部事件的请求,并能及时控制所有实时设备与实时任务协调运行,且能在一个规定的时间内完成对事件的处理的系统。 8、UART 通用同步异步收发器,用于异步通信,俗称串口。 9、MMU 内存管理单元。

10、JTAG 是一种国际标准测试协议,主要用于芯片内部测试。

二、填空题

1、( 抢占式调度 )是一种运行时间一到就剥夺进程处理器使用权的剥夺式调度。 2、实时系统的两个基本要求:( 逻辑或功能正确 )、时间正确。所谓时间正确是指 ( 计算必须在预定的时间内完成 )。

3、临界区是指( 处理时不可分割的代码,一旦这部分代码开始执行,不允许任何中断打断) 4、UCOS调用系统延时最小时间单位( OS_TICKS_PER_SEC)

5、UCOS配置文件中OS_TICKS_PER_SEC的数值定义为32,含义是(一秒钟32个节拍)

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

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

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进入中断时首先需要调用的函数为OS_ENTER_CRITICAL(),退出中断时需要调用的函数为OS_EXIT_CRITICAL()。

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

OS_EventTaskWait()。OSTimeDlyHMSM

21、uC/OS如果某个任务的执行需要多个信号量组合决定,可使用系统资源__信号量集。 22、实时操作系统的两个基本要求是____时间 _正确和__ 逻辑或功能 正确。

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

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

25、uC/OS中断级别的调度器为OSIntExit(),任务级的调度器为 OSS_hed()

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

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

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

三、选择题

1、下列不属于构成嵌入式系统的实际物理装置的是 ( C ) A、CPU B、存储器 C、固件 D、接口设备 2、下列哪项不属于对实时操作系统的要求 A、多任务 B、任务切换为常量时间 C、中断延迟短 D、开源

( D )

3、关于uC/OS中的优先级,下列说法错误的是 ( A ) A、优先级数目越大,优先级越高; B、空闲任务的优先级为OS_LOWEST_PRIO-1; C、一般要求和中断相关的任务优先级较高;

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

4、下列操作中,不属于OSTCBInit()函数所需要完成的任务是 ( A ) A、创建空任务控制块链表;

B、为任务从空任务控制块链表中取得一个任务控制块; C、对任务控制块各个成员进行赋值; D、把任务控制块链入任务控制块链表; 5、下列哪项不属于中断级调度必须检查的条件 A、OSRunning==TRUE C、OSstatRdy==0

( c )

B、OSIntNesting==0 D、OSLockNesting==0

6、下列不属于嵌入式操作系统特点的是 ( D ) A、高可靠性 B、可裁剪性 C、实时性 D、免费 7、下列操作系统中,哪个不属于嵌入式操作系统 ( C ) A、VxWorks B、 WinCE C、Minix D、uC/OS

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

A、6 B、5 C、4 D、7 9、uCOS-II 2.52操作系统中最多可以管理多少个任务。 A、64 B、56 C、128 D、63 10. 下面属于嵌入式系统的是 A、“天河”计算机系统 B、智能电能表 C、联想笔记本电脑 D、核电站控制系统

( A )

( B )

11、如果常数OS_LOWEST_PRIO为6,使能了统计任务,则最多可安排的用户 任务数为 ( C ) A、6 B、5 C、4 D、7 12、运行任务被抢占的原因不包括 A、它唤醒了高优先级的任务 B、 将自己挂起 C、有多个就绪任务,允许任务的运行的时间片到 D、优先级较低的中断产生并处理中断 13、以下不是嵌入式系统应用领域的是 Α、通用软件 B、工业控制 C、消费类电子产品 D、机器人 14、下列哪项不属于对实时操作系统的要求 A、多任务 B、任务切换为常量时间 C、中断延迟短 D、开源 15、以下说法不正确的是 A、任务可以有类型说明 B、任务可以返回一个数值 C、任务可以有形参变量 D、任务是一个无限循环

( D )

( A )

( D )

( D )

四、简答题

1、实时操作系统设计应尽量满足的5个条件

答:微型化,可裁剪性,实时性,高可靠性,易移植性。 (1)实时操作系统必须是多任务系统。

(2)任务的切换时间与系统中的任务数无关。 (3)中断延迟的时间可预知并尽可能短。

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

答: 进入中断OSIntEnter()和退出中断OSIntExit()。 3、OSTimeTick()的功能

答:提供周期性信号源,用于实现时间延时和确认超时。

4、设ucos设定的一个时钟节拍为20ms,则在代码中主要需要哪两处? 答:#define OS_TICKS_PER_SEC 50 定时器初始化为20ms周期

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

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

答:(1)发生中断时。(2)调用系统函数时。(3)时间片到时。 7、uC/OS中任务的状态主要有哪几种,并对任务状态进行简要解释。

答:睡眠状态:任务在没有被配备任务控制块或被剥夺了任务控制块的时的状态。

就绪状态:为任务配备了控制块且在任务就绪表中进行了就绪登记, 运行状态: 经调度器获得了cpu的使用权

等待状态:正在运行的任务需要等待一段时间或需要等待一个事件发生时,该任务会把cpu的使用权交给其他任务而进入等待状态。

中断服务状态:一个正在运行的任务一旦响应中断申请就会中止运行而去执行中断服务程序。

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

答:#define OS_TICKS_PER_SEC 40

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

答:分为单次执行:采用创建任务函数启动,当该任务被另一个任务创建时,进入就绪状态,等到优先级高的任务挂起时获得运行权,进入运行状态,任务完成自行删除。(OSTaskDel(OS_PRIO_SELF))

周期性执行:通过调用系统延时函数将自己挂起,再启动其他任务,延时时间到,重新进入就绪状态,获得运行权。OSTimeDly()

事件触发执行调用:调用获取事件的函数从另一个任务获得消息,获得消息之前处于等待状态,获得消息后进入就绪状态,获得运行权。

10、uC/OS优先级大小设置的原则都有哪些?请简要说明。 (1)任务优先级最多64级,数字越小优先级越高; (2)空闲任务优先级最低;

(3)若无使用统计任务,任务总数不超过(优先级个数-1); (4)每个任务的优先级都是唯一的。

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

(1)把定义在系统头文件OS-CFG.H中的系统配置函数0S-TASK-STAT-EN设置为1; (2)在程序中要调用函数OSStatInit( )对系统任务进行初始化。

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

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

OSTimeDly() OSTimeDlyHMSM() 系统延时函数

OSTimeDlyResume(); 强制延时的任务延时函数

OSTimeGet() 获得系统时间函数 OSTimeSet() 设置系统时间函数 14、给出uCOS-II单次执行任务和周期性执行任务的示意性代码。 Void MyTask(void *Pdata) 执行一次 {

//进行准备工作的代码 //任务实体代码

//调用任务删除函数 }

Void MyTask(void *Pdata) {

//进行准备工作的代码

While(1) //无限循环 {

//任务实体代码

//调用任务删除函数 调用OSTimeDly();或者OSTimeDlyHMSM(); } }

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

答:信号量:OS_EVENT *OSSemCreate(INT16U cnt);创建一个

OS_EVENT_TYPE_SEM类型的事件块,OSSemDel();在删除一个信号量。

互斥性信号量:OS_EVENT *OSMutexCreate(INT8U prio, INT8U *err); OSMutexDel()。

和消息邮箱:OSMboxCreate()创建邮箱OSMboxPend()请求邮箱 OSMboxDel()删除邮箱。

五、程序分析题 1、#define debug 1 #if debug !=1 fun(); #endif

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

2、在某 .h文件中有如下代码,功能为? #ifndef __DEVICE_H #define __DEVICE_H …. #endif

防止__DEVICE_H重定义

3、写出下列两个任务的执行效果,并分析它们相互之间是否有影响。 void MyTask4(void *ppdata) { ppdata=ppdata; for(;;) { LED4=0;

OSTimeDlyHMSM(0,0,0,800); LED4=1; OSTimeDly(OS_TICKS_PER_SEC*1.2); } }

void MyTask5(void *ppdata) { ppdata=ppdata; for(;;) { LED5=0; OSTimeDlyHMSM(0,0,0,300); LED5=1; OSTimeDly(OS_TICKS_PER_SEC); } }

六、程序设计题

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

OSTimeDlyHMSM(0,0,0,800); LED4=1; OSTimeDly(OS_TICKS_PER_SEC*1.2); } }

void MyTask5(void *ppdata) { ppdata=ppdata; for(;;) { LED5=0; OSTimeDlyHMSM(0,0,0,300); LED5=1; OSTimeDly(OS_TICKS_PER_SEC); } }

六、程序设计题

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

本文来源:https://www.bwwdw.com/article/x6ew.html

Top