• 浪潮孙丕恕从信息时代到智能时代 人工智能价值将爆发式释放 2019-12-21
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
    • / 16
    • 下载费用:30 金币  

    重庆时时彩5型基本: 一种实时多任务调度方法和装置.pdf

    关 键 词:
    一种 实时 任务 调度 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201210551909.7

    申请日:

    2012.12.18

    公开号:

    CN103870327A

    公开日:

    2014.06.18

    当前法律状态:

    驳回

    有效性:

    无权

    法律详情: 发明专利申请公布后的驳回IPC(主分类):G06F 9/48申请公布日:20140618|||实质审查的生效IPC(主分类):G06F 9/48申请日:20121218|||公开
    IPC分类号: G06F9/48 主分类号: G06F9/48
    申请人: 华为技术有限公司; 中国科学院计算技术研究所
    发明人: 范东睿; 叶笑春; 王达; 张浩
    地址: 518129 广东省深圳市龙岗区坂田华为总部办公楼
    优先权:
    专利代理机构: 北京中博世达专利商标代理有限公司 11274 代理人: 申健
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201210551909.7

    授权公告号:

    ||||||

    法律状态公告日:

    2017.09.19|||2014.07.16|||2014.06.18

    法律状态类型:

    发明专利申请公布后的驳回|||实质审查的生效|||公开

    摘要

    本发明实施例提供了一种实时多任务调度方法和装置,能够动态校正线程的裕度值,获得更加准确的任务优先级,进而提高实时多任务调度的准确性。该方法包括:在确定对当前调度的线程进行裕度校正后,根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间;然后根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;接着根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;最后根据重新确定的优先级队列,依次调度所述队列中的线程。本发明适用于计算机领域。

    权利要求书

    权利要求书
    1.  一种实时多任务调度方法,其特征在于,该方法包括:
    确定对当前调度的线程进行裕度校正;
    根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间,其中,所述执行进度为所述当前调度的线程已经完成任务的比例;
    根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;
    根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;
    根据所述重新确定的优先级队列,依次调度所述队列中的线程。

    2.  根据权利要求1所述的方法,其特征在于,所述确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程的执行进度是否等于预设的任务比例;
    若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。

    3.  根据权利要求1所述的方法,其特征在于,所述确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程已经执行的时间是否等于预设的时间;
    若所述当前调度的线程已经执行的时间等于所述预设的时间,确定对所述当前调度的线程进行裕度校正。

    4.  一种实时多任务调度装置,其特征在于,所述装置包括第一确定单元、第二确定单元、第一获取单元、第二获取单元、调度单元;
    所述第一确定单元,用于确定对当前调度的线程进行裕度校正;
    所述第一获取单元,用于根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间,其中,所述执行进度为所述当前调度的线程已经完成任务的比例;
    所述第二获取单元,用于根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;
    所述第二确定单元,还用于根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述确定的优先级重新确定优先级队列;
    所述调度单元,用于根据所述重新确定的优先级队列,依次调度 所述队列中的线程。

    5.  根据权利要求4所述的装置,其特征在于,所述第一确定单元确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程的执行进度是否等于预设的任务比例;
    若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。

    6.  根据权利要求4所述的装置,其特征在于,所述第一确定单元确定对所述当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程已经执行的时间是否等于预设的时间;
    若所述当前调度的线程已经执行的时间等于所述预设的时间,确定对所述当前调度的线程进行裕度校正。

    7.  一种实时多任务调度装置,其特征在于,所述装置包括处理器;
    所述处理器,用于确定对当前调度的线程进行裕度校正;
    所述处理器,还用于根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间,其中,所述执行进度为所述当前调度的线程已经完成任务的比例;
    所述处理器,还用于根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;
    所述处理器,还用于根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;
    所述处理器,还用于根据所述重新确定的优先级队列,依次调度所述队列中的线程。

    8.  根据权利要求7所述的装置,其特征在于,所述处理器确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程的执行进度是否等于预设的任务比例;
    若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。

    9.  根据权利要求7所述的装置,其特征在于,所述处理器确定对所述当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程已经执行的时间是否等于预设的时间;
    若所述当前调度的线程已经执行的时间等于预设的时间,确定对所述当前调度的线程进行裕度校正。

    说明书

    说明书一种实时多任务调度方法和装置
    技术领域
    本发明涉及计算机领域,尤其涉及一种实时多任务调度方法和装置。
    背景技术
    在通用的硬件系统及其配套操作系统中,往往按照分时的原则进行任务调度,调度算法强调任务的公平性,尽量让不同任务公平的轮流占用CPU(Central Processing Unit,中央处理器)计算资源,而现实中,很多应用具有特定的实时性要求,即要求在规定的时间内完成任务,并对随机发生的外部事件做出响应和处理。对于这类应用,普通的强调任务公平性的软硬件调度算法难以满足要求,必须采用具有实时性保证的任务调度算法。
    现有技术中,有如下解决实时性问题的技术方案:
    采用LLF(Least Laxity First,最小裕度优先)算法,其中,所述裕度指的是执行完该任务还剩余的空闲时间,假设在t时刻,一个任务剩余部分的执行时间为X,其截止期限(绝对)为D,则该任务的空闲时间(裕度)为L=D-t-X。在所述LLF算法中,一个任务的优先级由所述裕度大小决定,裕度越小,优先级越高;如果存在任务相同的裕度时,则截止时间靠前的任务的优先级高,先被执行,并且只有所述裕度≥0时任务才可以调度,否则被夭折。
    但是,在所述LLF算法中,在进行所述裕度值计算时,D、t都可以准确获得,但是任务的剩余执行时间却难准确估计。而且由于不同的硬件平台配置不同,相同的程序在不同硬件平台上运行的时间也不同,因此在任务创建时,很难准确估计任务实际所需的运行时间,当任务实际所需的运行时间不准确时,将导致在所述LLF算法中,对任务剩余执行时间X的计算也不准确,最终使得优先级的计算不准确,从而影响实时任务调度算法的实际效率。
    发明内容
    本发明的实施例提供一种实时多任务调度方法和装置,能够动态 校正线程的裕度值,获得更加准确的任务优先级,进而提高实时多任务调度的准确性。
    为达到上述目的,本发明的实施例采用如下技术方案:
    第一方面,提供了一种实时多任务调度方法,该方法包括:
    确定对当前调度的线程进行裕度校正;
    根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间,其中,所述执行进度为所述当前调度的线程已经完成任务的比例;
    根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;
    根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;
    根据所述重新确定的优先级队列,依次调度所述队列中的线程。
    在第一种可能的实现方式中,根据第一方面,所述确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程的执行进度是否等于预设的任务比例;
    若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。
    在第二种可能的实现方式中,根据第一方面,所述确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程已经执行的时间是否等于预设的时间;
    若所述当前调度的线程已经执行的时间等于所述预设的时间,确定对所述当前调度的线程进行裕度校正。
    第二方面,提供了一种实时多任务调度装置,所述装置包括第一确定单元、第二确定单元、第一获取单元、第二获取单元、调度单元;
    所述第一确定单元,用于确定对当前调度的线程进行裕度校正;
    所述第一获取单元,用于根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩 余执行时间,其中,所述执行进度为所述当前调度的线程已经完成任务的比例;
    所述第二获取单元,用于根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;
    所述第二确定单元,用于根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述确定的优先级重新确定优先级队列;
    所述调度单元,用于根据所述重新确定的优先级队列,依次调度所述队列中的线程。
    在第一种可能的实现方式中,根据第二方面,所述第一确定单元确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程的执行进度是否等于预设的任务比例;
    若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。
    在第二种可能的实现方式中,根据第二方面,所述第一确定单元确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程已经执行的时间是否等于预设的时间;
    若所述当前调度的线程已经执行的时间等于所述预设的时间,确定对所述当前调度的线程进行裕度校正。
    第三方面,提供了一种实时多任务调度装置,所述装置包括处理器;
    所述处理器,用于确定对当前调度的线程进行裕度校正;
    所述处理器,还用于根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间,其中,所述执行进度为所述当前调度的线程已经完成任务的比例;
    所述处理器,还用于根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;
    所述处理器,还用于根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;
    所述处理器,还用于根据所述重新确定的优先级队列,依次调度所述队列中的线程。
    在第一种可能的实现方式中,根据第三方面,所述处理器确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程的执行进度是否等于预设的任务比例;
    若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。
    在第二种可能的实现方式中,根据第三方面,所述处理器确定
    对所述当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程已经执行的时间是否等于预设的时间;
    若所述当前调度的线程已经执行的时间等于预设的时间,确定对所述当前调度的线程进行裕度校正。
    本发明实施例提供了一种实时多任务调度方法和装置。该方法包括:在确定对当前调度的线程进行裕度校正后,根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间;然后根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;接着根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;最后根据重新确定的优先级队列,依次调度所述队列中的线程。
    基于上述技术方案的描述,由于在进行任务调度时,能够动态校正所述当前调度的线程的剩余执行时间,进而动态校正所述当前调度的线程的裕度值,从而获得更加准确的任务优先级,提高了实时多任务调度的准确性。
    附图说明
    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
    图1为本发明实施例提供的一种实时多任务调度方法;
    图2为本发明实施例提供的另一种实时多任务调度方法;
    图3为本发明实施例提供的一种线程从开始创建到执行结束的流程示意图;
    图4为本发明实施例提供的一种实时多任务调度装置;
    图5为本发明实施例提供的另一种实时多任务调度装置。
    具体实施方式
    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例?;诒痉⒚髦械氖凳├?,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明?;さ姆段?。
    实施例一、
    本发明实施例提供了一种实时多任务调度方法,具体如图1所示,该方法包括:
    101、确定对当前调度的线程进行裕度校正。
    可以根据预设的任务比例确定对所述当前调度的线程进行裕度校正,也可以根据预设的时间对所述当前调度的线程进行裕度校正,本发明实施例对如何确定对所述当前调度的线程进行裕度校正不作具体限定。
    102、根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间。
    其中,所述执行进度为所述当前调度的线程已经完成任务的比例。
    这里假设所述当前调度的线程已经执行的时间为a,所述当前调度的线程的执行进度为b%,所述当前调度的线程的剩余执行时间为X,则获取剩余执行时间
    103、根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度。
    假设当前时刻为t,所述当前调度的线程的截止时间为D,所述当前调度的线程的裕度为L,则L=D-t-X。
    因为所述当前调度的线程的剩余执行时间是根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间动态获得的,所以所述当前调度的线程的裕度也是动态获取的。
    104、根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列。
    所述当前调度的线程的裕度是校正后的准确值,根据该当前调度的线程的裕度,可以获得较为准确的线程优先级,然后根据该优先级重新确定优先级队列。如果所述当前调度的线程的优先级较高,则挂入高优先级队列进行排队;否则挂入普通优先级队列排队。
    105、根据所述重新确定的优先级队列,依次调度所述队列中的线程。
    上述实时多任务调度方法可以通过软件的方式实现,也可以通过硬件支持的方式实现,本发明实施例对此不作具体限定。
    本发明实施例提供了一种实时多任务调度方法。该方法包括:在确定对当前调度的线程进行裕度校正后,根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间;然后根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;接着根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;最后根据重新确定的 优先级队列,依次调度所述队列中的线程。
    基于上述实施例的描述,由于在进行任务调度时,能够动态校正所述当前调度的线程的剩余执行时间,进而动态校正所述当前调度的线程的裕度值,从而获得更加准确的任务优先级,提高了实时多任务调度的准确性。
    实施例二、
    本发明实施例还提供了一种实时多任务调度方法,具体如图2所示,该方法包括:
    201、判断当前调度的线程的执行进度是否等于预设的任务比例。
    通过软件实现时,所述预设的任务比例是一设定在程序内部的值,所述当前调度的线程的执行进度可以和该值进行比较。
    通过硬件支持的方式实现时,所述预设的任务比例是基于外部的,比如预设的任务比例为25%,则可以在所述任务比例为25%时插入裕度校正操作。当然,通过硬件支持的方式实现时,也可以随机的插入裕度校正操作,本发明实施例对此不作具体限定。
    若所述当前调度的线程的执行进度等于所述预设的任务比例,执行步骤202;
    若所述当前调度的线程的执行进度不等于所述预设的任务比例,则继续执行所述当前调度的线程,本发明实施例对此不作具体限定。
    202、若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。
    举例来说,在一次线程中,程序要做5次加1操作,那么程序员可以在第2个和第3个加1操作之间插入一个裕度校正操作,如下所示:
    a=a+1;
    a=a+1;
    裕度校正laxity_correction(40%)
    a=a+1;
    a=a+1;
    a=a+1;
    也就是预设的任务比例是40%,表明执行到40%时确定对所述当前调度的线程进行裕度校正。
    203、根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间。
    其中,所述执行进度为所述当前调度的线程已经完成任务的比例。
    这里假设所述当前调度的线程已经执行的时间为a,所述当前调度的线程的执行进度为b%,所述当前调度的线程的剩余执行时间为X,则获取剩余执行时间
    需要说明的是,所述当前调度的线程已经执行的时间是该线程执行时间的总和,并非本次调度已经执行的时间。
    204、根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度。
    假设当前时刻为t,所述当前调度的线程的截止时间为D,所述当前调度的线程的裕度为L,则L=D-t-X。
    因为所述当前调度的线程的剩余执行时间是根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间动态获得的,所以所述当前调度的线程的裕度也是动态获取的。
    205、根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列。
    所述当前调度的线程的裕度是校正后的准确值,根据该当前调度 的线程的裕度,可以获得较为准确的线程优先级,然后根据该优先级重新确定优先级队列。如果所述当前调度的线程的优先级较高,则挂入高优先级队列进行排队;否则挂入普通优先级队列排队。
    206、根据所述重新确定的优先级队列,依次调度所述队列中的线程。
    上述实时多任务调度方法可以通过软件的方式实现,也可以通过硬件支持的方式实现,本发明实施例对此不作具体限定。
    可选的,在如何确定对当前调度的线程进行裕度校正时,还可以通过将所述当前调度的线程已经执行的时间和预设的时间作比较确定对当前调度的线程进行裕度校正,具体的,该方法包括:
    判断所述当前调度的线程已经执行的时间是否等于预设的时间;
    若所述当前调度的线程已经执行的时间等于所述预设的时间,确定对所述当前调度的线程进行裕度校正。
    下面以本实施例中实时多任务调度的一种方法作为基础,描述线程从开始创建到执行结束的全过程,具体如图3所示,该方法包括:
    301、创建线程,并设定所述线程的截止时间以及所需的执行时间。
    302、根据所述截止时间和所述剩余执行时间,获取所述线程的裕度。
    需要说明的是,所述剩余执行时间在这里为初始的线程剩余时间,对应步骤301中所设的所需执行完时间。
    303、根据所述线程的裕度,确定所述线程的优先级,并根据所述线程的优先级确定优先级队列。
    304、根据所述优先级队列,依次调度所述队列中的线程。
    305、判断当前调度的线程的执行进度是否等于预设的任务比例。
    若当前调度的线程的执行进度等于预设的任务比例,执行步骤306;
    若当前调度的线程的执行进度不等于预设的任务比例,执行步骤309。
    306、若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。
    307、根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间。
    其中,所述执行进度为所述当前调度的线程已经完成任务的比例。
    308、根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度。
    在获取所述当前调度的线程的裕度后,需要重新根据裕度进行优先级排队,等待执行任务,故此时转去执行步骤303。
    309、执行所述当前调度的线程。
    310、统计所述线程本次调度已执行时间,用于更新所述线程的剩余执行时间。
    具体的,在进行线程调度时,都需要一个数据指针对线程的信息进行记录,所述线程的信息包括线程所在的进程的ID号,所述线程的ID号,所述线程当前的最新裕度值,所述线程执行的截止时间、所述线程完成所需的剩余执行时间、所述线程的上下文信息所在位置的指针,同一个优先级队列中的下一个线程等信息。记录所述线程的信息可通过表格的方式,也可以通过其它的方式,本发明实施例对此不作具体限定。
    需要说明的是,除了在确定对当前调度的线程进行裕度校正时,要对当前调度的线程的剩余执行时间进行修正,进而校正裕度值外,对于其它时刻该线程裕度值的更新和剩余执行时间的更新的具体时机,本发明实施例不作具体限定,用户理论上可以在任何时候更新剩余执行时间,进而更新裕度值,比如在本次调度没有进行裕度校正操作,但所述当前调度的线程要切换出去的时刻,可以根据本次调度已执行的时间和本次调度开始时的剩余执行时间,更新所述线程当前的剩余执行时间。在更新裕度值时,该时刻相对于本次调度开始的时刻,该线程的裕度值并没有发生变化,但是优先级队列中的其它线程的裕度值因为时间的推移发生了变化,裕度值需要根据上述实施例中的公 式L=D-t-X进行更新。
    311、判断所述当前调度的线程是否执行结束。
    若所述当前调度的线程执行结束,则完成了该线程所需的操作;
    若所述当前调度的线程未执行结束,转去再次执行步骤303,重新根据裕度进行优先级排队,等待执行任务,直至所述线程执行结束。
    在线程从开始创建到执行结束的全过程中,步骤305、306、307、308、是图2中实时多任务调度方法的一部分,在此不再赘述。其余各步骤均属于现有技术的一部分,在此也不再赘述。
    上述实时多任务调度方法可以通过软件的方式实现,也可以通过硬件支持的方式实现,本发明实施例对此不作具体限定。
    本发明实施例提供了一种实时多任务调度方法。该方法包括:在确定对当前调度的线程进行裕度校正后,根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间;然后根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;接着根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;最后根据重新确定的优先级队列,依次调度所述队列中的线程。
    基于上述实施例的描述,由于在进行任务调度时,能够动态校正所述当前调度的线程的剩余执行时间,进而动态校正所述当前调度的线程的裕度值,从而获得更加准确的任务优先级,提高了实时多任务调度的准确性。
    实施例三、
    本发明实施例提供了一种实时多任务调度装置40,具体如图4所示,所述装置40包括第一确定单元41、第一获取单元42、第二获取单元43、第二确定单元44、调度单元45。
    所述第一确定单元41,用于确定对当前调度的线程进行裕度校正。
    可以根据预设的任务比例确定对所述当前调度的线程进行裕度校正,也可以根据预设的时间对所述当前调度的线程进行裕度,本发明实施例对如何确定对所述当前调度的线程进行裕度校正不作具体限定。
    所述第一获取单元42,用于根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间,其中,所述执行进度为所述当前调度的线程已经完成任务的比例。
    这里假设所述当前调度的线程已经执行的时间为a,所述当前调度的线程的执行进度为b%,所述当前调度的线程的剩余执行时间为X,则获取剩余执行时间
    所述第二获取单元43,还用于根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度。
    假设当前时刻为t,所述当前调度的线程的截止时间为D,所述当前调度的线程的裕度为L,则L=D-t-X。
    因为所述当前调度的线程的剩余执行时间是根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间动态获得的,所以所述当前调度的线程的裕度也是动态获取的。
    所述第二确定单元44,还用于根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述确定的优先级重新确定优先级队列。
    所述当前调度的线程的裕度是校正后的准确值,根据该当前调度的线程的裕度,可以获得较为准确的线程优先级,然后根据该优先级重新确定优先级队列。如果所述当前调度的线程的优先级较高,则挂入高优先级队列进行排队;否则挂入普通优先级队列排队。
    所述调度单元45,用于根据所述重新确定的优先级队列,依次 调度所述队列中的线程。
    进一步的,所述第一确定单元41确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程的执行进度是否等于预设的任务比例。
    若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。
    具体的,通过软件实现时,所述预设的任务比例是一设定在程序内部的值,所述当前调度的线程的执行进度可以和该值进行比较。
    通过硬件支持的方式实现时,所述预设的任务比例是基于外部的,比如预设的任务比例为25%,则可以在所述任务比例为25%插入裕度校正操作。当然,通过硬件支持的方式实现时,也可以随机的插入裕度校正操作,本发明实施例对此不作具体限定。
    可选的,在如何确定对当前调度的线程进行裕度校正时,所述第一确定单元41还可以通过将所述当前调度的线程已经执行的时间和预设的时间作比较确定对当前调度的线程进行裕度校正,该方法包括:
    判断所述当前调度的线程已经执行的时间是否等于预设的时间。
    若所述当前调度的线程已经执行的时间等于预设的时间,确定对所述当前调度的线程进行裕度校正。
    上述实时多任务调度方法可以通过软件的方式实现,也可以通过硬件支持的方式实现,本发明实施例对此不作具体限定。
    具体的实时多任务调度的方法和线程从开始创建到执行结束的全过程可参见实施例二的描述,本发明实施例对此不再赘述。
    本发明实施例提供了一种实时多任务调度装置。所述装置包括:第一确定单元、第二确定单元、第一获取单元、第二获取单元和调度单元。在所述第一确定单元确定对当前调度的线程进行裕度校正后,所述第一获取单元根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间;然后所述第二获取单元根据所述当前调度的线程的剩余执行时间 以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;接着所述第二确定单元根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;最后所述调度单元根据重新确定的优先级队列,依次调度所述队列中的线程。
    基于上述实施例的描述,由于在进行任务调度时,能够动态校正所述当前调度的线程的剩余执行时间,进而动态校正所述当前调度的线程的裕度值,从而获得更加准确的任务优先级,提高了实时多任务调度的准确性。
    实施例四、
    本发明实施例提供了一种实时多任务调度装置50,具体如图5所示,所述装置50包括处理器51。
    所述处理器51,用于确定对当前调度的线程进行裕度校正。
    可以根据预设的任务比例确定对所述当前调度的线程进行裕度校正,也可以根据预设的时间对所述当前调度的线程进行裕度,本发明实施例对如何确定对所述当前调度的线程进行裕度校正不作具体限定。
    所述处理器51,还用于根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间,其中,所述执行进度为所述当前调度的线程已经完成任务的比例。
    获取所述当前调度的剩余执行时间的方法可参考实施例一步骤102的描述,本发明实施例对此不再赘述。
    所述处理器51,还用于根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度。
    假设当前时刻为t,所述当前调度的线程的截止时间为D,所述当前调度的线程的裕度为L,则L=D-t-X。
    因为所述当前调度的线程的剩余执行时间是根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间动态获得 的,所以所述当前调度的线程的裕度也是动态获取的。
    所述处理器51,还用于根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列。
    所述当前调度的线程的裕度是校正后的准确值,根据该当前调度的线程的裕度,可以获得较为准确的线程优先级,然后根据该优先级重新确定优先级队列。如果所述当前调度的线程的优先级较高,则挂入高优先级队列进行排队;否则挂入普通优先级队列排队。
    所述处理器51,还用于根据所述重新确定的优先级队列,依次调度所述队列中的线程。
    进一步的,所述处理器51确定对当前调度的线程进行裕度校正具体包括:
    判断所述当前调度的线程的执行进度是否等于预设的任务比例;
    若所述当前调度的线程的执行进度等于所述预设的任务比例,确定对所述当前调度的线程进行裕度校正。
    具体的,通过软件实现时,所述预设的任务比例是一设定在程序内部的值,所述当前调度的线程的执行进度可以和该值进行比较。
    通过硬件支持的方式实现时,所述预设的任务比例是基于外部的,比如预设的任务比例为25%,则可以在所述任务比例为25%插入裕度校正操作。当然,通过硬件支持的方式实现时,也可以随机的插入裕度校正操作,本发明实施例对此不作具体限定。
    可选的,在如何确定对当前调度的线程进行裕度校正时,所述处理器51还可以通过将所述当前调度的线程已经执行的时间和预设的时间作比较确定对当前调度的线程进行裕度校正,该方法包括:
    判断所述当前调度的线程已经执行的时间是否等于预设的时间;
    若所述当前调度的线程已经执行的时间等于预设的时间,确定对所述当前调度的线程进行裕度校正。
    具体的实时多任务调度的方法和线程从开始创建到执行结束的全过程可参见实施例二的描述,在此不再赘述。
    本发明实施例提供了一种实时多任务调度装置,所述装置包括处 理器。首先所述处理器确定对当前调度的线程进行裕度校正,接着根据所述当前调度的线程的执行进度和所述当前调度的线程已经执行的时间,获取所述当前调度的线程的剩余执行时间;然后根据所述当前调度的线程的剩余执行时间以及所述当前调度的线程的截止时间,获取所述当前调度的线程的裕度;以使得根据所述当前调度的线程的裕度,确定所述线程的优先级,并根据所述线程的优先级重新确定优先级队列;最后所述处理器根据重新确定的优先级队列,依次调度所述队列中的线程。
    基于上述实施例的描述,由于在进行任务调度时,能够动态校正所述当前调度的线程的剩余执行时间,进而动态校正所述当前调度的线程的裕度值,从而获得更加准确的任务优先级,提高了实时多任务调度的准确性。
    本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
    以上所述,仅为本发明的具体实施方式,但本发明的?;し段Р⒉痪窒抻诖?,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的?;し段е?。因此,本发明的?;し段вσ运鋈ɡ蟮谋;し段??!  ∧谌堇醋宰ɡ鴚ww.www.4mum.com.cn转载请标明出处

    关于本文
    本文标题:一种实时多任务调度方法和装置.pdf
    链接地址://www.4mum.com.cn/p-6111768.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 浪潮孙丕恕从信息时代到智能时代 人工智能价值将爆发式释放 2019-12-21
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 极速飞艇开奖网站 河南快3综合走势图近100期 彩票开奖代码 甘肃十一选五推荐 内蒙古时时彩走势全图 什么app可以写文章赚钱的软件是什么软件 贵州十一选五开奖结果彩票控 北京快中彩 新疆35选7走势图30 nba排名 广西快乐双彩 山东群英会预测软件 广西福利彩票中奖规则 云南快乐十分爱彩乐 收贵州快三查询 北京赛车是违法的吗