[发明专利]用于STM32系统的多级反馈队列调度方法有效
申请号: | 201710627434.8 | 申请日: | 2017-07-28 |
公开(公告)号: | CN107391248B | 公开(公告)日: | 2019-10-25 |
发明(设计)人: | 谢伟;黄旭东;蒋春洪;武利群;黄昆 | 申请(专利权)人: | 四川华泰电气股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F9/54 |
代理公司: | 重庆中之信知识产权代理事务所(普通合伙) 50213 | 代理人: | 蒲艳紫 |
地址: | 629000 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种用于STM32系统的多级反馈队列调度方法,包括以下步骤:S1、定义数据结构:S11、建立工作频率序列;S12、建立任务执行时间矩阵;S13、建立剩余资源矩阵。S2、调度方法:S21、当多个任务需要处理时,首先处理优先级高的优先级内任务;当某一优先级内有多个任务时首先处理含指令较多的任务;每当RTC中断到来时、任务完成时或者任务产生时对当前需处理的任务进行调度处理,对当前需处理的任务调度处理具体如下:S211、对各个处理器内核对应的数据结构进行预处理;S212、判断有无空闲处理器内核。该用于STM32系统的多级反馈队列调度方法解决现有技术中无空闲处理器内核的情况下无法合理调配运行中处理器内核而导致一些处理器内核极易损坏的问题。 | ||
搜索关键词: | 用于 stm32 系统 多级 反馈 队列 调度 方法 | ||
【主权项】:
1.一种用于STM32系统的多级反馈队列调度方法,其特征在于,包括以下步骤:S1、定义数据结构:S11、建立工作频率序列(j,fj),j为频率序号,fj表示频率序号j的工作频率值,1≤j≤m且j为整数,频率序号j越大对应的工作频率值fj越大;S12、建立任务执行时间矩阵Amount[i,j],其中,i表示器序号为i的处理器内核,1≤i≤n且i为整数;命令Amount[i,j]=kij,其表示i处理器内核在频率序号j下设定时间内能够执行的平均指令数量为kij;S13、建立剩余资源矩阵Resource[i,j],其中,i表示器序号为i的处理器内核,1≤i≤n且i为整数;初始命令Resource[i1,j1]=maxcmdnum‑Amount[i1,j1]=Δkij,式中,Amount[i,j]表示i处理器内核在频率序号j下设定时间内能够执行的平均指令数量;maxcmdnumi处理器内核i在最大工作频率值fm下设定时间内能够执行的平均指令数量;S2、调度方法:S21、当多个任务需要处理时,首先处理优先级高的优先级内任务,多级反馈队列设有r个优先级,所有优先级按优先级高低排序后依次为Task[1]、…、Task[x]、Task[x+1]、…以及Task[r],处理时就是先处理属于Task[1]优先级的任务;当某一优先级内有多个任务时首先处理含指令较多的任务,设某一优先级中有t个任务,所述优先级中t个任务按照指令多少排序后为TP[1]、…、TP[y]、TP[y+1]、…以及TP[t],那么处理所述优先级内任务时就是首先处理TP[1]任务;每当RTC中断到来时、任务完成时或者任务产生时对当前需处理的任务进行调度处理,设当前需处理的任务为TP[y],对当前需处理的任务TP[y]的调度处理具体如下:S211、对各个处理器内核对应的数据结构进行预处理,具体包括以下步骤:S211a、判断每一处理器内核是否正在运行,若否,则进行步骤S211b,且同时计算Resource[i1,j1]=maxcmdnumi1,式中,i1为当前判断为运行处理器内核的器序号,j1为i1处理器内核的上一次工作频率,maxcmdnumi1为i1处理器内核在设定时间内在最大频率值fm下能够执行的平均指令数量;若是,则进行步骤S211c,且同时计算Resource[i2,j2]=maxcmdnumi2‑Amount[i2,j2],式中,i2为当前判断为运行处理器内核的器序号,j2为i2处理器内核的当前工作频率,maxcmdnumi2为i2处理器内核在设定时间内在最大频率值fm下能够执行的平均指令数量;S212、判断有无空闲处理器内核,若有,则将前需处理的任务为TP[y]分配给一空闲处理器内核处理;若无,则进行步骤S213;S213、无空闲处理器内核处理步骤具体如下:S213a、寻找所有非空闲状态处理器内核中Resource[i2,j2]最大的处理器内核,式中,i2为当前判断为运行处理器内核,j2为i2处理器内核的当前工作在的频率序号,Resource[i2,j2]为i2处理器内核在当前频率序号下工作的最大能完成的平均指令数量,设Resource[i2,j2]最大值为Max2;S213b、所有非空闲状态处理器内核中,从器编号i由小到大,Resource[i,j]第一个等于Max2处理器内核为第二指定处理器内核iz2,将当前需处理的任务TP[y]分配给第二指定处理器内核iz2处理;S213c、通过公式Resource[iz2,jz2]=Amount[iz2,m]‑Resource[iz2,jz2]‑NTP[y]计算得到第二指定频率序号jz2,式中NTP[y]为当前需处理任务TP[y]的指令数量,第二指定频率序号jz2为第二指定处理器内核iz2处理当前需处理的任务TP[y]时的工作频率。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川华泰电气股份有限公司,未经四川华泰电气股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710627434.8/,转载请声明来源钻瓜专利网。