1. uC/OS-II 允许中断嵌套,嵌套层数可达多少层?
A.32
B. 56
C. 128
D. 255
2. uC/OS-II 的事件控制块有 4 种类型,需要使用 4 种不同的函数来创建。下列哪个函数用于
创建事件控制块?
A.OSTaskCreate()
B. OSThreadCreate()
C. OSQCreate()
D. OSCtxSw()
3. 关于 uC/OS-II 的基本特点,下列叙述中错误的是()
A.uC/OS-II 是抢占式实时操作系统内核
B.uC/OS-II 不支持时间片轮转调度法,因此赋予每个任务的优先级是相同的
C.uC/OS-II 中每个任务拥有自用栈
D.uC/OS-II 属于源代码公开的实时操作系统
4. 与通用计算机的操作系统相比较,下列各项中不属于嵌入式操作系统特点的是()
A.实时性 B. 抢占式多任务处理
C. 内核复杂
D. 高可靠性
5. 关于 uC/OS-II 的叙述正确的是()
A.uC/OS-II 系统拥有统一的驱动程序,不需要开发商自行开发
B.uC/OS-II 包含基本驱动程序
C.使用 uC/OS-II 的栈空间校验函数,可以确定每个任务到底需要多少栈空间
D.uC/OS-II 是一个单内核操作系统
6. uC/OS-II 能够提供周期性的时钟信号(即时钟节拍),用于实现任务的正确延时和超时确
认。节拍率应该在什么范围内?
A.10Hz~100Hz B. 10Hz~1000Hz C. 100Hz~1000Hz D. 100Hz~10000Hz
7. 在 uC/OS-II 中,OS_Sched()函数进行任务调度的条件是()
A. OSIntNesting==0 && OSLockNesting ==0
B. OSIntNesting==0 && OSLockNesting ==1
C. OSIntNesting==1 && OSLockNesting ==0
D. OSIntNesting==1 && OSLockNesting ==1
8. 下列选项中用于完成创建任务的自用栈空间的 uC/OS-II 程序源代码的是()
D. OS_TASK.C
A.OS_CPU_C.C
B. OS_CORE.C
C. OS_MEM
9. 实时操作系统的主要实时指标不包括()
A.截止时间(Finish Time) B. 吞吐量(Throughput)
C. 生存时间(Survival Time) D. 响应时间(Response Time)
9. 编写 uC/OS-II 的中断服务子程序主要使用哪种语言()
A.汇编语言或 C 语言
B. Java 语言
C. PASCAL 语言
D. C++语言
10. RTOS 响应时间的具体指标不包括如下哪一项?
A.中断延迟时间()
B.任务切换时间()
C.进程切换时间()
1
D.存储器延迟时间()
D.就绪状态的任务表示已经具备运行条件但并不在运行的任务
11. 关于 uC/OS-II 中处于就绪状态的任务,下面叙述中正确的是()
A.该任务已经可以运行,一旦 CPU 空闲该任务将立即运行
B.该任务已经可以运行,但由于优先级不够暂时不能运行
C.该任务已经可以运行,一旦得到所需要的资源将立即运行
D.该任务已经可以运行,一旦事件信号量出现将立即运行
12. 在 uC/OS-II 操作系统下,由中断服务子程序代码完成的操作一定包括()
A.初始化任务的栈空间
B.调用 OSIntEnter()或对 OSNesting 变量加 1
C.关闭所有可屏蔽中断
D.利用函数 OSSchedLock()给调度器上锁
13. 在 uC/OS-II 操作系统下,处于运行态的任务因更高优先级的任务就绪而被剥夺 CPU 使
用权后将转入()
A.等待态
B.被中断态
C.就绪态
D.休眠态
14. uC/OS-II 能够支持的任务数最多为()
A.16
B. 32
C. 64
D. 128
15. 下列关于 uC/OS-II 操作系统的描述中,错误的是()
A.在 uC/OS-II 中,任务是操作系统的基本调度单位
B.为保证内核精简,uC/OS-II 不支持中断嵌套
C.uC/OS-II 不支持时间片轮转调度法
D.uC/OS-II 的事件控制块可以用于对信号量管理
16. 关于 uC/OS-II 的基本特点,以下说法错误的是()
A. uC/OS-II 是抢占式实时操作系统内核
B. 由于存在内核任务,用户编写的应用程序最多可以有 60 个任务
C. uC/OS-II 不支持时间片轮转调度法
D. uC/OS-II 允许每个任务有不同的栈空间
17. 在 uC/OS-II 中有多种方法可以保护任务之间的共享数据和提供任务间的通信。其中不能
达到保护目的的方法是()
A. 利用宏 OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()来关闭中断和打开中
断
B. 利用函数 OSSchedLock()和 OSSchedUnlock()对任务调度函数上锁和开锁
C. 利用信号量、互斥信号量、邮箱和消息队列进行任务间通信
D. 利用内存文件进行任务间的大规模数据共享
18. 下列选项中与实时系统无必然联系的属性是()
A.可配置属性
B. 可预测性
C. 时间约束性
D. 确定性
2
19. 移植 uC/OS-II 到一个嵌入式系统电路板上正常运行,下面()条件不是必须的。
A.处理器的 C 编译器能产生可重入代码,且用 C 语言就可以打开和关闭中断
B.该电路板的处理器必须具备 MMU(存储管理单元)
C.处理器支持中断,并且能产生定时中断(通常在 10 至 100Hz 之间)
D.处理器支持能够容纳一定量数据(可能是几千字节)的硬件堆栈
20. uC/OS-II 操作系统启动的过程中,Bootloader 执行完毕后,调用应用程序主文件(通常
是 main.c)里的 main()函数。main()函数在执行过程中,除了用户函数和硬件初始化函数之
外,需要执行以下三个主要的 uC/OS-II 函数:I.OSStart() II. OSTaskCreate() III. OSInit()
它们的执行顺序是
A.I、II、III
B.III、I、II
C.II、III、I
D.III、II、I
21. 下列关于 uC/OS-II 任务管理的叙述中错误的是()
A.它可以管理 64 个任务
B.用户任务最多只能有 32 个
C.空闲任务是系统所创建的第一个任务
22. uC/OS-II 系统中的每个任务都处于以下 5 种状态之一:休眠态、就绪态、运行态、挂起
态(等待某一事件发生)和被中断态。以下哪个说法是错误的?
A.任务处于休眠态,相当于该任务驻留在外存中,但还没有交给内核管理
B.任务处于就绪态,意味着该任务已经准备好,可以运行了,但由于该任务的优先级
比正在运行的任务的优先级低,还暂时不能运行
C.任务处于运行态,指任务得到了 CPU 的控制权正在运行之中
D.任务处于被中断态,是指发生中断时执行相应的中断服务,原来正在执行的任务暂
时停止运行,进入了被中断状态
23. 以下关于嵌入式系统软件的描述中,错误的是()
A.在 uC/OS-II 操作系统中,各个任务间共享任务堆栈()
B.BootLoader 的任务之一是加载和启动操作系统
C.WinCE 是一种大型嵌入式操作系统
D.大多数嵌入式系统都是实时系统
24. 在 uC/OS-II 中,OSIint()函数先建立最初的任务就绪表,然后建立 4 个空白的数据链表。
这 4 个空白的数据链表是()
A.任务控制块链表、事件控制块链表、消息队列链表和进程控制块链表
B.任务控制块链表、事件控制块链表、消息邮箱链表和进程控制块链表
C.任务控制块链表、事件控制块链表、消息队列链表和内存控制块链表
D.任务控制块链表、事件控制块链表、消息邮箱链表和内存控制块链表
E.任务控制块链表、事件控制块链表、标志链表和内存控制块链表
25. uC/OS-II 操作系统内核通过任务控制块管理任务,下列各项中,不属于任务控制块的内
容的是()
A.指向任务代码临界区的指针
3
B.指向任务堆栈栈顶的指针
C.任务的优先级
D.任务的状态字
26. 在 uC/OS-II 操作系统下,能使运行态任务转入等待态的系统函数是()
(I)OSSemPost() (II)OSTaskCreate()(III)OSSemPend()(IV)OSTimeDly()
A.(I)和(III)
B.(II)和(IV)
C.(III)和(IV)
D.仅(IV)
27. 当满足一定条件时,uC/OS-II 操作系统内核将进行任务调度。下列各项中属于中断级任
务调度需满足的条件是()
A.空闲任务被挂起
B.处于就绪态的最高优先级任务的优先级比被中断任务的优先级低
C.所有的中断服务程序均已经执行完毕
D.有足够的内存空间保存当前任务的上下文
28. 下列是关于 uC/OS-II 任务管理中空闲任务的叙述,其中错误的是()
A.它是系统创建的第一个任务
B.它是系统中优先级最低的任务
C.它始终处于等待状态
D.它是必不可少的一个系统任务
29. uC/OS-II 的以下 4 个函数中,只有()与任务调度相关。
A.OSTickISR()
B. OS_Sched()C. OSIntExit()
D. OSTaskCreate()
30. 进行任务调度的函数是 OS_Sched()
31.嵌入式系统的三个基本要素是 嵌入性
。
、 专用性 、和
计算机系统 .
31. 优先级为 29 的任务在就绪表中位置的组号是 3 ,组内编号是
4 。
中断服务状态。
、和
、 运行状态
>
、 睡 眠 状
4
.
.
.
、OSQEnd
和 OSQEntries
33. uC/OS-II 中用户任务能够使用的优先级最高的优先级是 0
1. uC/OS-II 操作系统中表示正在运行任务的优先级的全局变量是 OSPrioCur ,指向正在
运行任务的任务控制块的指针变量是 OSTCBCur
34. 队列控制块 OS_Q 的属性有 OSQPtr、 OSQStart 、 OSQSize
OSQIn
35.下列 uC/OS-II 的内核文件中:(A)os_core.c(B)os_mbox.c(C)os_sem.c(D)os_cfg.h
(E)os_mutex.c(F)ucos_II.c(G)usos_II.h(H)inculudes.h(I)os_cpu.h(J)os_task.c
(K)os_cpu_a.asm(L)os_time.c(M)os_cpu_c.c(N)os_q.c(O)os_flag.c,和系统运行
的硬件相关的是 I 、 K 、 M 。与应用程序相关有 D 、 H 。
36. 事 件 控 制 块 OS_EVENT 的 一 个 属 性 是 OSEventType , 它 表 示 的 事 件 的 类 型 有
OS_EVENT_TYPE_UNUSED、OS_EVENT_TYPE_MUTEX 、
、 OSQOut
、
OS_EVENT_TYPE_MBOX 、 OS_EVENT_TYPE_SEM 、 OS_EVENT_TYPE_Q
和 OS_EVENT_TYPE_FLAG.
37. 一个任务的任务控制块中的指针 OSTCBStkPtr 指向 任务堆栈栈顶 .任务控制块中的
OSTCBDly 的作用是 任务等待时限.
38. uC/OS-II 的某应用程序通过调用函数 OSTaskCreate 来创建任务,该函数主要完成哪些工
作?
检测任务优先级是否合法和是否被使用;初始化任务堆栈,任务控制块;如果没有错误任务
计数器加一,执行调度;否则放弃任务。
39. 什么是事件的等待任务列表?该表的内存结构是如何组成的?在哪些情况下该表的内
容会发生变化?
40. 分别介绍信息量 SEM 和互斥性信号量 MUTEX 的作用和操作方式以及二者的区别。
信号量 SEM 是表明一个共享资源被使用情况的标志,该标志实质上是一个计数
器;互斥性信号量 MUTEX 可以使任务以独占方式使用共享资源,防止出现优先级
反转现象。
41. 什么是嵌入式系统?列举出三个典型的嵌入式系统。
嵌入式系统是对对象进行自动控制而使其具有智能化并可嵌入对象系统中的专用计算机系
统。WindowsCE,uCLinux,uC/OS
42. 简述 uC/OS-II 内存管理中分配内存的过程。
1)创建动态内存分区;2)请求获得一个内存块;3)释放一个内存块;4)查询一个内
存分区的状态
43. 简述 uC/OS-II 任务切换的过程。
首先把当前任务的断点指针保存到任务堆栈中,然后保存 cpu 寄存器到任务堆栈中;获取新
的任务控制块并将新任务堆栈中的 cpu 寄存器值和断点值恢复。
44. 一个正在运行的 uC/OS-II 系统,某时刻 OSRdyGrp 的值为 00100000,OSRdyTbl[5]的值
为 00000011.
(1)试判断当前最高优先级别的就绪任务的优先级是多少?
(00101001)2 = 43
5
(2)写出判断依据。
OSRdyGrp 值为 00100000 可以得出组号为 y = 5 ;OSRdyTbl 值为 00000011 可以得出组内
编号为 x = 3 ;则 prio = y<<3 + x; 即 43
45. 已知 uC/OS-II 系统中共有 64 个任务,某一个已就绪的任务的优先级 prio=29,画出任务
就绪表,标出该任务所对应的位置,写清依据。
29 = (00011101)2 取低六位 011101 则组号为 3 组内编号为 5
46. 实时操作系统的设计应尽量满足哪些条件?
1)必须是多任务系统;2)任务的切换时间与系统中的任务数无关;3)中断延迟的时间可
预知并尽可能短
47. 下表是 uC/OS-II 的一个数据结构,请回答:
pevent
OS_EVENT_TYPE_MUTEX
prio
0xFF
0
0
0
0
0
0
0
0
(1) 该数据结构描述的是什么事件?
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
互斥事件 OS_EVENT_TYPE_MUTEX
NULL
0x00
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
OSEventType
OSEventCnt
OSEventPtr
OSEventGrp
OSEventTbl[]
(2) OSEventCnt 的高 8 位 prio 的作用是什么?对 prio 的设置在数值上应满足什么要求?
OSEventCnt 的低 8 位的作用是什么?
高 8 位 prio 的作用是用来存放为了避免出现优先级反转现象而要提升的优先级别
prio;低 8 位的作用是存放信号值。
(3) OSEventGrp 和 OSEventTbl[]构成了一张表,应用程序创立该事件时,其初值全部为
0,在什么情况下,该表中的有 1 出现?
出现因此事件而等待的任务则表中出现 1
48. uC/OS-II 任务管理中首先是创建一个任务,在创建任务的过程中,哪些情况会导致任务
创建失败?
1.任务优先级不合法
2.任务优先级已经被使用
3.初始化 TCB 失败
4.初始化堆栈失败
5.。。。 。。。
6
49. 如 果 希 望 应 用 程 序 中 任 务 的 优 先 级 别 为 32 个 , 则 表 示 最 低 优 先 级 别 的 常 数
OS_LOWEST_PRIO 的值应该是多少。如果应用程序中使用了系统提供的空闲任务和统计任
务,则该应用程序最多可安排多少个任务?
31;30
50. 由于嵌入式系统的硬件特点,应用环境的多样性和开发手段的特殊性,使它与普通的操
作系统有着很大的不同。其主要特点有哪些?
专用性强;可裁剪性好;实时性与可靠性好;功耗低。
51. 使用微内核嵌入式操作系统的优势是什么。
更好的可裁剪性方便移植;提高了系统的可扩展性,增强了系统的可靠性。
52. 简述在就绪表中登记一个任务的过程和注销一个任务的过程。
登记:当某个任务处于就绪状态时,系统将该任务登记在任务就绪表中,即在就绪表中
将该任务的对应位设置为 1;
注销:当某个任务需要脱离就绪状态时,系统在就绪表中将该任务的对应位设置为 0
53. 在 uC/OS-II 中,使得就绪任务表内容发生变化的情况有哪些?
有新任务被创建,并在就绪任务表中进行了登记;
有任务被删除;
有处于等待状态的任务被唤醒;
由于异步事件的发生,在中断服务程序中激活了一个或几个任务;
正在运行的任务需要等待某个事件而进入等待状态;
正在运行的任务调用延时函数而自愿进入等待状态。
54. 嵌入式实时操作系统 uC/OS-II 的状态有那些?请描述每个状态的主要特点。刚创建的任
务处于什么状态?画出任务状态转换图
7
刚刚创建的任务处于就绪态
55. 什么是内核可剥夺的操作系统?
在可剥夺型内核中,CPU 总是运行多个任务中优先级别最高的那个任务,即使 CPU 正在运
行某个低优先级别的任务,当有高优先级别的任务准备就绪时,该高优先级别的任务就会剥
夺正在运行任务的 CPU 使用权,而使自己获得 CPU 的使用权
56. 什么是优先级反转?引起优先级反转现在的原因是什么?如何避免优先级反转现象?
在可剥夺型内核中,当任务以独占方式使用共享资源时,会出现低优先级先于高优先级任务
而被运行的现象。使获得信号量任务的优先级别在使用共享资源期间暂时提升到所有任务最
高优先级的高一个级别上,以使该任务不被其他任务打断,从而能尽快使用完共享资源并释
放信号量,在释放信号量后,再恢复该任务原来的优先级别。
57. 结合 uC/OS-II,阐述什么是嵌入式操作系统的可移植性。
为了适应多种多样的平台,嵌入式操作系统应可在不做大量修改的情况下稳定的运行在不同
的平台。
58. 结合 uC/OS-II,阐述什么是嵌入式操作系统的可裁减性。
嵌入式操作系统运行的硬件平台多种多样,其宿主对象五花八门,所以要求嵌入式操作系统
中提供的各个功能模块可以让用户根据需要选择使用,即要求具有良好的可裁剪性。
59. 阅读程序回答问题
8