holidaywork13

  1. 任务调度算法

    • FreeRTOS采用抢占式优先级调度算法。每个任务都有一个优先级,优先级越高的任务将优先执行。当一个优先级更高的任务就绪时,FreeRTOS会暂停当前正在运行的任务,并将CPU分配给优先级更高的任务。
    • 任务的调度是基于任务的优先级,而不是基于任务的时间片。优先级越高的任务将获得更多的CPU时间,但在系统中仍然存在优先级反转的情况,这可以通过互斥信号量和其他机制来解决。
  2. 空闲任务

    • 空闲任务是一个特殊的任务,在系统没有其他任务需要执行时运行。它的优先级最低,当没有其他任务需要执行时,空闲任务会占用CPU并执行一些低优先级的任务,如低功耗模式的启动或系统监控。
    • 空闲任务的主要作用是利用系统空闲时间执行一些系统维护任务,以充分利用CPU资源。
  3. 任务状态

    • 在FreeRTOS中,任务可以处于以下几种状态:
      • 就绪态(Ready):任务已经准备好执行,只等待CPU的分配。
      • 运行态(Running):当前正在执行的任务。
      • 阻塞态(Blocked):任务由于某种原因(如等待信号量、消息队列或延时等)而暂时无法执行。
      • 挂起态(Suspended):任务被显式挂起,不参与调度。
      • 删除态(Deleted):任务已被删除,但其资源尚未被释放。

总的来说,在FreeRTOS中,任务调度是基于优先级的抢占式调度算法,空闲任务用于执行系统维护任务,而任务可以处于不同的状态,如就绪态、运行态、阻塞态、挂起态和删除态。

你可能感兴趣的:(命令模式)