CN100383743C - Java操作系统中实时任务调度方法 - Google Patents
Java操作系统中实时任务调度方法 Download PDFInfo
- Publication number
- CN100383743C CN100383743C CNB2006100502569A CN200610050256A CN100383743C CN 100383743 C CN100383743 C CN 100383743C CN B2006100502569 A CNB2006100502569 A CN B2006100502569A CN 200610050256 A CN200610050256 A CN 200610050256A CN 100383743 C CN100383743 C CN 100383743C
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种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 CN1828543A (zh) | 2006-09-06 |
CN100383743C true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101465792B (zh) * | 2007-12-18 | 2011-05-25 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 一种数据调度方法及装置 |
CN101908002A (zh) * | 2010-08-17 | 2010-12-08 | 中兴通讯股份有限公司 | 一种任务路径切换方法及装置 |
CN102866917B (zh) * | 2012-09-27 | 2015-08-19 | 深圳市金宏威技术股份有限公司 | 一种基于Linux平台的冷火实时处理方法及系统 |
CN104021041B (zh) * | 2014-06-12 | 2017-02-22 | 山西江河海融科技有限公司 | 一种多任务操作环境状态的计算机调度方法 |
CN105573825B (zh) * | 2014-10-11 | 2020-02-14 | 华为技术有限公司 | 一种跨操作系统的任务间同步的方法及装置 |
CN106775988A (zh) * | 2016-12-30 | 2017-05-31 | 广东欧珀移动通信有限公司 | 一种数据处理方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08328879A (ja) * | 1995-05-31 | 1996-12-13 | Nec Ic Microcomput Syst Ltd | タスク管理方式 |
US20020087618A1 (en) * | 2001-01-04 | 2002-07-04 | International Business Machines Corporation | System and method for utilizing dispatch queues in a multiprocessor data processing system |
CN1409209A (zh) * | 2001-09-24 | 2003-04-09 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种多任务实时操作系统的实现方法 |
JP2005202976A (ja) * | 2005-02-15 | 2005-07-28 | Mitsubishi Electric Corp | 電子機器 |
CN1744046A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 实时操作系统环境下多任务应用软件模块的管理方法 |
-
2006
- 2006-04-07 CN CNB2006100502569A patent/CN100383743C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08328879A (ja) * | 1995-05-31 | 1996-12-13 | Nec Ic Microcomput Syst Ltd | タスク管理方式 |
US20020087618A1 (en) * | 2001-01-04 | 2002-07-04 | International Business Machines Corporation | System and method for utilizing dispatch queues in a multiprocessor data processing system |
CN1409209A (zh) * | 2001-09-24 | 2003-04-09 | 深圳市中兴通讯股份有限公司上海第二研究所 | 一种多任务实时操作系统的实现方法 |
CN1744046A (zh) * | 2004-08-31 | 2006-03-08 | 华为技术有限公司 | 实时操作系统环境下多任务应用软件模块的管理方法 |
JP2005202976A (ja) * | 2005-02-15 | 2005-07-28 | Mitsubishi Electric Corp | 電子機器 |
Non-Patent Citations (1)
Title |
---|
开放式实时系统的调度方法研究. 邹勇.中国科学院研究生院博士学位论文. 2003 * |
Also Published As
Publication number | Publication date |
---|---|
CN1828543A (zh) | 2006-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7370326B2 (en) | Prerequisite-based scheduler | |
CN101246437B (zh) | 一种嵌入式实时系统进程均衡调度方法 | |
US5469571A (en) | Operating system architecture using multiple priority light weight kernel task based interrupt handling | |
US8006247B2 (en) | Multi-tasking real-time operating system for microprocessors with limited memory | |
CN100383743C (zh) | Java操作系统中实时任务调度方法 | |
US7689996B2 (en) | Method to distribute programs using remote Java objects | |
CN100377091C (zh) | 嵌入式操作系统分组硬实时任务调度的实现方法 | |
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
CN101894047A (zh) | 一种基于内核虚拟机调度策略的实现方法 | |
CN102375761A (zh) | 业务管理方法和装置、以及设备 | |
CN103019835A (zh) | 一种多核处理器中断资源优化处理系统和方法 | |
CN101266553A (zh) | 基于嵌入式系统的多任务管理方法 | |
CN101452404A (zh) | 一种嵌入式操作系统的任务调度装置及方法 | |
CN100346307C (zh) | Java操作系统中实时任务调度的实现方法 | |
CN104598298A (zh) | 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法 | |
CN105912383A (zh) | 一种高可靠性的依赖任务调度与资源配置方法 | |
CN101976204B (zh) | 面向服务的异构多核计算平台及其使用的任务调度方法 | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
CN100383742C (zh) | Java操作系统中建立实时任务的实现方法 | |
CN102163163A (zh) | 无线传感器网络传感器小节点操作系统及其实现方法 | |
CN112346835B (zh) | 一种基于协程的调度处理方法及系统 | |
CN103019850B (zh) | 一种任务绑定的方法和装置 | |
CN117407054A (zh) | 中断处理方法、电子设备和存储介质 | |
Khemaissia et al. | New Reconfigurable Middleware for Feasible Adaptive RT-Linux. | |
JPH05108380A (ja) | データ処理システム |
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 |