一种多任务操作环境状态的计算机调度方法

文档序号:6549458阅读:158来源:国知局
一种多任务操作环境状态的计算机调度方法
【专利摘要】本发明属于计算机调度【技术领域】,具体涉及一种多任务操作环境状态的计算机调度方法。本发明主要解决现有的调度方法存在消耗内存大和任务调度复杂的问题。本发明的技术方案为:一种多任务操作环境状态的计算机调度方法,所述的多状态调度器从工业控制作业、流程中的多个状态中选定第一种任务状态,二级多任务调度器启动第一种任务状态下的二级任务群和所述二级任务群的硬件资源,当二级多任务调度器调度的第一种任务状态下的二级任务达到第二种任务状态的切换条件时,多状态调度器就会关闭第一种任务状态下的二级任务群及所用的硬件资源,启动第二种任务状态依次循环直至完成工业控制的作业和流程。本发明具有操作简单的优点。
【专利说明】一种多任务操作环境状态的计算机调度方法
【技术领域】
[0001]本发明属于基于状态的多任务操作环境的计算机调度【技术领域】,具体涉及一种多任务操作环境状态的计算机调度方法。
【背景技术】
[0002]在一个复杂的工业控制系统中,如果可以将这个系统划分为若干个有限的状态,然后对每个状态下的任务分别实时的调度和处理,会使得系统控制变得简单明了,非常便于系统的维护和管理。在现有的几种多任务操作环境的调度方法有如下几种:
[0003]1、基于位图优先级的调度方法是:首先建立了 64个优先级位图,每个任务一个优先级,将所有的任务都分配一个优先级,然后调度器会按照优先级的先后顺序来调度系统任务,任务的数量不能超过64个。对于有大量的任务处理时,这种调度方法就失效了,而且每个事件都要建立64个位图,因此会消耗大量内存。uCOS就具有这方面的代表性。
[0004]2、基于队列优先级的调度方法是:建立一组优先级为8级或16级的队列,每级优先级队列中可以包含若干个同等优先级的任务,调度器首先按照优先级高的任务先调度,然后在同级别中的任务按照等时间片的方法调度。任务数量没有限制,内存消耗小,但是处理状态任务时,由于不能在调度层处理状态切换和任务调度管理,因此在任务层上完成状态切换和相应的任务调度就会非常复杂。FreeRTOS具有这方面的代表性。
[0005]3、基于层级管理的调度方法是:将系统任务分为硬件层驱动、系统层任务和应用层任务的三级任务,硬件层驱动高于系统层任务,而系统层任务级别高于应用层级别,硬件层驱动为系统层任务服务,系统层任务服务于应用层任务,硬件层驱动和系统层任务在系统后台执行,调度器在调度应用层的任务时,根据应用层任务的需求分别挂载硬件层驱动和系统层任务,当硬件层驱动或系统任务有该应用层所等待的事件被触发后,调度器通知应用层任务。windowsCE、uClinux具有这方面的代表性。
[0006]综上,在基于状态的多任务操作环境的计算机调度方法中,上述各个系统调度方法的执行效率和系统开发成本的控制都不理想,都是基于任务的调度,没有在操作系统级上直接处理状态和任务。

【发明内容】

[0007]本发明主要针对现有的多任务操作环境的调度方法存在消耗内存大和任务调度复杂的问题,提供一种多任务操作环境状态的计算机调度方法。
[0008]本发明为解决上述问题而采取的技术方案为:
[0009]一种多任务操作环境状态的计算机调度方法,包括一个多状态调度器和一个二级多任务调度器,所述的多状态调度器从工业控制作业、流程中的多个状态中选定第一种任务状态,二级多任务调度器启动第一种任务状态下的二级任务群和所述二级任务群的硬件资源,当二级多任务调度器调度的第一种任务状态下的二级任务达到第二种任务状态的切换条件时,多状态调度器就会关闭第一种任务状态下的二级任务群及所用的硬件资源,启动第二种任务状态,此时二级多任务调度器启动第二种任务状态下的二级任务群和该二级任务群所需的硬件资源,当二级多任务调度器调度的第二种任务状态下的二级任务达到第三种任务状态的切换条件时,多状态调度器就会关闭第二种任务状态下的二级任务群及所用的硬件资源,启动第三种任务状态,依次循环直至完成工业控制的作业和流程。
[0010]所述多状态调度器的调度步骤如下:
[0011](I)、启动工业控制装置,初始化工业控制装置基本的硬件资源,建立工业控制装置中作业、流程的任务状态;
[0012](2)、建立不同任务状态之间的切换条件;
[0013](3)、建立每个任务状态下的二级任务群的登记表;
[0014](4)、启动多状态调度器并进入第一种任务状态;
[0015](5)、建立第一种任务状态下的二级任务群,将二级任务群登录到第一种任务状态下的二级任务群的登记表中,其中所述的二级任务群中的任务包括高优先级的二级任务、相同优先级的二级任务和需要剥夺内核的二级任务;
[0016](6)、二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;
[0017](7)、当所述二级任务群中的任务运行到第二种任务状态所需要的切换条件时,则开始建立第二种任务状态的二级任务群,并将二级任务群登录到第二种任务状态下的二级任务群的登记表中,二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;当所述二级任务群中的任务运行到第三种任务状态所需要的切换条件时,则开始建立第三种任务状态的二级任务群,依次循环直至完成工业控制的作业和流程。
[0018]所述二级多任务调度器的调度步骤如下:
[0019](I)、初始化第一种任务状态下的二级任务群所需的堆栈、内存;
[0020](2)、初始化并启动第一种任务状态下的二级任务群所需的输入输出硬件设备;
[0021](3)、建立任务就绪指针、任务等待指针和任务休眠指针,将任务就绪指针指向第一种任务状态下的二级任务登记表;
[0022](4)、首先判断有无就绪的二级任务,如果没有,工业控制装置休眠;如果有,则二级多任务调度器就会将就绪二级任务的优先级别与当前工业控制装置正在执行的二级任务的优先级别进行对比,判断就绪二级任务是高优先级的二级任务、相同优先级的二级任务还是低优先级的二级任务,如果是高优先级的二级任务,则二级多任务调度器控制执行就绪二级任务;如果是相同优先级的二级任务,则二级多任务调度器在时间片到达后控制就绪二级任务;如果是低优先级的二级任务,则二级多任务调度器返回当前正在执行的二级任务;
[0023](5)、当步骤(4)选定了需要执行的二级任务后,如果该二级任务是需要剥夺内核的二级任务,该二级任务设置内核锁定,如果此时二级多任务调度器需要新就绪二级任务调度时,则二级多任务调度器判断内核锁定后会返回执行当前需要剥夺内核的二级任务直至任务完成,内核解锁后,二级多任务调度器才执行新就绪二级任务;
[0024](6)、如果步骤(4)选定的二级任务需要等待某一事件触发时,则会加入任务等待指针的队列中,当该等待的事件触发后,二级多任务调度器将会使该任务就绪并执行步骤
(4),其中所述的事件包括中断信号、外围设备的触发信号或等待数据处理完成信号;
[0025](7)、当二级任务群中的二级任务执行完成后,就会输出状态切换条件同时二级多任务调度器退出工作,输出的状态切换条件用于启动多状态调度器切换下一个状态。
[0026]由于一个复杂的工业控制系统中,使用状态机控制,会使得系统控制变得简单且便于系统的维护和管理。因此本发明采用上述技术方案,使用了系统底层调度切换系统的状态,并使得当前状态下的任务群单独占系统的硬件资源,又因为采用了高优先级的任务先运行、内核可剥夺、实时处理技术,这样将会提高系统任务执行的效率;由于状态的调度没有放在任务中执行,简化和缩短了系统开发过程。
【专利附图】

【附图说明】
[0027]图1是本发明工业控制装置的框架图;
[0028]图2是本发明方法的流程图;
[0029]图3是本发明状态创建流程图;
[0030]图4是本发明多状态调度器流程图;
[0031]图5是本发明二级多任务调度器的流程图。
【具体实施方式】
[0032]实施例1
[0033]如图1,图2,图3,图4和图5所示,一种多任务操作环境状态的计算机调度方法,包括一个多状态调度器和一个二级多任务调度器,所述的多状态调度器从工业控制作业、流程中的多个状态中选定第一种任务状态,二级多任务调度器启动第一种任务状态下的二级任务群和所述二级任务群的硬件资源,当二级多任务调度器调度的第一种任务状态下的二级任务达到第二种任务状态的切换条件时,多状态调度器就会关闭第一种任务状态下的二级任务群及所用的硬件资源,启动第二种任务状态,此时二级多任务调度器启动第二种任务状态下的二级任务群和该二级任务群所需的硬件资源,当二级多任务调度器调度的第二种任务状态下的二级任务达到第三种任务状态的切换条件时,多状态调度器就会关闭第二种任务状态下的二级任务群及所用的硬件资源,启动第三种任务状态,依次循环直至完成工业控制的作业和流程;
[0034]其中多状态调度器的调度步骤如下:
[0035](I)、启动工业控制装置,初始化工业控制装置基本的硬件资源,建立工业控制装置中作业、流程的任务状态;
[0036](2)、建立不同任务状态之间的切换条件;
[0037](3)、建立每个任务状态下的二级任务群的登记表;
[0038](4)、启动多状态调度器并进入第一种任务状态;
[0039](5)、建立第一种任务状态下的二级任务群,将二级任务群登录到第一种任务状态下的二级任务群的登记表中,其中所述的二级任务群中的任务包括高优先级的二级任务、相同优先级的二级任务和需要剥夺内核的二级任务;
[0040](6)、二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;
[0041](7)、当所述二级任务群中的任务运行到第二种任务状态所需要的切换条件时,则开始建立第二种任务状态的二级任务群,并将二级任务群登录到第二种任务状态下的二级任务群的登记表中,二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;当所述二级任务群中的任务运行到第三种任务状态所需要的切换条件时,则开始建立第三种任务状态的二级任务群,依次循环直至完成工业控制的作业和流程。
[0042]二级多任务调度器的调度步骤如下:
[0043](I)、初始化第一种任务状态下的二级任务群所需的堆栈、内存;
[0044](2)、初始化并启动第一种任务状态下的二级任务群所需的输入输出硬件设备;
[0045](3)、建立任务就绪指针、任务等待指针和任务休眠指针,将任务就绪指针指向第一种任务状态下的二级任务登记表;
[0046](4)、首先判断有无就绪的二级任务,如果没有,工业控制装置休眠;如果有,则二级多任务调度器就会将就绪二级任务的优先级别与当前工业控制装置正在执行的二级任务的优先级别进行对比,判断就绪二级任务是高优先级的二级任务、相同优先级的二级任务还是低优先级的二级任务,如果是高优先级的二级任务,则二级多任务调度器控制执行就绪二级任务;如果是相同优先级的二级任务,则二级多任务调度器在时间片到达后控制就绪二级任务;如果是低优先级的二级任务,则二级多任务调度器返回当前正在执行的二级任务;
[0047](5)、当步骤(4)选定了需要执行的二级任务后,如果该二级任务是需要剥夺内核的二级任务,该二级任务设置内核锁定,如果此时二级多任务调度器需要新就绪二级任务调度时,则二级多任务调度器判断内核锁定后会返回执行当前需要剥夺内核的二级任务直至任务完成,内核解锁后,二级多任务调度器才执行新就绪二级任务;
[0048](6)、如果步骤(4)选定的二级任务需要等待某一事件触发时,则会加入任务等待指针的队列中,当该等待的事件触发后,二级多任务调度器将会使该任务就绪并执行步骤
(4),其中所述的事件包括中断信号、外围设备的触发信号或等待数据处理完成信号;
[0049](7)、当二级任务群中的二级任务执行完成后,就会输出状态切换条件同时二级多任务调度器退出工作,输出的状态切换条件用于启动多状态调度器切换下一个状态。
【权利要求】
1.一种多任务操作环境状态的计算机调度方法,其特征在于:包括一个多状态调度器和一个二级多任务调度器,所述的多状态调度器从工业控制作业、流程中的多个状态中选定第一种任务状态,二级多任务调度器启动第一种任务状态下的二级任务群和所述二级任务群的硬件资源,当二级多任务调度器调度的第一种任务状态下的二级任务达到第二种任务状态的切换条件时,多状态调度器就会关闭第一种任务状态下的二级任务群及所用的硬件资源,启动第二种任务状态,此时二级多任务调度器启动第二种任务状态下的二级任务群和该二级任务群所需的硬件资源,当二级多任务调度器调度的第二种任务状态下的二级任务达到第三种任务状态的切换条件时,多状态调度器就会关闭第二种任务状态下的二级任务群及所用的硬件资源,启动第三种任务状态,依次循环直至完成工业控制的作业和流程。
2.根据权利要求1所述的一种多任务操作环境状态的计算机调度方法,其特征在于:所述多状态调度器的调度步骤如下: (1)、启动工业控制装置,初始化工业控制装置基本的硬件资源,建立工业控制装置中作业、流程的任务状态; (2)、建立不同任务状态之间的切换条件; (3)、建立每个任务状态下的二级任务群的登记表; (4)、启动多状态调度器并进入第一种任务状态; (5)、建立第一种任务状态下的二级任务群,将二级任务群登录到第一种任务状态下的二级任务群的登记表中,其中所述的二级任务群中的任务包括高优先级的二级任务、相同优先级的二级任务和需 要剥夺内核的二级任务; (6)、二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务; (7)、当所述二级任务群中的任务运行到第二种任务状态所需要的切换条件时,则开始建立第二种任务状态的二级任务群,并将二级任务群登录到第二种任务状态下的二级任务群的登记表中,二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;当所述二级任务群中的任务运行到第三种任务状态所需要的切换条件时,则开始建立第三种任务状态的二级任务群,依次循环直至完成工业控制的作业和流程。
3.根据权利要求1所述的一种多任务操作环境状态的计算机调度方法,其特征在于:所述二级多任务调度器的调度步骤如下: (1)、初始化第一种任务状态下的二级任务群所需的堆栈、内存; (2)、初始化并启动第一种任务状态下的二级任务群所需的输入输出硬件设备; (3)、建立任务就绪指针、任务等待指针和任务休眠指针,将任务就绪指针指向第一种任务状态下的二级任务登记表; (4)、首先判断有无就绪的二级任务,如果没有,工业控制装置休眠;如果有,则二级多任务调度器就会将就绪二级任务的优先级别与当前工业控制装置正在执行的二级任务的优先级别进行对比,判断就绪二级任务是高优先级的二级任务、相同优先级的二级任务还是低优先级的二级任务,如果是高优先级的二级任务,则二级多任务调度器控制执行就绪二级任务;如果是相同优先级的二级任务,则二级多任务调度器在时间片到达后控制就绪二级任务;如果是低优先级的二级任务,则二级多任务调度器返回当前正在执行的二级任务;(5)、当步骤(4)选定了需要执行的二级任务后,如果该二级任务是需要剥夺内核的二级任务,该二级任务设置内核锁定,如果此时二级多任务调度器需要新就绪二级任务调度时,则二级多任务调度器判断内核锁定后会返回执行当前需要剥夺内核的二级任务直至任务完成,内核解锁后,二级多任务调度器才执行新就绪二级任务; (6)、如果步骤(4)选定的二级任务需要等待某一事件触发时,则会加入任务等待指针的队列中,当该等待的事件触发后,二级多任务调度器将会使该任务就绪并执行步骤(4),其中所述的事件包括中断信号、外围设备的触发信号或等待数据处理完成信号; (7)、当二级任务群中的二级任务执行完成后,就会输出状态切换条件同时二级多任务调度器退出工作,输 出的状态切换条件用于启动多状态调度器切换下一个状态。
【文档编号】G06F9/48GK104021041SQ201410260884
【公开日】2014年9月3日 申请日期:2014年6月12日 优先权日:2014年6月12日
【发明者】杨育红, 苏伟, 王振华 申请人:山西江河海融科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1