×

FreeRTOS学习之旅(十) -----时间片

zxjy辉 zxjy辉 发表于2022-09-07 17:24:28 浏览270 评论0

抢沙发发表评论

    瑞士少女峰.jpeg
  1. 概念

    1. 同一级优先级下任务拥有cpu的时间,就称为时间片

    2. 作用:采用了时间片使得同一优先级下可以执行多个任务

    3. 注意:FreeRTOS只支持一个tick,也就是一个SysTick的中断周期,RT-thread和uc/os支持的时间片可以是多个tick

  2. 原理

    1. 关键是靠两个方法

      1. taskRESET_READY_PRIORITY()                    进行对uxTopReadyPriority进行位清零,在延时方法vTaskDelay()这个方法,最终就会调用到这个方法

      2. taskSELECT_HIGHEST_PRIORITY_TASK()     选择优先级最高的任务,在这个任务中,还会调用一个方法:listGET_OWNER_OF_NEXT_ENTRY(),这个方法会在任务执行完一个tick时,自动切换下一个任务,就会形成,同一优先级下的任务执行的时间都是一个tick,轮着来

        也就是说,每一个tick,都是进行着任务调度

        图片.png


#好好学习!

群贤毕至

访客