1 ucos-ii 操作系统习题 一. 填空题 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 种状态。 【睡眠态(task dormat) 】:任务驻留于程序空间(rom 或 ram)中,暂时没交给ucos-ii 处理。 【就绪态(task ready)】:任务一旦建立,这个任务就进入了就绪态。 【运行态(task running)】:调用 OSStart()可以启动多任务。OSStart()函数只能调用一次,一旦调用,系统将运行进入就绪态并且优先级最高的任务。 【等待状态(task waiting)】:正在运行的任务,通过延迟函数或 pend(挂起)相关函数后,将进入等待状态。 2 【 中 断 状 态 ( ISR ru nning) 】 : 正 在 运 行 的 任 务 是 可 以 被 中 断 的 , 除 非 该 任 务 将中 断 关 闭 或 者 u cos-ii 将 中 断 关 闭 。 7. 【 不 可 剥 夺 型 】 内 核 要 求 每 个 任 务 自 我 放 弃CPU 的 所 有 权 。 不 可 剥 夺 型 调度 法 也 称 作 合 作 型 多 任 务 , 各 个 任 务 彼 此 合 作 共 享 一 个CPU。 8. 当 系 统 响 应 时 间 很 重 要 时 , 要 使 用 【 可 剥 夺 型 】 内 核 。 最 高 优 先 级 的 任 务一 旦 就 绪 , 总 能 得 到CPU 的 控 制 权 。 9. 使 用 可 剥 夺 型 内 核 时 , 应 用 程 序 不 应 直 接 使 用 不 可 重 入 型 ...