CN1828543A - Java操作***中实时任务调度方法 - Google Patents
Java操作***中实时任务调度方法 Download PDFInfo
- Publication number
- CN1828543A CN1828543A CN 200610050256 CN200610050256A CN1828543A CN 1828543 A CN1828543 A CN 1828543A CN 200610050256 CN200610050256 CN 200610050256 CN 200610050256 A CN200610050256 A CN 200610050256A CN 1828543 A CN1828543 A CN 1828543A
- Authority
- CN
- China
- Prior art keywords
- task
- tcb
- control block
- real
- time
- 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
- 238000000034 method Methods 0.000 title claims abstract description 13
- 230000015572 biosynthetic process Effects 0.000 claims description 13
- 238000005755 formation reaction Methods 0.000 claims description 13
- 230000000694 effects Effects 0.000 claims description 6
- 230000008447 perception Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种Java操作***中实时任务调度方法。在Java操作***中,对实时任务的响应,是Java操作***的一个重要方面。Java操作***中实时任务调度方法实现方法,一方面保证各任务都能按其要求响应时间执行,充分发挥全部资源的***效率,利用操作***的现有配置,使操作***的资源的利用率尽量提高,提高***运行效率,另一方面,及时响应实时任务,在规定的响应时间内响应并处理异步事件的请求,高度可靠性。本发明对嵌入式***环境,尤其是面向嵌入式***的Java操作***,有重大意义。
Description
技术领域
本发明涉及实时任务处理技术,特别是涉及一种Java操作***中实时任务调度方法。
背景技术
操作***的实时性是操作***的一个重要特征,是实时控制计算机软、硬件***的核心。它随着实时多任务计算机***软件的形成而诞生,随着实时多任务***要求的提高而发展。以数字计算机为中心的实时多任务操作***已经在工业、交通、能源、银行、科学研究和科学试验、国防等各个领域发挥了极其重要的作用。
实时操作***是操作***的一个重要分支。它应属于操作***的研究范畴。实时操作***与通用操作***有共同的一面,但在功能、性能、安全保密及环境适应能力等方面,还有其独特的一面。
实时操作***是指具有实时特性,能支持实时控制***工作的操作***,它可将***中的各种设备有机地联系在一起并控制它们完成既定的任务。
实时操作***的首要任务是利用一切可利用的资源完成实时控制任务,其次才着眼于提高计算机***的使用效率。
实时操作***的一个重要特点就是要满足对时间的限制和要求。在实时***中,时间就是生命,这与通用操作***有显著的差别。
除个别***外,实时操作***都就是多道程序的操作***。
实时数字控制***是实时操作***的主要生存环境和工作环境,实时操作***控制实时***的各种设备共同完成任务。
实时控制***属于控制***的研究范畴。从功能而言,控制***可被定义为对能量或其他媒体流量等进行调节的装置。
实时控制***是一种能接收数据、加工处理并可将处理结果及时予以反馈的环境控制***。
实时控制***由以下四大部分构成:
数字采集。它用来收集、接收或录入***工作所必要的信息,或进行信号检测;
加工处理。它对收集、接收或录入的信息(包括信号检测的结果)进行加工处理,得出控制***工作所必要的参数或作出决定,然后进行输出、记录或显示;
操作控制。它根据加工处理设备所输出的信息(包括输出信号)采取适当措施或动作,以达到控制或适应环境的目的;
反馈处理。它监督执行机构的执行结果,并将该结果馈送至信号检测或数据接收设备,以便***根据反馈情况进一步采取措施,达到控制的预期目的。
发明内容
本发明的目的在于提供一种Java操作***中实时任务调度方法。
本发明解决其技术问题采用的技术方案如下:
1)基本数据结构
①任务标识号
任务标识号用来标识任务,起到任务名的作用,它的取值范围为0~255,两个任务不能有相同的非零标识号,但唯独标识号为零的任务可以有多个;
②实时任务的状态
根据任务的状态,将实时任务的状态分成运行状态、就绪状态、挂起状态、潜伏状态;
运行状态:任务获得处理机,正在运行;
就绪状态:只要获得处理机,任务即可运行;
挂起状态:由于某种原因,任务即使得到处理机也无法继续执行,只有待此种原因撤销后,任务才有获得处理机的权利;
潜伏状态:任务建立之前和撤销以后的状态;
③实时任务的优先级
任务的状态是调度时决定任务能否被选中投入运行的主要依据;就绪任务取得处理机的先后次序是由任务的优先级来规定的;
④任务控制块
任务控制块是任务的标志,任务***根据任务控制块而感知任务的存在,各种任务调用命令的操作对象就是任务的任务控制块;
任务控制块是表征任务存在的唯一实体,当任务***收回了任务的任务控件块后,任务就被撤销了,当建立一个新任务时,任务***为它分配一个空的任务控制块,并填入此任务有关的外部特性信息,这时任务便存在于***之中;任务***对于各个任务进行调度、控制和管理,也都是根据每个任务的任务控制块进行的;
⑤任务控制块队列
按任务的执行情况,根据任务的优先级将任务控制块组织成三种任务控制块队列:活动队列、就绪队列、空队列;
2)实时任务调度步骤
当***中发生任务的状态发生变化、任务优先级发生变化、Java操作***又将中央处理机控制权交给任务调度程序时,实时多任务调度器就开始执行调度过程,以挑选一个任务投入运行,步骤如下:
①关中断,扫描就绪队列;
②如果就绪队列为空执行步骤③,否则执行步骤⑥;
③将无就绪任务的标志送出;
④送出当前任务控制块的地址;
⑤***调度;
⑥就绪队列中的当前任务如果挂起执行步骤⑦,否则执行步骤⑧;
⑦取就绪队列中的下一个任务控制块,如果已经到队列执行③,否则执行⑥;
⑧将当前的任务控制块移至同优先级的尾,关闭中断恢复现场;
⑨送出当前任务控制块的地址;
⑩开中断,执行任务。
本发明具有的有益效果是:实现简单,***开销小,较小的***响应时间,在规定的响应时间内响应并处理异步事件的请求,高度可靠性,异常情况下***能及时正确处置,保证完成任务或最重要的任务。有效的任务调度保证各任务都能按其要求执行,充分发挥全部资源的***效率,利用***的现有配置,使操作***资源的利用率尽量提高,提高操作***运行效率。
附图说明
图1任务控制块队列;
图2是实时任务调度流程图。
具体实施方式
在实施实时任务调度时,具体方式如下:
1)基本数据结构
①任务标识号
任务标识号用来标识任务,起到任务名的作用,它的取值范围为0~255,两个任务不能有相同的非零标识号,但唯独标识号为零的任务可以有多个;
②实时任务的状态
运行状态:任务获得处理机,正在运行;
就绪状态:只要获得处理机,任务即可运行;
挂起状态:由于某种原因,任务即使得到处理机也无法继续执行,只有待此种原因撤销后,任务才有获得处理机的权利;
潜伏状态:任务建立之前和撤销以后的状态;
③实时任务的优先级
任务的状态是调度时决定任务能否被选中投入运行的主要依据;就绪任务取得处理机的先后次序是由任务的优先级来规定的;
任务的优先级反映了它想获得其执行结果的急切程度,一般情况下,任务调度程序总是挑选优先级最高的任务运行。任务优先级范围为0~255,其中0优先级为最高,不同任务可以有相同的优先级。在创建一个任务时,必须指定其优先级。若未指定,***就自动取当前任务的优先级为新任务的优先级;
④任务控制块
任务控制块是任务的标志,任务***根据任务控制块而感知任务的存在,各种任务调用命令的操作对象就是任务的任务控制块;
任务控制块是表征任务存在的唯一实体,当任务***收回了任务的任务控件块后,任务就被撤销了,当建立一个新任务时,任务***为它分配一个空的任务控制块,并填入此任务有关的外部特性信息,这时任务便存在于***之中;任务***对于各个任务进行调度、控制和管理,也都是根据每个任务的任务控制块进行的;
任务控制块也是用户任务与操作***交换信息的通信区。当用户任务向***申请***资源,如内存储区、输入输出设备时,需将有关申请请求的内容填入任务控制块之中。然后再提交给***,而***在完成用户提出的某些申请或操作后,也是将有关返回信息送入任务的任务控制块,而由任务从任务控制块中获取信息;
任务控制块的主要内容包括用户任务的运行现场信息,任务本身的外部特性信息和管理任务控制块的有关信息三部分,如下所示:
现场信息:保存用户任务运行现场信息中各寄存器或累加器的内容,保存用户任务程序计数器的内容;
任务外部特征信息:用户任务标识号,用户任务状态,用户任务优先级;
管理控制信息:任务调用命令字,任务与***通信区,任务控制块连接字。
⑤任务控制块队列
按任务的执行情况,根据任务的优先级将任务控制块组织成三种任务控制块队列:活动队列、就绪队列、空队列,如图1所示。
用户作业内的任务数由用户指定,***装配程序根据任务数来分配任务控制块空间。
就绪队列:将处在就绪、挂起状态的所有任务的任务控制块借助于任务控制块中的连接字串成一个链,各任务任务控制块是按任务的优先级先高后低的顺序排列的,相同优先级的任务控制块则按任务建立先后次序排列。
运行队列:将处在运行状态的所有任务的任务控制块借助于任务控制块中的连接字串成一个链,各任务任务控制块是按任务的优先级先高后低的顺序排列的,相同优先级的任务控制块则按任务建立先后次序排列。
空队列:所有空任务控制块一般也串成一条链。
各队列的首地址一般存于用户作业的作业控制表中。
2)实时任务调度步骤
当***中发生任务的状态发生变化、任务优先级发生变化、Java操作***又将中央处理机控制权交给任务调度程序时,实时多任务调度器就开始执行调度过程,以挑选一个任务投入运行。
任务调度程序从就绪队列链首开始扫视,选择就绪任务中优先级最高的任务投入运行,由于就绪队列中任务控制块是按优先级高低顺序排列的,因此被扫视的第一个就绪任务必定有最高的优先级。为了使相同优先级的就绪任务有轮流得到处理机控制权的机会,多任务***对它们采取了循环调度的策略,即将选中投入运行任务的任务控制块从就绪队列上原来位置移到同一优先级任务控制块的最末尾。这样,当任务调度程序下次扫视就绪队列时,此任务的任务控制块已成为同优先级任务任务控制块中的最后一个,从而也最后得到处理机。
程序依次扫描就绪队列上各任务控制块,若发现处于就绪状态的任务,根据同优先级任务循环调度原则,选出当前的活动任务控制块,调度程序负责恢复投入运行任务的现场,这包括有关状态字、指令计数器和各寄存器内容等。
如图2所示,具体步骤如下:
①关中断,扫描就绪队列
该程序在封锁中断状态下工作。因为就绪队列上任务控制块是程序的操作对象,各控制块中信息不允许在调度进行过程中发生变化,故进入程序立即封锁中断,以保证多任务调度程序执行过程中不会被打断。
②如果就绪队列为空执行步骤③,否则执行步骤⑥
当前的队列为空表明没有等待执行的实时任务,这时应该把权力交还给***调度器,而队列不为空时,则要选择要执行的实时任务。
③将无就绪任务的标志送出
没有实时作务,向操作***发出一个信号
④送出当前任务控制块的地址
把当前的任务控制块地址发送给操作***
⑤***调度
当没有实时任务时,就由操作***的***调度器来进行常规任务的调度。
⑥就绪队列中的当前任务如果挂起执行步骤⑦,否则执行步骤⑧
当前的实时任务是处于挂成状态,也就是资源不足,无法直接运行,这时就要去查找下一个满足条件的实时任务了,如果是处于就绪状态,就是可以直接运行
⑦取就绪队列中的下一个任务控制块,如果已经到队列执行③,否则执行⑥
取出下一个任务,再次判断是挂成任务
⑧将当前的任务控制块移至同优先级的尾,关闭中断恢复现场
选定当前的实时任务为欲执行任务,修改它的优先级,此里中断保存的现场没有必要,将它关闭,做执行任务的准备
⑨送出当前任务控制块的地址
向操作***送出当前任务控制块的地址,准备执行
⑩开中断,执行任务
开启中断服务,操作***执行当前的实时任务。
Claims (1)
1.一种Java操作***中实时任务调度方法,其特征在于:
1)基本数据结构
①任务标识号
任务标识号用来标识任务,起到任务名的作用,它的取值范围为0~255,两个任务不能有相同的非零标识号,但唯独标识号为零的任务可以有多个;
②实时任务的状态
根据任务的状态,将实时任务的状态分成运行状态、就绪状态、挂起状态、潜伏状态;
运行状态:任务获得处理机,正在运行;
就绪状态:只要获得处理机,任务即可运行;
挂起状态:由于某种原因,任务即使得到处理机也无法继续执行,只有待此种原因撤销后,任务才有获得处理机的权利;
潜伏状态:任务建立之前和撤销以后的状态;
③实时任务的优先级
任务的状态是调度时决定任务能否被选中投入运行的主要依据;就绪任务取得处理机的先后次序是由任务的优先级来规定的;
④任务控制块
任务控制块是任务的标志,任务***根据任务控制块而感知任务的存在,各种任务调用命令的操作对象就是任务的任务控制块;
任务控制块是表征任务存在的唯一实体,当任务***收回了任务的任务控件块后,任务就被撤销了,当建立一个新任务时,任务***为它分配一个空的任务控制块,并填入此任务有关的外部特性信息,这时任务便存在于***之中;任务***对于各个任务进行调度、控制和管理,也都是根据每个任务的任务控制块进行的;
⑤任务控制块队列
按任务的执行情况,根据任务的优先级将任务控制块组织成三种任务控制块队列:活动队列、就绪队列、空队列;
2)实时任务调度步骤
当***中发生任务的状态发生变化、任务优先级发生变化、Java操作***又将中央处理机控制权交给任务调度程序时,实时多任务调度器就开始执行调度过程,以挑选一个任务投入运行,步骤如下:
①关中断,扫描就绪队列;
②如果就绪队列为空执行步骤③,否则执行步骤⑥;
③将无就绪任务的标志送出;
④送出当前任务控制块的地址;
⑤***调度;
⑥就绪队列中的当前任务如果挂起执行步骤⑦,否则执行步骤⑧;
⑦取就绪队列中的下一个任务控制块,如果已经到队列执行③,否则执行⑥;
⑧将当前的任务控制块移至同优先级的尾,关闭中断恢复现场;
⑨送出当前任务控制块的地址;
⑩开中断,执行任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100502569A CN100383743C (zh) | 2006-04-07 | 2006-04-07 | Java操作***中实时任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100502569A CN100383743C (zh) | 2006-04-07 | 2006-04-07 | Java操作***中实时任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1828543A true CN1828543A (zh) | 2006-09-06 |
CN100383743C CN100383743C (zh) | 2008-04-23 |
Family
ID=36946954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100502569A Expired - Fee Related CN100383743C (zh) | 2006-04-07 | 2006-04-07 | Java操作***中实时任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100383743C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908002A (zh) * | 2010-08-17 | 2010-12-08 | 中兴通讯股份有限公司 | 一种任务路径切换方法及装置 |
CN101465792B (zh) * | 2007-12-18 | 2011-05-25 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 一种数据调度方法及装置 |
CN102866917A (zh) * | 2012-09-27 | 2013-01-09 | 深圳市金宏威技术股份有限公司 | 一种基于Linux平台的冷火实时处理方法及*** |
CN104021041A (zh) * | 2014-06-12 | 2014-09-03 | 山西江河海融科技有限公司 | 一种多任务操作环境状态的计算机调度方法 |
CN105573825A (zh) * | 2014-10-11 | 2016-05-11 | 华为技术有限公司 | 一种跨操作***的任务间同步的方法及装置 |
CN106775988A (zh) * | 2016-12-30 | 2017-05-31 | 广东欧珀移动通信有限公司 | 一种数据处理方法及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2740469B2 (ja) * | 1995-05-31 | 1998-04-15 | 日本電気アイシーマイコンシステム株式会社 | タスク管理方式 |
US6834385B2 (en) * | 2001-01-04 | 2004-12-21 | International Business Machines Corporation | System and method for utilizing dispatch queues in a multiprocessor data processing system |
CN100485605C (zh) * | 2001-09-24 | 2009-05-06 | 中兴通讯股份有限公司 | 一种多任务实时操作***的实现方法 |
CN1317640C (zh) * | 2004-08-31 | 2007-05-23 | 华为技术有限公司 | 实时操作***环境下多任务应用软件模块的管理方法 |
JP2005202976A (ja) * | 2005-02-15 | 2005-07-28 | Mitsubishi Electric Corp | 電子機器 |
-
2006
- 2006-04-07 CN CNB2006100502569A patent/CN100383743C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101465792B (zh) * | 2007-12-18 | 2011-05-25 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 一种数据调度方法及装置 |
CN101908002A (zh) * | 2010-08-17 | 2010-12-08 | 中兴通讯股份有限公司 | 一种任务路径切换方法及装置 |
CN102866917A (zh) * | 2012-09-27 | 2013-01-09 | 深圳市金宏威技术股份有限公司 | 一种基于Linux平台的冷火实时处理方法及*** |
CN102866917B (zh) * | 2012-09-27 | 2015-08-19 | 深圳市金宏威技术股份有限公司 | 一种基于Linux平台的冷火实时处理方法及*** |
CN104021041A (zh) * | 2014-06-12 | 2014-09-03 | 山西江河海融科技有限公司 | 一种多任务操作环境状态的计算机调度方法 |
CN104021041B (zh) * | 2014-06-12 | 2017-02-22 | 山西江河海融科技有限公司 | 一种多任务操作环境状态的计算机调度方法 |
CN105573825A (zh) * | 2014-10-11 | 2016-05-11 | 华为技术有限公司 | 一种跨操作***的任务间同步的方法及装置 |
CN106775988A (zh) * | 2016-12-30 | 2017-05-31 | 广东欧珀移动通信有限公司 | 一种数据处理方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100383743C (zh) | 2008-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1828541A (zh) | Java操作***中定时任务的实现方法 | |
CN100346307C (zh) | Java操作***中实时任务调度的实现方法 | |
CN100342342C (zh) | 支持多进程的Java虚拟机实现方法 | |
CN1117319C (zh) | 在多线程处理器中改变线程优先级的方法和装置 | |
CN1188794C (zh) | 到一个共享的协处理器资源的多个逻辑接口 | |
CN1308826C (zh) | 用于smt处理器上的cpi调度的***和方法 | |
JP5324934B2 (ja) | 情報処理装置および情報処理方法 | |
CN1112636C (zh) | 在多线程处理器中选择线程切换事件的方法和装置 | |
CN1828543A (zh) | Java操作***中实时任务调度方法 | |
CN1908903A (zh) | 执行作业步的***和方法以及计算机产品 | |
CN100347675C (zh) | 应用服务器的性能优化方法 | |
CN1008484B (zh) | 处理机输入/输出和中断过滤器 | |
CN101894047A (zh) | 一种基于内核虚拟机调度策略的实现方法 | |
CN1316074A (zh) | 中断/软件控制的线程处理 | |
CN101051282A (zh) | 多操作***协同工作实现方法 | |
CN1516419A (zh) | 在主机计算机网络上处理客户机请求的***和方法 | |
CN1264078A (zh) | 执行多个操作***的计算机 | |
CN102779075A (zh) | 一种在多处理器核***中进行调度的方法、装置及*** | |
CN1818875A (zh) | 嵌入式操作***分组硬实时任务调度的实现方法 | |
CN1752896A (zh) | 操作***协作下的嵌入式设备电源管理方法及*** | |
CN1885282A (zh) | 多处理器*** | |
CN1317640C (zh) | 实时操作***环境下多任务应用软件模块的管理方法 | |
CN1855067A (zh) | 一种实时操作***中任务挂起状态监控方法 | |
CN1423456A (zh) | 共享线程实现和调度方法 | |
CN1758610A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080423 Termination date: 20120407 |