发明名称 Java操作系统中实时任务调度的实现方法
摘要 本发明公开了一种支持Java操作系统中实时任务调度的实现方法,Java操作系统中实时任务的定义,通过标识号、实时任务的状态、实时任务的优先级、任务控制块、任务控制块队列来标识定义;Java操作系统中对实时任务使用了多任务调度方法和采用最高优先级第一的调度方法,在封锁中断状态下工作。从而可以在多个Java程序并发的场合下大幅度节省系统资源,提高进程并发效率,本发明对嵌入式系统环境,尤其是面向嵌入式系统的Java操作系统,有重大意义。
申请公布号 CN1794183A 申请公布日期 2006.06.28
申请号 CN200610049139.0 申请日期 2006.01.17
申请人 浙江大学 发明人 陈天洲;戴鸿君;黄彧
分类号 G06F9/46(2006.01) 主分类号 G06F9/46(2006.01)
代理机构 杭州求是专利事务所有限公司 代理人 林怀禹
主权项 1、一种支持Java操作系统中实时任务调度的实现方法,其特征在于:1)Java操作系统中实时任务的定义,即一个作业中可以并行执行的程序段,而这些程序段一般具有实时特性,通过如下的结构定义:I、标识号,用来标识任务,起到任务名的作用。它的取值范围为0~255,两个任务不能有相同的非零标识号,但唯独标识号为零的任务可以有多个;II、实时任务的状态,包括:(1)运行状态:任务获得处理机,正在运行;(2)就绪状态:只要获得处理机,任务即可运行;(3)挂起状态:由于某种原因,任务即使得到处理机也无法继续执行,只有待此种原因撤销后,任务才有获得处理机的权利;(4)潜伏状态:任务建立之前和撤销以后的状态;III、实时任务的优先级,就绪任务取得处理机的先后次序是由任务的优先级来规定的,任务的优先级反映了它想获得其执行结果的急切程度。任务调度程序总是挑选优先级最高的任务运行。任务优先级范围为0~255,其中0优先级为最高,不同任务可以有相同的优先级;IV、任务控制块,即任务的所有外部特性信息集中在一起,便称为任务控制块TCB,Task Control Block。依据描写任务外部特性的信息,任务系统实现对任务的控制和管理;任务控制块是表征任务存在的唯一实体。当任务系统收回了任务的任务控制块后,任务就被撤销了,当建立一个新任务时,任务系统为它分配一个空的任务控制块,并填入此任务有关的外部特性信息,如启动地址、任务标识号、优先级等,这时任务便存在于系统之中。同样,任务系统对于各个任务进行调度、控制和管理,也都是根据每个任务的任务控制块进行的;V、任务控制块队列,用户作业内的任务数由用户指定,系统装配程序根据任务数来分配任务控制块空间;系统将处地就绪、运行和挂起状态的所有任务的任务控制块借助于任务控制块中的连接字串成一个链,称为就绪队列或活动链。该队列的首地址一般存于用户作业的作业控制表中;2)实时任务的调度方法Java操作系统中对实时任务进行调度可以保证各任务都能按其要求执行,充分发挥全部资源的系统效率,即利用系统的现有配置,使其资源的利用率尽量提高。系统资源不仅包括计算机系统的系统资源,还包括实时控制系统的其他设备和资源;Java操作系统中使用了多任务调度方法,在发生下列事件时,多任务调度程序扫视就绪队列,挑选一个任务投入运行:(1)任何一个任务的状态发生变化;(2)任务优先级发生变化;(3)操作系统又将中央处理机控制权交给任务调度程序;Java操作系统中采用最高优先级第一的调度方法。任务调度程序从就绪队列链首开始扫视,选择就绪任务中优先级最高的任务投入运行,由于就绪队列中任务控制块是按优先级高低顺序排列的,因此被扫视的第一个就绪任务必定有最高的优先级。为了使相同优先级的就绪任务有轮流得到处理机控制权的机会,多任务系统对它们采取了循环调度的策略,即将选中投入运行任务的任务控制块从就绪队列上原来位置移到同一优先级任务控制块的最末尾。这样,当任务调度程序下次扫视就绪队列时,此任务的任务控制块已成为同优先级任务任务控制块中的最后一个,从而也最后得到处理机;Java操作系统中在封锁中断状态下工作,就绪队列上任务控制块是程序的操作对象,各控制块中信息不允许在调度进行过程中发生变化,故进入程序立即封锁中断,以保证多任务调度程序执行过程中不会被打断;然后依次扫描就绪队列上各任务控制块,若发现处于就绪状态的任务,根据同优先级任务循环调度原则,选出当前的活动任务控制块,调度程序负责恢复投入运行任务的现场,这包括有关状态字、指令计数器和各寄存器内容。
地址 310027浙江省杭州市西湖区浙大路38号