FreeRTOS使用什么样的调度程序?

时间:2014-06-07 19:23:09

标签: rtos freertos

FreeRtos使用什么样的调度程序.. 我在某个地方看到它是一个完成调度程序的运行,但另一方面,我也看到它用于并行任务,所以它不是一个循环调度程序吗?

1 个答案:

答案 0 :(得分:4)

最高优先级任务被授予CPU时间。如果多个任务具有相同的优先级,则它们使用循环调度。优先级较低的任务必须等待。

高优先级任务100%执行时非常重要,因为较低优先级的任务永远不会获得CPU时间。这是实时编程的基本问题。

通常,您希望为必须对某些重要事件做出快速反应,执行快速操作并进入睡眠状态的任务分配高优先级,同时让不太重要的内容起作用。

此类主张的一般示例可能是:

  1. 最高优先级 - 设备驱动程序任务(阀门控制,ADC,DAC等)
  2. medium prio - 管理子系统(控制台任务,telnet任务)
  3. 较低优先级 - 多个应用程序任务(www服务器,数据处理等)
  4. 对使用循环调度的一般应用程序给予最低优先级,这些应用程序提供或多或少相等的CPU时间。

    中等优先级 - 控制台任务。系统操作员不能被陷入无限循环的故障www服务器切断。这些任务没有100%的时间运行。例如,它可以从管理员执行命令行命令。

    最高优先级 - 设备驱动程序,处理关键事件,例如机器控制。如果锅炉压力过高而您真的不想等到网络服务器线程中的某些愚蠢的HTML渲染完成,您可能会对打开安全阀感兴趣。此类任务仅在有限的时间内运行。