下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

内核
最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

调度
[RTOS 基本原理]

调度器是内核中负责决定在任何特定时间应执行哪些任务的部分。内核可以在任务生命周期内多次挂起并且稍后恢复一个任务。

调度策略是调度器用来决定在任何时间点执行哪个任务的算法。 非实时多用户系统的策略极有可能使每个任务具有"公平"比例的处理时间。 之后会描述实时/嵌入式系统中使用的策略。

任务除了被迫被内核挂起之外,还可以选择将自己挂起。 如果它想要延迟(睡眠)一段固定时间,或者等待(阻塞)资源 变为可用(例如串行端口)或将要发生的事件(例如按键),它将执行此操作。 阻塞的或正在睡眠的任务无法执行,并且不会分配任何处理时间。

suspending.gif

请参阅上图中的数字:

  • 在 (1) 处,任务 1 正在执行。
  • 在 (2) 处,内核挂起(换出)任务 1......
  • ......在 (3) 处,恢复任务 2。
  • 在 (4) 处,任务 2 正在执行,为独占访问,会锁定一个处理器外围设备。
  • 在 (5) 处,内核挂起任务 2......
  • ......在 (6) 处,恢复任务 3。
  • 任务 3 尝试访问相同的处理器外围设备,发现其被锁定,任务 3 无法继续,因此在 (7) 处挂起。
  • 在 (8) 处,内核恢复任务 1。
  • 等等。
  • 接下来任务 2 执行时 (9),完成对处理器外围设备的访问,因此解锁。
  • 再下来任务 3 执行时 (10),发现现在可以访问处理器外围设备,于是开始执行,直到被内核挂起为止。


下一节: RTOS 基本原理 -上下文切换


Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.