主权项 |
1. 一种多核平台下基于硬件计时器与任务队列的调度方法,其特征在于:1)多条硬件任务队列:每条硬件任务队列对应一个通用CPU核,任务队列记录了任务号以及下一轮调度时任务的可运行时间片长度,队列采用FIFO策略;队首的任务将被最先发射到对应于该硬件任务队列的CPU核上,每个硬件任务队列包含了一个计时器;2)初始任务分配:根据任务优先级TaskPriority,上一轮运行该任务的CPU核号Nolast-cpu以及每个CPU的忙碌程度Notask*Tasktime进行任务调度,调度的原则是:根据优先级,按照优先级高低的顺序调度任务。某一个任务的调度方法为,分别计算各个CPU核调度值,该值是由CPU核的忙碌程度减去该任务上一次是否在该CPU核上运行的权值得到,权值的计算方法是:如果该任务上一次运行在该CPU核,则权值为1,否则权值为零,计算结束,选择调度值最小的CPU核,将任务放入对应该CPU核的硬件任务队列中;3)由计时器触发的任务发射:当任务从硬件任务队列发射到对应CPU核的同时,该硬件队列设置其计时器的值,该值为任务该轮执行的时间片长度。任务开始运行时,启动计时器,当计时器到时,代表该任务的本轮运行时间已经结束,计时器触发CPU核进行任务切换,位于硬件任务队列列首的任务将被发射到CPU核上运行,新任务以中断的形式发射;4)当前运行任务发生阻塞,计时器即刻清零,任务切换发生:当前运行任务由于需要某些资源或计算结构,需要挂起等待,则发射消息给硬件任务队列,其对应的计时器即刻清零,任务切换发生;5)任务切换前的预处理过程:当计时器剩余时钟周期小于等于5时,下一个任务所需的内容被提前放入cache,以为任务切换做准备,达到加快任务切换速度,减小任务切换开销的目的。 |