CN104021041A - 一种多任务操作环境状态的计算机调度方法 - Google Patents
一种多任务操作环境状态的计算机调度方法 Download PDFInfo
- Publication number
- CN104021041A CN104021041A CN201410260884.4A CN201410260884A CN104021041A CN 104021041 A CN104021041 A CN 104021041A CN 201410260884 A CN201410260884 A CN 201410260884A CN 104021041 A CN104021041 A CN 104021041A
- Authority
- CN
- China
- Prior art keywords
- task
- status
- scheduling
- group
- secondary multi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于计算机调度技术领域,具体涉及一种多任务操作环境状态的计算机调度方法。本发明主要解决现有的调度方法存在消耗内存大和任务调度复杂的问题。本发明的技术方案为:一种多任务操作环境状态的计算机调度方法,所述的多状态调度器从工业控制作业、流程中的多个状态中选定第一种任务状态,二级多任务调度器启动第一种任务状态下的二级任务群和所述二级任务群的硬件资源,当二级多任务调度器调度的第一种任务状态下的二级任务达到第二种任务状态的切换条件时,多状态调度器就会关闭第一种任务状态下的二级任务群及所用的硬件资源,启动第二种任务状态依次循环直至完成工业控制的作业和流程。本发明具有操作简单的优点。
Description
技术领域
本发明属于基于状态的多任务操作环境的计算机调度技术领域,具体涉及一种多任务操作环境状态的计算机调度方法。
背景技术
在一个复杂的工业控制系统中,如果可以将这个系统划分为若干个有限的状态,然后对每个状态下的任务分别实时的调度和处理,会使得系统控制变得简单明了,非常便于系统的维护和管理。在现有的几种多任务操作环境的调度方法有如下几种:
1、基于位图优先级的调度方法是:首先建立了64个优先级位图,每个任务一个优先级,将所有的任务都分配一个优先级,然后调度器会按照优先级的先后顺序来调度系统任务,任务的数量不能超过64个。对于有大量的任务处理时,这种调度方法就失效了,而且每个事件都要建立64个位图,因此会消耗大量内存。uCOS就具有这方面的代表性。
2、基于队列优先级的调度方法是:建立一组优先级为8级或16级的队列,每级优先级队列中可以包含若干个同等优先级的任务,调度器首先按照优先级高的任务先调度,然后在同级别中的任务按照等时间片的方法调度。任务数量没有限制,内存消耗小,但是处理状态任务时,由于不能在调度层处理状态切换和任务调度管理,因此在任务层上完成状态切换和相应的任务调度就会非常复杂。FreeRTOS具有这方面的代表性。
3、基于层级管理的调度方法是:将系统任务分为硬件层驱动、系统层任务和应用层任务的三级任务,硬件层驱动高于系统层任务,而系统层任务级别高于应用层级别,硬件层驱动为系统层任务服务,系统层任务服务于应用层任务,硬件层驱动和系统层任务在系统后台执行,调度器在调度应用层的任务时,根据应用层任务的需求分别挂载硬件层驱动和系统层任务,当硬件层驱动或系统任务有该应用层所等待的事件被触发后,调度器通知应用层任务。windowsCE、uClinux具有这方面的代表性。
综上,在基于状态的多任务操作环境的计算机调度方法中,上述各个系统调度方法的执行效率和系统开发成本的控制都不理想,都是基于任务的调度,没有在操作系统级上直接处理状态和任务。
发明内容
本发明主要针对现有的多任务操作环境的调度方法存在消耗内存大和任务调度复杂的问题,提供一种多任务操作环境状态的计算机调度方法。
本发明为解决上述问题而采取的技术方案为:
一种多任务操作环境状态的计算机调度方法,包括一个多状态调度器和一个二级多任务调度器,所述的多状态调度器从工业控制作业、流程中的多个状态中选定第一种任务状态,二级多任务调度器启动第一种任务状态下的二级任务群和所述二级任务群的硬件资源,当二级多任务调度器调度的第一种任务状态下的二级任务达到第二种任务状态的切换条件时,多状态调度器就会关闭第一种任务状态下的二级任务群及所用的硬件资源,启动第二种任务状态,此时二级多任务调度器启动第二种任务状态下的二级任务群和该二级任务群所需的硬件资源,当二级多任务调度器调度的第二种任务状态下的二级任务达到第三种任务状态的切换条件时,多状态调度器就会关闭第二种任务状态下的二级任务群及所用的硬件资源,启动第三种任务状态,依次循环直至完成工业控制的作业和流程。
所述多状态调度器的调度步骤如下:
(1)、启动工业控制装置,初始化工业控制装置基本的硬件资源,建立工业控制装置中作业、流程的任务状态;
(2)、建立不同任务状态之间的切换条件;
(3)、建立每个任务状态下的二级任务群的登记表;
(4)、启动多状态调度器并进入第一种任务状态;
(5)、建立第一种任务状态下的二级任务群,将二级任务群登录到第一种任务状态下的二级任务群的登记表中,其中所述的二级任务群中的任务包括高优先级的二级任务、相同优先级的二级任务和需要剥夺内核的二级任务;
(6)、二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;
(7)、当所述二级任务群中的任务运行到第二种任务状态所需要的切换条件时,则开始建立第二种任务状态的二级任务群,并将二级任务群登录到第二种任务状态下的二级任务群的登记表中,二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;当所述二级任务群中的任务运行到第三种任务状态所需要的切换条件时,则开始建立第三种任务状态的二级任务群,依次循环直至完成工业控制的作业和流程。
所述二级多任务调度器的调度步骤如下:
(1)、初始化第一种任务状态下的二级任务群所需的堆栈、内存;
(2)、初始化并启动第一种任务状态下的二级任务群所需的输入输出硬件设备;
(3)、建立任务就绪指针、任务等待指针和任务休眠指针,将任务就绪指针指向第一种任务状态下的二级任务登记表;
(4)、首先判断有无就绪的二级任务,如果没有,工业控制装置休眠;如果有,则二级多任务调度器就会将就绪二级任务的优先级别与当前工业控制装置正在执行的二级任务的优先级别进行对比,判断就绪二级任务是高优先级的二级任务、相同优先级的二级任务还是低优先级的二级任务,如果是高优先级的二级任务,则二级多任务调度器控制执行就绪二级任务;如果是相同优先级的二级任务,则二级多任务调度器在时间片到达后控制就绪二级任务;如果是低优先级的二级任务,则二级多任务调度器返回当前正在执行的二级任务;
(5)、当步骤(4)选定了需要执行的二级任务后,如果该二级任务是需要剥夺内核的二级任务,该二级任务设置内核锁定,如果此时二级多任务调度器需要新就绪二级任务调度时,则二级多任务调度器判断内核锁定后会返回执行当前需要剥夺内核的二级任务直至任务完成,内核解锁后,二级多任务调度器才执行新就绪二级任务;
(6)、如果步骤(4)选定的二级任务需要等待某一事件触发时,则会加入任务等待指针的队列中,当该等待的事件触发后,二级多任务调度器将会使该任务就绪并执行步骤(4),其中所述的事件包括中断信号、外围设备的触发信号或等待数据处理完成信号;
(7)、当二级任务群中的二级任务执行完成后,就会输出状态切换条件同时二级多任务调度器退出工作,输出的状态切换条件用于启动多状态调度器切换下一个状态。
由于一个复杂的工业控制系统中,使用状态机控制,会使得系统控制变得简单且便于系统的维护和管理。因此本发明采用上述技术方案,使用了系统底层调度切换系统的状态,并使得当前状态下的任务群单独占系统的硬件资源,又因为采用了高优先级的任务先运行、内核可剥夺、实时处理技术,这样将会提高系统任务执行的效率;由于状态的调度没有放在任务中执行,简化和缩短了系统开发过程。
附图说明
图1是本发明工业控制装置的框架图;
图2是本发明方法的流程图;
图3是本发明状态创建流程图;
图4是本发明多状态调度器流程图;
图5是本发明二级多任务调度器的流程图。
具体实施方式
实施例1
如图1,图2,图3,图4和图5所示,一种多任务操作环境状态的计算机调度方法,包括一个多状态调度器和一个二级多任务调度器,所述的多状态调度器从工业控制作业、流程中的多个状态中选定第一种任务状态,二级多任务调度器启动第一种任务状态下的二级任务群和所述二级任务群的硬件资源,当二级多任务调度器调度的第一种任务状态下的二级任务达到第二种任务状态的切换条件时,多状态调度器就会关闭第一种任务状态下的二级任务群及所用的硬件资源,启动第二种任务状态,此时二级多任务调度器启动第二种任务状态下的二级任务群和该二级任务群所需的硬件资源,当二级多任务调度器调度的第二种任务状态下的二级任务达到第三种任务状态的切换条件时,多状态调度器就会关闭第二种任务状态下的二级任务群及所用的硬件资源,启动第三种任务状态,依次循环直至完成工业控制的作业和流程;
其中多状态调度器的调度步骤如下:
(1)、启动工业控制装置,初始化工业控制装置基本的硬件资源,建立工业控制装置中作业、流程的任务状态;
(2)、建立不同任务状态之间的切换条件;
(3)、建立每个任务状态下的二级任务群的登记表;
(4)、启动多状态调度器并进入第一种任务状态;
(5)、建立第一种任务状态下的二级任务群,将二级任务群登录到第一种任务状态下的二级任务群的登记表中,其中所述的二级任务群中的任务包括高优先级的二级任务、相同优先级的二级任务和需要剥夺内核的二级任务;
(6)、二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;
(7)、当所述二级任务群中的任务运行到第二种任务状态所需要的切换条件时,则开始建立第二种任务状态的二级任务群,并将二级任务群登录到第二种任务状态下的二级任务群的登记表中,二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;当所述二级任务群中的任务运行到第三种任务状态所需要的切换条件时,则开始建立第三种任务状态的二级任务群,依次循环直至完成工业控制的作业和流程。
二级多任务调度器的调度步骤如下:
(1)、初始化第一种任务状态下的二级任务群所需的堆栈、内存;
(2)、初始化并启动第一种任务状态下的二级任务群所需的输入输出硬件设备;
(3)、建立任务就绪指针、任务等待指针和任务休眠指针,将任务就绪指针指向第一种任务状态下的二级任务登记表;
(4)、首先判断有无就绪的二级任务,如果没有,工业控制装置休眠;如果有,则二级多任务调度器就会将就绪二级任务的优先级别与当前工业控制装置正在执行的二级任务的优先级别进行对比,判断就绪二级任务是高优先级的二级任务、相同优先级的二级任务还是低优先级的二级任务,如果是高优先级的二级任务,则二级多任务调度器控制执行就绪二级任务;如果是相同优先级的二级任务,则二级多任务调度器在时间片到达后控制就绪二级任务;如果是低优先级的二级任务,则二级多任务调度器返回当前正在执行的二级任务;
(5)、当步骤(4)选定了需要执行的二级任务后,如果该二级任务是需要剥夺内核的二级任务,该二级任务设置内核锁定,如果此时二级多任务调度器需要新就绪二级任务调度时,则二级多任务调度器判断内核锁定后会返回执行当前需要剥夺内核的二级任务直至任务完成,内核解锁后,二级多任务调度器才执行新就绪二级任务;
(6)、如果步骤(4)选定的二级任务需要等待某一事件触发时,则会加入任务等待指针的队列中,当该等待的事件触发后,二级多任务调度器将会使该任务就绪并执行步骤(4),其中所述的事件包括中断信号、外围设备的触发信号或等待数据处理完成信号;
(7)、当二级任务群中的二级任务执行完成后,就会输出状态切换条件同时二级多任务调度器退出工作,输出的状态切换条件用于启动多状态调度器切换下一个状态。
Claims (3)
1.一种多任务操作环境状态的计算机调度方法,其特征在于:包括一个多状态调度器和一个二级多任务调度器,所述的多状态调度器从工业控制作业、流程中的多个状态中选定第一种任务状态,二级多任务调度器启动第一种任务状态下的二级任务群和所述二级任务群的硬件资源,当二级多任务调度器调度的第一种任务状态下的二级任务达到第二种任务状态的切换条件时,多状态调度器就会关闭第一种任务状态下的二级任务群及所用的硬件资源,启动第二种任务状态,此时二级多任务调度器启动第二种任务状态下的二级任务群和该二级任务群所需的硬件资源,当二级多任务调度器调度的第二种任务状态下的二级任务达到第三种任务状态的切换条件时,多状态调度器就会关闭第二种任务状态下的二级任务群及所用的硬件资源,启动第三种任务状态,依次循环直至完成工业控制的作业和流程。
2.根据权利要求1所述的一种多任务操作环境状态的计算机调度方法,其特征在于:所述多状态调度器的调度步骤如下:
(1)、启动工业控制装置,初始化工业控制装置基本的硬件资源,建立工业控制装置中作业、流程的任务状态;
(2)、建立不同任务状态之间的切换条件;
(3)、建立每个任务状态下的二级任务群的登记表;
(4)、启动多状态调度器并进入第一种任务状态;
(5)、建立第一种任务状态下的二级任务群,将二级任务群登录到第一种任务状态下的二级任务群的登记表中,其中所述的二级任务群中的任务包括高优先级的二级任务、相同优先级的二级任务和需要剥夺内核的二级任务;
(6)、二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;
(7)、当所述二级任务群中的任务运行到第二种任务状态所需要的切换条件时,则开始建立第二种任务状态的二级任务群,并将二级任务群登录到第二种任务状态下的二级任务群的登记表中,二级多任务调度器进行二级任务群调度并运行该二级任务群中的任务;当所述二级任务群中的任务运行到第三种任务状态所需要的切换条件时,则开始建立第三种任务状态的二级任务群,依次循环直至完成工业控制的作业和流程。
3.根据权利要求1所述的一种多任务操作环境状态的计算机调度方法,其特征在于:所述二级多任务调度器的调度步骤如下:
(1)、初始化第一种任务状态下的二级任务群所需的堆栈、内存;
(2)、初始化并启动第一种任务状态下的二级任务群所需的输入输出硬件设备;
(3)、建立任务就绪指针、任务等待指针和任务休眠指针,将任务就绪指针指向第一种任务状态下的二级任务登记表;
(4)、首先判断有无就绪的二级任务,如果没有,工业控制装置休眠;如果有,则二级多任务调度器就会将就绪二级任务的优先级别与当前工业控制装置正在执行的二级任务的优先级别进行对比,判断就绪二级任务是高优先级的二级任务、相同优先级的二级任务还是低优先级的二级任务,如果是高优先级的二级任务,则二级多任务调度器控制执行就绪二级任务;如果是相同优先级的二级任务,则二级多任务调度器在时间片到达后控制就绪二级任务;如果是低优先级的二级任务,则二级多任务调度器返回当前正在执行的二级任务;
(5)、当步骤(4)选定了需要执行的二级任务后,如果该二级任务是需要剥夺内核的二级任务,该二级任务设置内核锁定,如果此时二级多任务调度器需要新就绪二级任务调度时,则二级多任务调度器判断内核锁定后会返回执行当前需要剥夺内核的二级任务直至任务完成,内核解锁后,二级多任务调度器才执行新就绪二级任务;
(6)、如果步骤(4)选定的二级任务需要等待某一事件触发时,则会加入任务等待指针的队列中,当该等待的事件触发后,二级多任务调度器将会使该任务就绪并执行步骤(4),其中所述的事件包括中断信号、外围设备的触发信号或等待数据处理完成信号;
(7)、当二级任务群中的二级任务执行完成后,就会输出状态切换条件同时二级多任务调度器退出工作,输出的状态切换条件用于启动多状态调度器切换下一个状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410260884.4A CN104021041B (zh) | 2014-06-12 | 2014-06-12 | 一种多任务操作环境状态的计算机调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410260884.4A CN104021041B (zh) | 2014-06-12 | 2014-06-12 | 一种多任务操作环境状态的计算机调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021041A true CN104021041A (zh) | 2014-09-03 |
CN104021041B CN104021041B (zh) | 2017-02-22 |
Family
ID=51437809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410260884.4A Expired - Fee Related CN104021041B (zh) | 2014-06-12 | 2014-06-12 | 一种多任务操作环境状态的计算机调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021041B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750345A (zh) * | 2019-10-16 | 2020-02-04 | 北京航空航天大学 | 一种数字孪生系统复杂任务高效调度系统 |
CN116450306A (zh) * | 2022-09-26 | 2023-07-18 | 宁德时代新能源科技股份有限公司 | 任务调度方法、装置、设备、存储介质及产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526521A (en) * | 1993-02-24 | 1996-06-11 | International Business Machines Corporation | Method and system for process scheduling from within a current context and switching contexts only when the next scheduled context is different |
CN1794183A (zh) * | 2006-01-17 | 2006-06-28 | 浙江大学 | Java操作系统中实时任务调度的实现方法 |
CN1828543A (zh) * | 2006-04-07 | 2006-09-06 | 浙江大学 | Java操作系统中实时任务调度方法 |
CN101290588A (zh) * | 2008-03-07 | 2008-10-22 | 重庆邮电大学 | 一种微嵌入式实时任务调度器及调度方法 |
CN102375761A (zh) * | 2010-08-06 | 2012-03-14 | 中兴通讯股份有限公司 | 业务管理方法和装置、以及设备 |
-
2014
- 2014-06-12 CN CN201410260884.4A patent/CN104021041B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526521A (en) * | 1993-02-24 | 1996-06-11 | International Business Machines Corporation | Method and system for process scheduling from within a current context and switching contexts only when the next scheduled context is different |
CN1794183A (zh) * | 2006-01-17 | 2006-06-28 | 浙江大学 | Java操作系统中实时任务调度的实现方法 |
CN1828543A (zh) * | 2006-04-07 | 2006-09-06 | 浙江大学 | Java操作系统中实时任务调度方法 |
CN101290588A (zh) * | 2008-03-07 | 2008-10-22 | 重庆邮电大学 | 一种微嵌入式实时任务调度器及调度方法 |
CN102375761A (zh) * | 2010-08-06 | 2012-03-14 | 中兴通讯股份有限公司 | 业务管理方法和装置、以及设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750345A (zh) * | 2019-10-16 | 2020-02-04 | 北京航空航天大学 | 一种数字孪生系统复杂任务高效调度系统 |
CN116450306A (zh) * | 2022-09-26 | 2023-07-18 | 宁德时代新能源科技股份有限公司 | 任务调度方法、装置、设备、存储介质及产品 |
CN116450306B (zh) * | 2022-09-26 | 2023-12-26 | 宁德时代新能源科技股份有限公司 | 任务调度方法、装置、设备、存储介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN104021041B (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101452404B (zh) | 一种嵌入式操作系统的任务调度装置及方法 | |
CN104915256B (zh) | 一种任务的实时调度实现方法及其系统 | |
CN103941649A (zh) | 多轴运动卡控制系统的控制方法 | |
CN105320570B (zh) | 资源管理方法和系统 | |
CN112463709A (zh) | 可配置的异构人工智能处理器 | |
CN102713847A (zh) | 处理器内核的监管程序隔离 | |
CN101464811A (zh) | 多任务监控管理系统 | |
CN101894047A (zh) | 一种基于内核虚拟机调度策略的实现方法 | |
CN101051280A (zh) | 智能卡嵌入式操作系统及其控制方法 | |
CN107818012B (zh) | 一种数据处理方法、装置及电子设备 | |
CN105608049A (zh) | 智能终端的cpu控制方法及控制装置 | |
CN101414270A (zh) | 硬件辅助的辅核任务动态优先级调度的实现方法 | |
CN105204857A (zh) | 一种基于“轮询式”多时间片精确调度的嵌入式控制系统设计方法 | |
CN102073572A (zh) | 用于多核处理器的监控方法及系统 | |
CN103677990A (zh) | 虚拟机实时任务的调度方法、装置和虚拟机 | |
US20150033235A1 (en) | Distributed Mechanism For Minimizing Resource Consumption | |
CN108196950A (zh) | 一种应用于窄带物联网的实时化操作系统及其方法 | |
CN103064736A (zh) | 任务处理装置及方法 | |
CN105045666A (zh) | Windows操作系统环境下的分区调度方法 | |
CN104021041A (zh) | 一种多任务操作环境状态的计算机调度方法 | |
CN110503318A (zh) | 综合模块化航空电子处理系统资源配置与仿真评估平台 | |
CN106843890B (zh) | 基于智能决策的传感器网络、节点及其运行方法 | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
CN106874129A (zh) | 一种操作系统进程调度顺序确定方法及控制方法 | |
CN103428274A (zh) | 一种通过短信猫以观察者模式发送短信的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170222 Termination date: 20190612 |
|
CF01 | Termination of patent right due to non-payment of annual fee |