基于动态时间片的速率单调实时调度方法
【专利摘要】本发明提出了一种基于动态时间片的速率单调实时调度方法,该方法的系统首先设置多个隔离的就绪队列,依据不同的优先级,将实时任务分配到几个不同级别的队列中;各个队列按照级别先后进入处理机,高优先级的队列,任务的初始时间片设置的较短,低优先级的队列,任务的初始时间片设置的较长;第一个任务时间片是初始时间片,每个队列的初始时间片T与该序列的优先级P的关系为T=kP(k为常数),队列中剩余的每个任务的时间片动态调整。如果队列上的某个实时任务运行超过分配运行时间,若继续运行下去,有可能造成整个队列的延时,则放弃该任务,并记录其ID;本系统可以通过调整参数k值使系统适应于不同类型的无线业务,具有一定的灵活性。
【专利说明】基于动态时间片的速率单调实时调度方法
【技术领域】
[0001]本发明涉及计算机无线通信【技术领域】,特别涉及一种基于动态时间片的速率单调实时调度方法。
【背景技术】
[0002]随着城市规划建设水平的提高和城市人口数量的剧增,高层以及超高层建筑的数量越来越多,这对家居智能化提出了更高的要求。作为家居智能化产业链中的一部分——智能抄表系统也同时得到了蓬勃发展。无线抄表系统作为服务于燃气、电力、自来水行业的工具,它的出现大大减少了抄表人员的劳动量,提高了企业效率,并给住户带来了方便。但是传统的无线抄表系统存在的数据重传次数多、实时性差、传输效率低等缺点,若将实时调度方法应用于无线抄表系统中,能改进上述缺点。
[0003]实时调度方法是实时操作系统的核心,经典的实时调度方法主要有最早截止时间优先方法和速率单调优先调度方法两种。
[0004]单调速率调度方法是一种典型的静态优先级调度方法,它根据任务执行周期的长短来决定调度优先级,执行周期小的任务具有较高的优先级。这种调度方式主要适合周期性任务,对于突发性任务,无法预先估计执行时间,因而会导致系统的执行效率很低
[0005]最早截止时间优先调度方法是一种典型的动态优先级调度方法,它根据就绪队列中各个任务的截止期限来分配优先级,具有最近截止期限的任务优先级最高。主要缺点是一旦发生瞬时任务过载,系统行为不可预测,可能发生多米诺骨牌现象,一个任务丢失时会引起一连串的任务接连丢失。而本发明能够很好地解决上面的问题。
【发明内容】
[0006]本发明目的在于针对大多数实时调度方法在无线数据传输中应用的不足,提出了一种兼顾响应时间和传输速率的新型实时调度方法,该方法在优先级抢占方法的基础上,结合了单调速率调度方法和时间片轮转方法的优点,该方法将每个传输节点看作实时任务,设置多个隔离的就绪队列,将任务分配到几个不同级别的队列中,每个队列依据不同的优先级,依次进入处理机。任务队列中每个任务的时间片依据信噪比动态调整。
[0007]本发明解决其技术问题所采取的技术方案是:本发明提供一种基于动态时间片的速率单调实时调度方法,该方法包括如下步骤:
[0008]步骤1:设置多个隔离的就绪队列,依据不同的优先级,将实时任务分配到几个不同级别的队列中;
[0009]步骤2:各个队列按照级别先后进入处理机,高优先级的队列,任务的初始时间片设置的较短,低优先级的队列,任务的初始时间片设置的较长;
[0010]步骤3:第一个任务时间片是初始时间片,每个队列的初始时间片T与该序列的优先级P的关系为T=kP,其中k为常数;队列中剩余的每个任务的时间片动态调整;若在时间片内,前一个任务完成,则将接下来任务的时间片减小0.05s,以此类推,渐次减小;若一旦遇到某个任务在时间片内无法完成,时间片的设置开始每次增大0.05s,以此类推,渐次减小;若一旦遇到某个任务在时间片内无法完成,时间片的设置开始每次增大0.05s,直到任务能够完成;
[0011]步骤4:如果队列上的某个实时任务运行超过分配运行时间,若继续运行下去,有可能造成整个队列的延时,则放弃该任务,并记录其ID ;
[0012]步骤5:在所有队列均执行完毕后,对执行失败的任务依据记录的ID依次进行执行。
[0013]有益效果:
[0014]1、本发明实现了将实时调度方法应用于无线抄表系统中。
[0015]2、本发明的任务优先级能够根据需要动态改变,更好地解决了系统适应性问题。
【专利附图】
【附图说明】
[0016]图1为本发明方法流程图。
[0017]图2为本发明时间片动态设置示意图。
[0018]图3为本发明实施例的系统示意图。
[0019]图4为本发明实 施例的时钟电路原理图。
[0020]图5为本发明实施例的复位电路原理图。
[0021]图6为本发明实施例的JTAG调试电路原理图。
【具体实施方式】
[0022]以下结合说明书附图对本发明创造作进一步的详细说明。
[0023]如图3至图6所示,本发明的平台系统架构是采用UC/OS-1I内核,该内核是开源、抢占式的,其包含了操作系统的任务调度、任务管理、时间管理、内存管理、定时管理以及任务通信与同步等基本的特性。其优先级抢占策略,能够保证系统的实时性。yC/OS-1I内核中,一般只需要移植os_cpu.h, os_cpu_a.asm和os_cpu_c.c文件。
[0024]在本发明的调度方法中,一个队列对应多个任务,系统要构造一个结构体0S_line,用来控制队列,称作队列控制块,如表1所示,主要包含下列元素:
[0025](I) OSPrio:队列的优先级,占 3bits。
[0026](2) line_Stat:队列的状态,如果该队列处于就绪状态,那么这个变量就置为就绪,占 2bits。
[0027](3) Count:当前优先级下含有的任务数,占9bits。
[0028](4) Tcount:当前队列的初始时间片大小,占3bits。
[0029]
【权利要求】
1.基于动态时间片的速率单调实时调度方法,其特征在于,所述方法包括如下步骤: 步骤1:设置多个隔离的就绪队列,依据不同的优先级,将实时任务分配到几个不同级别的队列中; 步骤2:各个队列按照级别先后进入处理机,高优先级的队列,任务的初始时间片设置的较短,低优先级的队列,任务的初始时间片设置的较长; 步骤3:第一个任务时间片是初始时间片,每个队列的初始时间片T与该序列的优先级P的关系为T=kP,其中k为常数;队列中剩余的每个任务的时间片动态调整;若在时间片内,前一个任务完成,则将接下来任务的时间片减小0.05s,以此类推,渐次减小;若一旦遇到某个任务在时间片内无法完成,时间片的设置开始每次增大0.05s,直到任务能够完成; 步骤4:如果队列上的某个实时任务运行超过分配运行时间,若继续运行下去,有可能造成整个队列的延时,则放弃该任务,并记录其ID ; 步骤5:在所有队列均执行完毕后,对执行失败的任务依据记录的ID依次进行执行。
2.根据权利要求1所述的一种基于动态时间片的速率单调实时调度方法,其特征在于:所述方法是在优先级抢占方法的基础上,结合了单调速率调度方法和时间片轮转方法。
3.根据权利要求1或2所述的一种基于动态时间片的速率单调实时调度方法,其特征在于:所述方法将每个传输节点看作实时任务,设置多个隔离的就绪队列,将任务分配到几个不同级别的队列中,每个队列依据不同的优先级,依次进入处理机;任务队列中每个任务的时间片依据信噪比动态调整。
4.根据权利要求1所述的一种基于动态时间片的速率单调实时调度方法,其特征在于:所述方法的平台系统架构是采用yc/os-n内核。
5.根据权利要求1或4所述的一种基于动态时间片的速率单调实时调度方法,其特征在于:所述方法的平台系统架构内核为开源、抢占式的,包含了操作系统的任务调度、任务管理、时间管理、内存管理、定时管理以及任务通信与同步。
6.根据权利要求5所述的一种基于动态时间片的速率单调实时调度方法,其特征在于:所述方法为一个队列对应多个任务;所述平台系统构造为一个结构体。
【文档编号】G06F9/48GK103885825SQ201410079766
【公开日】2014年6月25日 申请日期:2014年3月5日 优先权日:2014年3月5日
【发明者】张学军, 周浩 申请人:南京邮电大学