任务的调度方法、电子设备及介质与流程

文档序号:17639953发布日期:2019-05-11 00:36阅读:183来源:国知局
任务的调度方法、电子设备及介质与流程

本申请涉及计算机技术领域,尤其涉及任务的调度方法、电子设备及介质。



背景技术:

随着科技的进步,数据的处理规模也发生了快速的增长,为了高效的获取处理结果,常常采用分布式系统来对这些数据进行计算。

在分布式系统中,服务器集群被广泛的用于进行数据处理。当待处理数据的规模进一步增大时,为满足数据的处理需求,通常采用扩大服务器集群,即添加更多服务器的方式来提高计算能力,保证数据处理的顺利进行。然而,这样的方式虽然提升了数据处理能力但也会带来运营成本的大幅增加的问题。

申请内容

本申请提供了一种任务的调度方法、电子设备及介质,用以解决添加过多服务器导致的运营成本增加的问题。

本申请实施例采用下述技术方案:

本申请实施例提供一种任务的调度方法,其特征在于,包括:

获取第一服务器上运行的第一应用任务所占用的第一服务资源;

当第一应用任务所占用的第一服务资源满足预设资源调度策略时,将第一服务器的第二服务资源分配给第二服务器,第二服务器将第二服务资源用于运行第二应用任务。

优选地,当第一应用任务所占用的第一服务资源满足预设资源调度策略,将第一服务器的第二服务资源分配给第二服务器包括:

当第一服务器的第一应用任务所占用的第一服务资源在预设第一服务资源阀值区间内时,确定第一服务器存在第二服务资源;

获取第二服务器上待运行的第二应用任务;

当第二应用任务所需的服务资源在预设的第二服务资源阀值区间内时,将第二应用任务所需的服务资源分配给第二服务器。

优选地,第一服务资源包括待运行的第一应用任务所需要的第一服务资源及当前运行中第一应用任务占用的第一服务资源,

当第一服务器的第一应用任务所占用的第一服务资源在预设第一服务资源阀值区间内时,确定第一服务器存在第二服务资源包括:

当第一服务器的待运行的第一应用任务所需要的第一服务资源及当前运行中的第一应用任务占用的第一服务资源满足预设资源调度策略时,确定第一服务器存在第二服务资源。

优选地,所述的方法还包括:

获取第一应用任务运行记录,第一应用任务运行记录包括第一应用任务历史运行记录和第一应用任务当前运行记录,

基于第一应用任务历史运行记录确定待运行第一应用任务所需的第一服务资源。

基于第一应用任务当前运行记录确定当前运行中的第一应用任务占用的第一服务资源。

优选地,第二服务资源阀值区间为根据第一应用任务历史运行记录和第一应用任务当前运行记录生成的第二服务资源阀值区间。

优选地,所述的方法还包括,

获取第二应用任务运行记录;

根据第一应用任务运行记录和第二应用任务运行记录对第二应用任务的运行进行调度。

优选地,对第二应用任务的运行进行调度包括:

调度第二应用任务的部署、启动以及销毁。

优选地,所述的方法还包括,

对第一服务器和第二服务器进行监控;

采集第一应用任务和第二应用任务的任务运行信息并对应地进行存储,生成任务运行记录,

获取第一应用任务运行记录包括:

从存储的任务运行记录中获取第一应用任务运行记录,

获取第二应用任务运行记录包括:

从存储的任务运行记录中获取第二应用任务运行记录。

优选地,第一服务器为用于提供在线业务服务的服务器,

第二服务器为用于提供离线计算服务的服务器,

第二应用任务包括数据计算任务。

本申请实施例提供一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令可被处理器执行以实现上述任一项的任务的调度方法。

本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述任一项的任务的调度方法。

由于本实施例中获取第一服务器上运行的第一应用任务所占用的第一服务资源;当第一应用任务所占用的第一服务资源满足预设资源调度策略时,将第一服务器的第二服务资源分配给第二服务器,第二服务器将第二服务资源用于运行第二应用任务,因此,使得现有服务器资源能够得到充分利用,并且这样的调度方式操作灵活,在保证服务器原有任务的正常运行情况下提高了服务器的利用率,解决了添加过多服务器导致的运营成本增加的问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例可以应用的示意性应用场景。

图2为本申请实施例1提供的任务的调度方法的流程图。

图3为本申请实施例2提供的任务的调度方法的流程图。

图4为本申请实施例3提供的任务的调度系统的结构示意图。

具体实施方式

本申请实施例提供了一种任务的调度方法、电子设备及介质,用以解决添加服务器导致的运营成本增加的问题。

在现阶段中,分布式系统常来进行数据计算,以便高效地进行数据处理,而服务器集群则被广泛的使用于分布式式系统中,用于为数据处理提供硬件支持。通常情况下不同的服务器集群用于提供不同的服务,以便更为准确的进行数据处理,当一个服务器集群运算能力不足时也仅仅是通过增加服务器的数量来扩大运算能力。但是,有些服务器集群由于提供服务种类的不同,其负载存在高峰时段和低谷时段,如果仅仅通过增加服务器数量来保证运行能力则会导致低谷时段服务器被大量闲置,进而造成服务器资源浪费以及运营成本的大幅增加的问题。基于上述情况,本申请利用了不同的服务集群具有不同的负载高峰时段的特征,将处于负载低谷时段的服务器集群中的空闲资源进行合理调配,用于分担处于负载高峰时段的服务器集群的运行压力,既不影响处于负载低谷时段的服务器集群提供原有服务,又提高了处于负载高峰时段的服务器集群的运行能力,使得服务器资源得到充分的利用,同时也避免了运营成本的增加。

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下,参照附图对本申请的终端中任务的调度方法、电子设备及介质进行详细阐述。

图1为本申请实施例可以应用的示意性应用场景。

如图1所示,本申请实施例提供的方法、电子设备及介质可以应用于如图1所示的场景,本申请实施例提供的方法、电子设备及介质获取第一服务器和第二服务器中任务的任务运行记录,第一服务器为运行有第一应用任务的服务器,第二服务器为用于运行第二应用任务的服务器。其中,第一服务器和第二服务器均可以是一台服务器或服务器集群。当第一服务器和第二服务器均为服务器集群时,第一服务器和第二服务器均包含多台服务器,例如,第一服务器包含服务器b1、b2…bn;第二服务器包含服务器d1、d2…dn。根据第一服务器上运行的第一应用任务所占用的第一服务资源判断第一服务器是否符合语塞的资源调用策略,当符合时将第一服务器的中的第二服务资源分配给第二服务器运行第二应用任务使用,例如,当判断第一服务器中的服务器b1、b2、b3均符合调用策略时,将b1、b2、b3上的第二服务资源分配给d1、d2…dn用于运行第二应用任务。在确定了能够用于运行的服务器后,根据第一应用任务和第二应用任务的运行情况进行调度。需要注意的是,上述应用场景仅是为了便于理解本申请而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。

<实施例1>

本申请实施例1的执行主体为调度服务器,即能够实现本申请实施例1中所记载的技术方案中的任务调度方法的服务器。

图2为本申请实施例1提供的任务调度方法的流程图。

如图2所示,本实施例1中任务的调度方法包括以下步骤:

步骤s1-1,获取第一服务器上运行的第一应用任务所占用的第一服务资源。

其中,第一服务器为运行有第一应用任务的服务器,第一服务资源可以为cpu平均使用率、物理内存使用率、磁盘读写速率使用率以及网络带宽使用率中的一种或多种;也可以为其他能够表征第一应用任务运作占用的服务器上的资源的参数。

本实施中,资源调用策略用于根据第一应用任务所占用的第一服务资源判断第一服务器上是否具有能够被调用的第二服务资源。该资源调用策略可以是根据当前运行中第一应用任务所需要的第一服务资源判断第一服务器是否具有能够被调用的第二服务资源,也可以是根据待运行的第一应用任务和当前运行中第一应用任务占用的第一服务资源共同判断第一服务器是否具有能够被调用的第二服务资源,还可以是根据其他能够表征第一应用任务运作占用的服务器上的资源的参数判断第一服务器是否具有能够被调用的第二服务资源。

步骤s1-2,当所述第一应用任务所占用的第一服务资源满足预设资源调度策略时,将所述第一服务器的第二服务资源分配给第二服务器。

本实施中,第二服务器为运行第二应用任务的服务器,当判断第一服务器具有能够被调用的第二服务资源时,根据待运行的第二应用任务所需的服务资源将第一服务器中的第二服务资源配给第二服务器使用,即第二服务资源用于运行第二应用任务。

具体地,本实施例中第一服务器可以是用于提供除离线计算服务以外的其他服务的服务器,具体地,可以是用于提供在线业务服务的服务器集群,例如,提供产品搜索、订单服务等在线业务的服务器集群,其中产品搜索、订单服务等应用服务实例为第一应用任务,以独立进程的方式运行在第一服务器上,用于提供在线的业务服务。第二服务器为提供离线计算服务的服务器,即用于运行离线计算任务的服务器集群,例如hadoop集群或spark集群。第二应用任务是为提供大数据处理服务而产生的任务,可以是为提供离线计算服务而产生的任务。

由于在线业务是面向业务用户的,其从上午到晚上的负载会比较高,离线计算服务通常在一天结束之后开始进行,其从次日凌晨到上午的负载会比较高,而该时段正好是在线业务的低谷,因此,第一服务器与与第二服务器的高负载时间段是相互错开的,两种服务器在使用时间上天然是错峰的。本申请实施例充分利用在线业务服务器与离线计算服务器在使用时间上的错峰,将在线业务服务器的空闲资源用于缓解离线计算服务器的负载压力,提高服务器的使用效率,避免资源的浪费。

由于本实施例中获取第一服务器上运行的第一应用任务所占用的第一服务资源;当第一应用任务所占用的第一服务资源满足预设资源调度策略时,将第一服务器的第二服务资源分配给第二服务器,第二服务器将第二服务资源用于运行第二应用任务,因此,使得现有服务器资源能够得到充分利用,并且这样的调度方式操作灵活,在保证服务器原有任务的正常运行情况下提高了服务器的利用率,解决了添加过多服务器导致的运营成本增加的问题。

<实施例2>

在实施例2中,对于与实施例1中相同的方法,使用相同的符号并省略相同的说明。

图3为本申请实施例2提供的任务的调度方法的流程图。

如图3所示,本申请实施例2中任务的调度方法包括以下步骤:

步骤s2-1,对第一服务器和第二服务器进行监控。

本实施例中,第一服务器和第二服务器均为服务器集群,包含多台服务器。

对第一服务器与第二服务器包括对第一服务器集群和第二服务器集群中的所有服务器的运行状态进行实时监控。

步骤s2-2,采集第一应用任务和第二应用任务的任务运行信息并对应地进行存储,生成任务运行记录。

在一些实施方式中,可以是采集第一服务器集群与第二服务器集群中的所有服务器上运行的任务的任务运行信息,并将其与服务器的识别信息对应地进行存储,生成任务运行记录。

具体地,可以是采集第一应用任务和第二应用任务的任务运行信息,将该任务运行信息与服务器识别信息对应地持久化数据到nosql数据库进行存储,生成第一应用任务运行记录和第二应用任务运行记录。

采集到的任务运行信息用于表征任务的运行状态,该任务运行信息可以为cpu平均使用率、物理内存使用率、磁盘读写速率使用率以及网络带宽使用率中的一种或多种;也可以为其他能够表征任务运行状态的参数。

需要说明的是,本申请实施例中还根据采集到的任务运行信息判断第一服务器集群和第二服务器集群中的服务器是否正常运行。例如,若采集到的运行状态信息中cpu平均使用率>80%则判定该服务器运行不正常。

当一台服务器上既运行有第一应用任务又运行有第二应用任务时,若判断该服务器运行不正常则优先将其上运行的第二应用任务关闭或销毁,以保证第一应用任务的正常运行。

通过对第一服务器集群与第二服务器集群中运行的任务的实时监控,使得能够及时对运行在服务器上的任务进行调整,保证数据处理的顺利进行。

由于优先保障第一应用任务的运行,使得在线业务服务的稳定性得到的保证,避免了空闲资源调用对在线业务产生不良影响的问题。

步骤s2-3,从存储的任务运行信息中获取第一应用任务的第一应用任务运行记录。

本实施例中的获取的第一应用任务运行记录包括第一应用任务历史运行记录和第一应用任务当前运行记录。其中,第一应用任务历史运行记录用于确定待运行的第一应用任务所需的第一服务资源,第一应用任务当前运行记录用于确定当前运行中的第一应用任务占用的第一服务资源。

需要说明的是,本实施例中需要使用任务运行信息时,可以是以接口的形式调用存储在nosql数据库中的运行状态信息。

步骤s2-4,判断第一应用任务所占用的第一服务资源是否满足预设资源调度策略。

本实施例中,第一应用任务所占用的第一服务资源包括待运行的第一应用任务所需要的第一服务资源及当前运行中第一应用任务占用的第一服务资源。

具体地,根据第一服务器的待运行的第一应用任务所需要的第一服务资源及当前运行中的第一应用任务占用的第一服务资源判断是否满足预设资源调度策略。待运行第一应用任务所需的第一服务资源根据第一应用任务历史运行记录确定,当前运行中的第一应用任务占用的第一服务资源根据第一应用任务当前运行记录确定。

待运行第一应用任务所需的第一服务资源可以根据预定时间段内的与第一应用任务当前运行记录确定相匹配的第一应用任务历史运行记录生成,即根据预定时间段中与第一应用任务当前运行记录处于同一时间节点上的第一应用任务历史运行记录生成。例如,获取第一应用任务当前运行记录的时间节点为2018年7月15日20:00,预定时间段为10天,则需要获取的第一应用任务历史运行记录为2018年7月5日至7月14日中20:00时的任务状态信息,再根据该第一应用任务历史运行记录生成待运行第一应用任务所需的第一服务资源。其中,预定时间段的长短可以根据具体应用场景的需要进行预设,此处不做具体限定。

需要说明的是,根据第一应用任务历史运行记录确定待运行第一应用任务所需的第一服务资源可以是将获取的第一应用任务历史运行记录取平均值作为待运行第一应用任务所需的第一服务资源,也可以是通过其他计算方法确定待运行第一应用任务所需的第一服务资源,例如,是将获取的第一应用任务历史运行记录进行加权平均计算得到待运行第一应用任务所需的第一服务资源。

根据预定时段内的与第一应用任务当前运行记录相匹配的第一应用任务历史运行记录确定待运行第一应用任务所需的第一服务资源,使得确定的待运行第一应用任务所需的第一服务资源具有较高的参考价值,能够对第一应用任务的运行状态进行较为准确的预估。

进一步地,本实施例中资源调用策略可以包括一个或多个特征参数的阈值。判断第一服务器是否存在第二服务资源可以是判断第一服务器的待运行的第一应用任务所需要的第一服务资源及当前运行中的第一应用任务占用的第一服务资源是否同时符合资源调用策略,若符合则第一服务器存在第二服务资源。其中,资源调用策略为由用户预设的调用策略。

进行判断时,获取第一应用任务历史运行记录和第一应用任务当前运行记录中与资源调用策略中的特征参数相同的特征参数,判断第一应用任务历史运行记录和第一应用任务当前运行记录中同一个特征参数是否同时满足资源调用策略中的该特征参数的阈值,当第一应用任务历史运行记录和第一应用任务当前运行记录与调用策略中的所有特征参数相匹配,则判定第一服务器存在第二服务资源。

例如,资源调用策略中预设的特征参数为cpu平均使用率<50%以及物理内存使用率<60%,则获取第一应用任务历史运行记录和第一应用任务当前运行记录中的预估cpu平均使用率、预估物理内存使用率、当前cpu平均使用率以及当前物理内存使用率,若预估cpu平均使用率和当前cpu平均使用率均<50%,预估物理内存使用率和当前物理内存使用率均<60%,则判定第一服务器存在第二服务资源。

需要说明的是,当第一服务器为服务器集群时,对集群中的每一台服务器都单独进行判断。

通过第一应用任务历史运行记录和第一应用任务当前运行记录两组信息同时判断第一服务器是否具有第二服务资源,这样的判断方式准确性高,避免了采用单一数据进行判断时由于数据波动导致的误判,保证了在线业务服务不受干扰,提高在线业务服务的稳定性。

步骤s2-5,若符合则将第一服务器的第二服务资源分配给第二服务器。

本实施例中的第二服务资源可以是cpu、内存和/或磁盘中可以被用于执行任务的剩余空间。

优选地,当确定第一服务器具有第二服务资源后,获取第二服务器上待运行的第二应用任务;

当第二应用任务所需的服务资源在预设的第二服务资源阀值区间内时,将第二应用任务所需的服务资源分配给第二服务器。

其中,第二服务资源阈值区间为可以第一服务器能够提供用于运行第二应用任务的阈值区间,该第二服务资源阀值区间为根据第一应用任务历史运行记录和第一应用任务当前运行记录生成的第二服务资源阀值区间。

例如,预定时间段内第一应用任务历史运行记录显示第一应用任务的cpu历史使用率为50%,第一应用任务当前运行记录显示第一应用任务的cpu当前使用率为40%,cpu使用率>80%则服务器无法正常运行,则第二服务资源阈值区间为cpu使用率为<30%。此时,若获取到的第二应用任务所需的服务资源为cpu使用率10%,则将第一服务器上10%cpu使用率用于运行第二应用任务。

步骤s2-6,获取第二应用任务运行记录;根据第一应用任务运行记录和第二应用任务运行记录对第二应用任务的运行进行调度。

本实施例中,获取第二应用任务运行记录可以是以接口的形式调用存储在nosql数据库中的第二应用任务当前运行记录。

在一些实施例中,根据第一应用任务运行记录和第二应用任务运行记录对任务的运行进行调度可以是根据第一应用任务当前运行记录和第二应用任务当前运行记录待运行的第二应用任务的运行进行调度。

以下以hadoop集群为例,对步骤s2-6进行说明:

当接收到需要进行计算的数据后,整个计算过程会被分成多个任务,根据任务所需的资源对任务进行调度,这些任务被常驻在第二服务器上的hadoop组件所调度,例如applicationmaster,然后由其他hadoop组件进行运算,例如nodemanager组件,每个nodemanager组件可以对一个或多个任务进行运算。调度时,hadoop组件根据调度指令执行对任务的管理,具体地,可以是控制任务在服务器上的部署、启动以及销毁等。例如,当具有服务器具有空闲资源能够运行任务时,将任务部署到服务器上,启动任务运行,当服务器资源不足时控制任务销毁任务。

需要说明的是,当第一服务器的第二服务资源用于运行第二应用任务时,通过设置在第一服务器上的hadoop组件运行任务,例如nodemanager组件,该hadoop组件被封装在docker容器中。

本申请实施例中可以采用以下三种方式生成调度指令,将任务部署到hadoop集群中的服务器上:

1、把任务按提交的顺序排成一个队列,在进行资源分配的时候,按先进先出原则,先给队列中最头上的任务进行分配资源,待最头上的应用需求满足后再给下一个分配,以此类推,将任务分配到集群中的服务器上运行。

2、将任务分成不同的列队,给每个列队按比例分配资源,列队在获取到资源后按先进先出原则给队列中的任务分配资源,进而将任务分配到集群中的服务器上运行。

3、空闲资源被划分成多个同一等分的资源池,每个任务列队使用一个资源池中的资源,当资源池中的资源被分配完后每个任务列队再根据任务列队的权重对未使用的资源进行分配,进而将任务分配到集群中的服务器上运行。

在另一些实施方式中,根据第一应用任务运行记录和第二应用任务运行记录对第二应用任务的运行进行调度还可以是从第一应用任务运行记录和第二应用任务运行记录中获取第一应用任务和第二应用任务的执行情况,根据第一应用任务和第二应用任务的执行情况对第二应用任务的运行进行调度。

具体地,根据第一应用任务运行记录和第二应用任务运行记录生成调度指令,并且根据第一应用任务和第二应用任务的执行情况确定任务在服务器上的状态后,hadoop组件,例如nodemanager组件,根据调度指令以及任务的执行情况对第二应用任务的运行进行调度。其中,根据第一应用任务运行记录和第二应用任务运行记录确定任务在服务器上的执行情况可以是确定已经在服务器上运行的任务的执行状态,该执行状态包括任务完成、任务暂停或任务无响应等。根据任务的运行状态进行调度包括:在任务完成后结束任务释放空闲资源;在任务暂停后重启任务;在任务无响应后结束任务并重新运行该任务等。

需要说明的是,hadoop组件还需要负责任务的编排管理、负载均衡以及容错等调度。

还需要说明的是,本发明实施例中还包括接收来自客户端的调用策略,将采集到的第一应用任务运行记录、第二应用任务运行记录以及下发的调度指令发送至客户端,供用户查阅。

为了便于本领域技术人员更清楚地理解本申请在具体场景下的实施方式,下面以一个具体示例对本申请实施方式进行介绍。需要说明的是,该具体示例仅为使得本领域技术人员更清楚地了解本申请,但本申请的实施方式不限于该具体示例。

<实施例3>

图4为本申请实施例3提供的任务的调度系统的结构示意图。

基于同一个申请构思,如图4所示。本申请实施例提供的任务的调度系统系统包括调度服务器1、第一服务器集群2以及第二服务器集群3。其中,第一服务器集群2用于提供在线业务服务,第二服务器集群3为运行数据计算任务的服务器集群,用于提供离线计算服务。调度服务器1对第一服务器集群2以及第二服务器集群3中的服务器进行监控,确定出第一服务器集群2中具有第二服务资源的服务器,将第一服务器集群2中第二服务资源分配给第二服务器运行数据处理任务使用,并对数据计算任务的运行进行调度。第一服务器集群2以及第二服务器集群3中的服务器上均设置有采集模块,用于信息的采集。

调度服务器1包括用户模块11、监控模块12、获取模块13、调度模块14以及执行模块15。

用户模块11用于接收来自客户端的资源调用策略,将采集到的第一应用任务运行记录、第二应用任务运行记录以及下发的调度指令发送至客户端,供用户查阅。监控模块12用于对第一服务器集群2以及第二服务器集群3中的服务器进行监控,包括接收存储采集模块采集到的信息,并根据采集到的信息判断服务器是否正常运行。获取模块13用于获取第一应用任务运行记录和第二应用任务运行记录。调度模块14用于根据第一应用任务运行记录和第二应用任务运行记录对第二应用任务进行调度。执行模块15用于执行调度,控制第二应用任务的运行,本实施例中执行模块15包括设置在服务器上的hadoop组件。

基于同一个申请构思,本申请实施例提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行前述实施例1-2中任一实施例中所述的任务的调度方法中的步骤。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本申请实施例还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1-2中所述的任务的调度方法中的步骤。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本申请的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

基于同一个申请构思,本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例1-2中所述的任务的调度方法中的步骤。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1