一种资源调度方法及设备技术

技术编号:9848240 阅读:108 留言:0更新日期:2014-04-02 15:58
本发明专利技术实施例公开了一种资源调度方法,包括:判断第一任务对临界资源的访问是否与正在临界区访问所述临界资源的第二任务发生冲突,其中,第一任务的优先级比第二任务的优先级高,如果冲突,将所述临界区的临界资源给第一任务访问,由于高优先级的任务可以以抢占方式访问临界资源,无需等待低优先级任务执行结束,从而可以实现提高系统实时性的目的。另外,本发明专利技术实施例还公开了一种资源调度设备。

【技术实现步骤摘要】
一种资源调度方法及设备
本专利技术涉及计算机应用领域,特别涉及一种资源调度方法及设备。
技术介绍
临界资源,是指每次仅允许一个任务访问的资源。操作系统需要合理的调度临界资源,如果调度不好,就容易使系统处于不安全状态,甚至出现优先级反转的现象。优先级反转,是指当一个高优先级的任务访问临界资源时,该临界资源已被一低优先级的任务占有,而这个低优先级任务在访问其他临界资源时可能又被其它一些中等优先级任务抢先,因此造成高优先级任务被许多具有较低优先级任务阻塞,出现优先级反转现象。目前,通常会采用低优先级任务尽快执行结束以释放临界资源的策略来防止产生优先级反转现象。例如,优先级继承或者优先级天花板两种调度策略。优先级继承,是当发现高优先级的任务因为低优先级任务占用临界资源而阻塞时,就将低优先级任务的优先级提升到等待它所占有的临界资源的最高优先级任务的优先级,从而使得该低优先级任务不会被其他中等优先级任务抢先,尽快执行结束,释放临界资源;优先级天花板:是将申请某临界资源的任务的优先级提升到可能访问该临界资源的所有任务中最高优先级任务的优先级,从而使得该低优先级任务不会被其他中等优先级任务抢先,尽快执行结束,释放临界资源。但是,现有技术这一策略仍然需要高优先级的任务等待,因此,造成现有技术中系统实时性较差。
技术实现思路
有鉴于此,本专利技术实施例的主要目的在于提供一种资源调度方法及设备以实现提高系统实时性的目的。为了解决以上技术问题,本专利技术实施例采取的技术方案是:第一方面,本专利技术实施例提供了一种资源调度方法,所述方法包括:判断第一任务对临界资源的访问是否与正在临界区访问所述临界资源的第二任务发生冲突,其中,第一任务的优先级比第二任务的优先级高;如果冲突,将所述临界区的临界资源给第一任务访问。在第一方面的第一种可能的实现方式中,所述判断第一任务对临界资源的访问是否与正在临界区访问临界资源的第二任务发生冲突包括:在第一任务进入临界区之后与第二任务并行执行的过程中,判断第一任务对所述临界资源的访问是否与第二任务对所述临界资源的访问冲突;或者,判断第一任务尝试进入临界区以对临界资源访问时,是否存在正在临界区访问所述临界资源的第二任务,如果存在,确定第一任务对临界资源的访问与正在临界区访问临界资源的第二任务发生冲突。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在第一任务进入临界区之后与第二任务并行执行的过程中,如果判断出第一任务对所述临界资源的访问与第二任务对所述临界资源的访问冲突,还包括:控制第一任务发生任务回滚,重新执行第一任务;以及,控制第二任务发生任务回滚,将第二任务置于等待重试的状态或者取消第二任务对CPU的占用。结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,在第一任务尝试进入临界区以对临界资源访问时,如果确定第一任务对临界资源的访问与正在临界区访问临界资源的第二任务发生冲突,还包括:控制第二任务发生任务回滚,将第二任务置于等待重试的状态或者取消第二任务对CPU的占用。结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,在第一任务进入临界区与第二任务并行执行之前,还包括:在第一任务尝试进入临界区时,如果存在正在临界区访问所述临界资源的第二任务,比较所述第一任务的优先级与所述第二任务的优先级,如果第一任务的优先级比所述第二任务的优先级高,允许第一任务进入临界区与所述第二任务并行执行,如果所述第一任务的优先级等于所述第二任务的优先级或者比所述第二任务的优先级低,将第一任务置于等待重试的状态或者取消第一任务对CPU的占用;或者,在第一任务尝试进入临界区时,如果不存在正在临界区访问所述临界资源的任务时,允许所述第一任务进入临界区执行;或者,在第一任务与第三任务同时尝试进入临界区时,比较第一任务的优先级与第三任务的优先级,如果第一任务的优先级比第三任务的优先级高,允许所述第一任务进入所述临界区执行,如果所述第一任务的优先级等于所述第三任务的优先级或者比所述第三任务的优先级低,将第一任务置于等待重试的状态或者取消第一任务对CPU的占用。第二方面,本专利技术实施例提供了一种资源调度设备,所述设备包括:冲突判断单元,用于判断第一任务对临界资源的访问是否与正在临界区访问所述临界资源的第二任务发生冲突,其中,第一任务的优先级比第二任务的优先级高;抢占资源单元,用于如果冲突,将所述临界区的临界资源给第一任务访问。在第二方面的第一种可能的实现方式中,所述冲突判断单元:具体用于在第一任务进入临界区之后与第二任务并行执行的过程中,判断第一任务对所述临界资源的访问是否与第二任务对所述临界资源的访问冲突;或者,所述冲突判断单元,具体用于判断第一任务尝试进入临界区以对临界资源访问时,是否存在正在临界区访问所述临界资源的第二任务,如果存在,确定第一任务对临界资源的访问与正在临界区访问临界资源的第二任务发生冲突。结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:第一回滚单元,用于在第一任务进入临界区之后与第二任务并行执行的过程中,如果冲突判断单元判断出第一任务对所述临界资源的访问与第二任务对所述临界资源的访问冲突,控制第一任务发生任务回滚,重新执行第一任务,以及,控制第二任务发生任务回滚,将第二任务置于等待重试的状态或者取消第二任务对CPU的占用。结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,还包括:第二回滚单元,用于在第一任务尝试进入临界区以对临界资源访问时,如果冲突判断单元确定第一任务对临界资源的访问与正在临界区访问临界资源的第二任务发生冲突,控制第二任务发生任务回滚,将第二任务置于等待重试的状态或者取消第二任务对CPU的占用。结合第二方面的第一种可能的实现方式,在第四种可能的实现方式中,还包括:第一比较单元,用于在第一任务尝试进入临界区时,如果存在正在临界区访问所述临界资源的第二任务,比较所述第一任务的优先级与所述第二任务的优先级;第一接入单元,用于如果第一比较单元比较出第一任务的优先级比所述第二任务的优先级高,允许第一任务进入临界区与所述第二任务并行执行,如果第一比较单元比较出第一任务的优先级等于所述第二任务的优先级或者比所述第二任务的优先级低,将第一任务置于等待重试的状态或者取消第一任务对CPU的占用;或者,第二接入单元,用于在第一任务尝试进入临界区时,如果不存在正在临界区访问所述临界资源的任务时,允许所述第一任务进入临界区执行;或者,第二比较单元,用于在第一任务与第三任务同时尝试进入临界区时,比较第一任务的优先级与第三任务的优先级;第三接入单元,用于如果第二比较单元比较出第一任务的优先级比第三任务的优先级高,允许所述第一任务进入所述临界区执行,如果第二比较单元比较出第一任务的优先级等于所述第三任务的优先级或者比所述第三任务的优先级低,将第一任务置于等待重试的状态或者取消第一任务对CPU的占用。可见本专利技术实施例具有如下有益效果:由于本专利技术实施例判断第一任务对临界资源的访问是否与正在临界区访问所述临界资源的第二任务发生冲突,其中,第一任务的优先级比第二任务的优先级高,如果冲突,将所述临界区的临界资源给第一任务访问,因此,高优先级的任务可以以抢占方式访问临界资源,无需等本文档来自技高网...
一种资源调度方法及设备

【技术保护点】
一种资源调度方法,其特征在于,包括:判断第一任务对临界资源的访问是否与正在临界区访问所述临界资源的第二任务发生冲突,其中,第一任务的优先级比第二任务的优先级高;如果冲突,将所述临界区的临界资源给第一任务访问。

【技术特征摘要】
1.一种资源调度方法,其特征在于,应用于操作系统内核中,包括:在第一任务进入临界区之后与第二任务并行执行的过程中,判断所述第一任务对临界资源的访问是否与所述第二任务对所述临界资源的访问冲突,其中,第一任务的优先级比第二任务的优先级高;所述临界区为对所述临界资源进行访问的代码区;所述临界资源为每次仅允许一个任务访问的资源;如果冲突,将所述临界区的临界资源给第一任务访问;在所述第一任务进入临界区与第二任务并行执行之前,还包括:在所述第一任务尝试进入临界区时,如果存在正在临界区访问所述临界资源的第二任务,比较所述第一任务的优先级与所述第二任务的优先级,如果所述第一任务的优先级比所述第二任务的优先级高,允许所述第一任务进入临界区与所述第二任务并行执行,如果所述第一任务的优先级等于所述第二任务的优先级或者比所述第二任务的优先级低,将所述第一任务置于等待重试的状态或者取消所述第一任务对CPU的占用;或者,在所述第一任务尝试进入临界区时,如果不存在正在临界区访问所述临界资源的任务时,允许所述第一任务进入临界区执行;或者,在所述第一任务与第三任务同时尝试进入临界区时,比较所述第一任务的优先级与所述第三任务的优先级,如果所述第一任务的优先级比所述第三任务的优先级高,允许所述第一任务进入所述临界区执行,如果所述第一任务的优先级等于所述第三任务的优先级或者比所述第三任务的优先级低,将所述第一任务置于等待重试的状态或者取消所述第一任务对CPU的占用。2.根据权利要求1所述的方法,其特征在于,在第一任务进入临界区之后与第二任务并行执行的过程中,如果判断出所述第一任务对所述临界资源的访问与所述第二任务对所述临界资源的访问冲突,还包括:控制所述第一任务发生任务回滚,重新执行所述第一任务;以及,控制所述第二任务发生任务回滚,将所述第二任务置于等待重试的状态或者取消所述第二任务对CPU的占用。3.一种资源调度设备,其特征在于,应用于操作系统内核中,包括:冲突判断单元,用于在第一任务进入临界...

【专利技术属性】
技术研发人员:胡振勇刘相斌罗站城
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1