为周期性操作选择开始时间的制作方法

文档序号:18744689发布日期:2019-09-21 02:11阅读:205来源:国知局
为周期性操作选择开始时间的制作方法

本公开涉及周期性操作的调度。具体而言,本公开涉及对操作进行调度以最小化对其它操作的干扰。

权益要求

本申请要求于2016年12月7日提交的美国临时申请No.62/431,414和于2017年1月12日提交的美国非临时申请No.15/405,148的权益,这些申请通过引用并入本文。



背景技术:

周期性操作是以固定间隔发生的操作。例如,在数据复制操作中,诸如文件之类的数据被周期性地从一个存储位置复制到另一个存储位置。

当执行周期性操作时,会消耗系统资源。例如,复制文件会消耗盘输入/输出、存储器和网络带宽以及其它资源。同时执行的操作越多,资源的利用率越高。当管理众多周期性活动的调度时,难以选择最佳开始时间来避免干扰先前调度的活动。

本部分中描述的方法是可以追求的方法,但不一定是先前已经构思或追求的方法。因此,除非另有说明,否则不应认为本部分中描述的任何方法仅仅因为它们包含在本部分中就有资格作为现有技术。

附图说明

通过示例而非限制的方式在附图中示出了实施例。应当注意的是,在本公开中对“一”或“一个”实施例的引用不一定是指同一实施例,并且它们意味着至少一个。在附图中:

图1图示了根据一个或多个实施例的用于调度周期性活动的系统;

图2图示了根据一个或多个实施例的用于对操作的开始时间进行调度的示例操作集合;

图3图示了周期性开始时间的表示;

图4A-图4B图示了候选开始时间和先前调度的开始时间的表示;

图5图示了根据一个或多个实施例的系统的框图。

具体实施方式

在以下描述中,出于解释的目的,阐述了许多具体细节以提供透彻理解。可以在没有这些具体细节的情况下实践一个或多个实施例。在一个实施例中描述的特征可以与在不同实施例中描述的特征组合。在一些示例中,参考框图形式描述了众所周知的结构和设备,以避免不必要地模糊本发明。

总体概述

操作调度框架

调度周期性操作的开始时间

示例实施例

其它事项;扩展

硬件概述

1.总体概述

一个或多个实施例包括调度要周期性执行的新操作。在示例中,新操作是数据复制操作。在数据复制操作中,可以将数据从一个数据中心复制到另一个数据中心。可以周期性地执行的操作的其它示例包括执行病毒扫描,或者在用户编辑文档时保存文档。

在实施例中,基于先前调度的操作的开始时间确定要周期性执行的新操作的开始时间。将新操作的候选开始时间与先前调度的操作的开始时间进行比较。候选开始时间和先前调度的操作的开始时间之间的值的差异用于计算候选开始时间的成本。候选开始时间的成本与候选开始时间的值和先前调度的操作的每个开始时间的差异成比例地增加。可以选择所有候选开始时间中具有最低对应成本的候选开始时间作为新操作的开始时间。

在本说明书中描述和/或在权利要求中叙述的一个或多个实施例可以不包括在该总体概述部分中。

2.操作调度框架

图1图示了根据一个或多个实施例的操作调度框架100。操作调度器108使用成本确定引擎110来调度周期性活动。如图1所示,操作调度框架100包括操作调度器108、成本确定引擎110和数据储存库130。在一个或多个实施例中,操作调度框架100可以包括比图1中所示的组件更多或更少的组件。图1中所示的组件可以彼此在本地或远离。图1中所示的组件可以用软件和/或硬件实现。每个组件可以分布在多个应用和/或机器上。可以将多个组件组合到一个应用和/或机器中。相对于一个组件描述的操作可以替代地由另一个组件执行。

在一个或多个实施例中,操作调度器108包括用于调度用于周期性执行的操作的硬件和/或软件组件。操作调度器108对操作102进行调度以改善资源106跨不同时间段的使用的平衡。资源包括但不限于诸如随机存取存储器(RAM)之类的存储器、盘输入/输出(I/O)组件、硬件处理器和诸如带宽之类的网络资源。作为示例,如果同时执行数百个操作102,则操作的执行将显著增加资源106的负担。此外,许多操作102花费不同的时间量来完成。因此,如果每个花费一分钟完成的两个操作被调度相隔30秒开始,则操作将重叠,从而增加资源负担,尽管操作没有相同的开始时间。

在实施例中,数据储存库130是用于存储数据的任何类型的存储单元和/或设备(例如,文件系统、数据库、表的集合或任何其它存储机制)。此外,数据储存库130可以包括多个不同的存储单元和/或设备。多个不同的存储单元和/或设备可以是或可以不是相同类型或位于相同物理站点。此外,数据储存库130可以在与操作调度器108和成本确定引擎110在相同的计算系统上实现或者执行。替代地或附加地,数据储存库130可以在与操作调度器108和成本确定引擎110分开的计算系统上实现或执行。数据储存库130可以经由直接连接或经由网络通信地耦合到操作调度器108或成本确定引擎110。

在实施例中,数据储存库130包括操作执行调度132和资源描述134。操作执行调度132可以是调度的操作及其相关联的开始时间的列表。作为示例,操作执行调度132可以指示每周五9pm执行文件备份操作。作为另一个示例,操作执行调度132可以指示要在每天2am执行病毒扫描。操作执行调度132可以存储为函数(例如,初始开始时间和用于计算周期性调度的操作的所有其它开始时间的间隔)。

在实施例中,资源描述134描述了可用于执行操作102的资源。资源描述134可以识别例如可用于执行的多个硬件处理器和每个处理器的处理速度。操作执行调度132和资源描述134可以存储在数据储存库130的连续存储器位置或非连续存储器位置中。

在实施例中,操作调度器108以执行间隔104对操作102进行调度。例如,操作可能需要每10分钟被周期性地执行。在这种情况下,操作调度器108将配置用于执行操作的十分钟执行间隔。例如,可以以毫秒、秒、分钟、小时、周、月或年指定执行间隔。还可以指定期间可以执行操作的时间段。例如,操作将每小时执行一次,但可能不会在小时开始之后的前五分钟内执行。在这种情况下,执行操作的时间段是每小时的后五十五分钟。

在实施例中,成本确定引擎110包括用于确定与候选开始时间相关联的成本120的硬件和/或软件。成本确定引擎110可以从操作调度器108接收确定一个或多个候选开始时间的成本120的请求。成本确定引擎110可以至少部分地基于操作执行调度132来确定成本120。

特定候选开始时间的成本可以对应于可以相对于其它候选开始时间的成本等级上进行解释的任何值。作为示例,一个候选开始时间的成本可以是10中的3.4,而另一个候选开始时间的成本可以是10中的8.6。在另一个示例中,成本可以表示为字母(例如,A,B,C,D...)。

新操作的候选开始时间的成本的增加表示估计的资源利用率的增加。作为示例,在成本等级的高端上的(新操作)的候选开始时间的成本可以反映其它先前调度的操作在接近新操作的候选开始时间的相应时间开始。当先前调度的操作的开始时间接近新操作的候选开始时间时,同时访问由先前调度的操作和新操作所使用的资源的可能性高。在成本等级的低端上的(新操作)的候选开始时间的成本可以反映其它先前调度的操作在远离新操作的候选开始时间的相应时间开始。当先前调度的操作的开始时间远离新操作的候选开始时间时,同时访问先前调度的操作和新操作所使用的资源的可能性低。因此,成本确定引擎110可以至少部分地基于先前调度的操作的开始时间来确定新操作的成本120。

本部分中描述的方法是可以追求的方法,但不一定是先前已经构思或追求的方法。因此,除非另有说明,否则不应认为本部分中描述的任何方法仅仅因为它们包含在本部分中就有资格作为现有技术。

3.为周期性操作调度开始时间

图2图示了根据一个或多个实施例的用于调度周期性操作的开始时间的示例性操作集合。可以修改、重新布置或完全省略图2中所示的一个或多个操作。因此,图2中所示的特定操作序列不应被解释为限制一个或多个实施例的范围。

在实施例中,操作调度器接收用于调度新操作202的开始时间的请求。例如,操作调度器可以从用户接收调度周期性操作的请求。该请求可以指示每天在同一时间将数据从本地机器复制到云存储。调度可以指定系统将开始周期性地将数据从主存储复制到辅助存储的第一时间(例如,在创建之后的一周)。系统可以将操作调度为更大处理的一部分。

在接收到调度新操作的开始时间的请求后,操作调度器确定是否先前已经调度了其它操作(操作204)。如果没有调度其它操作,则操作调度器可以在任意时间调度新操作(操作208)。如本文所提及的在“任意时间”对操作进行调度包括使用不基于先前调度的任何算法来确定操作的开始时间。操作调度器可以选择在期间可以调度新操作的时间段的开始处的开始时间。替代地,操作调度器可以基于历史使用统计来调度新操作。作为示例,操作调度器可以接收每天一次调度新操作的请求。操作调度器确定先前没有调度其它操作。因此,操作调度器确定使用统计信息来选择用于调度新操作的时间。操作调度器确定系统资源通常在7am到6pm使用,通常在6pm到7am不使用。基于从6pm到7am的低使用时段或非使用时段,操作调度器将新操作调度为每天6pm。如上所述,使用统计可以与本文所述的候选开始时间的成本分析结合使用。

如果先前调度了其它操作,则操作调度器至少基于先前调度的操作来确定新操作的开始时间。操作调度器从操作执行调度识别先前调度的操作(操作206)。例如,操作调度器可以确定周期性操作先前已经被调度为每15分钟执行一次:在每小时开始、在每小时开始后十五分钟、在每小时开始后三十分钟,以及每小时开始后四十五分钟。作为另一个示例,操作调度器可以识别在相应时间被调度用于周期性执行的三个操作。这三个操作可以分别被调度为每分钟执行一次、每天执行一次和每月执行一次。

在实施例中,操作调度器基于要调度新操作的间隔来识别新操作的候选开始时间(操作210)。操作调度器选择与要调度新操作的间隔的长度对应的时间段。作为示例,操作调度器在8:55pm接收每15分钟调度新操作的请求。操作调度器基于15分钟的间隔大小识别从9pm到9:15pm的十五分钟时间段。在这个示例中,时间段被选择为在接收到请求的时间之后五分钟开始(9pm在8:55pm之后五分钟)。但是,时间段可以被选择为在接收到请求后的任何时间量之后。在确定时间段后,操作调度器在该时间段内选择一组候选开始时间。可以在任何粒度级别(例如,时间段内的每分钟、时间段内的每三十秒等)选择候选开始时间。继续该示例,操作调度器可以在从9:00pm到9:15pm的十五分钟时间段内选择每分钟的候选开始时间(例如,9:00pm,9:01pm,9:02pm,…9:14pm)。替代地,操作调度器可以选择每两分钟的候选开始时间(例如,9:00pm,9:02pm,9:04pm...9:14pm)。

在实施例中,操作调度器选择与用于调度新操作的间隔对应的多个时间段。使用与候选开始时间对应的多个时间段中每个时间段的开始时间的平均值来计算特定候选开始时间的成本分析。继续上述示例,操作调度器可以选择从9pm到9:15pm、9:15pm到9:30pm、9:30pm到9:45pm以及9:45pm到10pm的十五分钟时间段。第一时间段中的候选开始时间9:01pm对应于候选开始时间9:16pm、9:31pm和9:46pm(每个时间段开始之后一分钟)。下面进一步详细描述的确定任何候选开始时间(例如,9:01pm)的成本可以包括对为候选开始时间9:01pm、9:16pm、9:31pm和9:46pm确定的成本求平均。分析跨越不同时间段的候选开始时间(从每个时间段的开始起一分钟)可能需要结合先前已经调度的较不频繁执行的操作的效果。先前调度的操作可能被调度为每30分钟执行一次。先前调度的操作可能只能为四个时间间隔(9:15pm到9:30,9:30pm到9:45pm,以及9:45pm到10pm)的两个间隔(9:15pm到9:30pm和9:45pm到10pm)确定。因此,仅考虑不包括先前调度的操作的第一时间段(9:00pm至9:15pm)可能不会产生完整的成本分析。将先前调度的操作结合到成本分析中的其它可能的计算可以包括将(a)新操作的间隔与(b)先前调度的时间间隔的间隔的分数(15分钟/30分钟)乘以与先前调度的时间间隔相关联的成本分量。以下示例进一步描述了可以根据一个或多个实施例执行的上述计算和替代计算。

在实施例中,成本确定引擎确定与新操作的候选开始时间相关联的成本(操作212)。如上所述,可以识别时间段内的候选开始时间。成本确定引擎可以基于在同一时间段内先前调度的操作的开始时间确定每个候选开始时间的成本。具体而言,成本确定引擎至少基于(a)新操作的候选开始时间和(b)先前调度的操作的相同时间段内的每个开始时间之间的差值来确定成本。成本确定引擎执行计算与差值的增加成比例地减小的成本的函数。该函数可以计算与差值的增加成比例指数地减小的成本。当候选开始时间与先前调度的操作的开始时间相同时,计算差值为零。

如上所述,成本确定引擎至少基于(a)新操作的候选开始时间和(b)先前调度的操作的相同时间段内的每个开始时间之间的差值来确定成本。计算候选开始时间相对于相同时间段内一个或多个先前调度的操作的多个开始时间的差值产生多个差值。成本确定引擎为每个差值分配成本分量(和/或权重),从而产生多个成本分量。候选开始时间的成本根据多个成本分量来计算。

继续上述示例,选择从9:00am到9:15am的特定时间段来调度要在每15分钟周期性执行的新操作的第一次执行。在特定时间段内,开始时间9:00pm、9:01pm、9:02pm、9:03pm…9:14pm被识别为新操作的候选开始时间。成本确定引擎将一个先前调度的操作的开始时间识别为9:07pm。每个候选开始时间的差值可以如下计算:

如上所示,9:00和9:14的候选开始时间对应于与先前调度的操作的开始时间9:07的最高差异。成本确定引擎基于最高差值计算候选开始时间9:00和9:14(针对各种候选开始时间计算的所有成本)的最低成本。

成本确定引擎计算具有与先前调度的操作的开始时间9:07的最低差值('0')的候选开始时间9:07的最高成本。

在实施例中,成本确定引擎分析多个不同的先前调度的操作的开始时间。成本确定引擎基于多个不同的先前调度的操作的开始时间来确定新操作的每个候选开始时间的成本。成本确定引擎确定可归因于每个先前调度的操作的成本分量。每个先前调度的操作的间隔用于确定可分配给可归因于每个先前调度的操作的成本分量的权重。作为示例,与第二先前调度的操作相比调度频率为两倍的第一先前调度的操作可以具有两倍于第二先前调度的操作的权重分配的权重分配。下面描述与多个不同的先前调度的操作相关的示例计算,其不应被解释为限制权利要求的范围。

在实施例中,操作调度器从成本确定引擎接收每个候选开始时间的成本。操作调度器选择具有最低成本的候选开始时间作为用于周期性执行新操作的开始时间(操作214)。操作调度器在操作执行调度中调度新操作的执行。操作调度器可以基于间隔计算所有开始时间并指定计算的开始时间。操作调度器可以在包括初始开始时间和间隔的操作执行调度中记录函数。

4.示例实施例

图3图示了操作调度器调度每15分钟执行一次的操作的示例。因此,操作调度器识别十五个潜在的候选开始时间,该间隔中的每分钟一个候选开始时间。操作调度器还识别两个先前调度的开始时间304a,304b。考虑在分钟2处的一个特定候选开始时间302,操作调度器确定候选开始时间302与每个调度的开始时间304a,304b之间的时间差。以顺时针方式计数,对于开始时间304a,时间差为3分钟,对于开始时间304b,时间差为9分钟。但是,以逆时针方式计数,对于开始时间304a,时间差为12分钟,对于开始时间304b,时间差为6分钟。因此,可能高估周期性操作之间的时间差。以循环方式表示可能的候选开始时间使得能够选择最短的时间差,而不管方向如何。例如,操作调度器可以将候选开始时间表示为圆形阵列。

图4A-图4B图示了用于计算特定候选开始时间的成本的示例性操作。可以修改、重新布置或完全省略本文描述的一个或多个操作。因此,下面描述的特定操作序列不应被解释为限制一个或多个实施例的范围。

A.要每5分钟执行一次的新操作

图4A图示了其中操作要每5分钟执行一次的示例。这可以称为“新操作”或“第一操作”。由于间隔中有五分钟,因此操作调度器识别五个可能的起始分钟。五个候选开始时间(编号1-5)以圆形表示400a示出。

在图4A所示的示例中,在该间隔中存在一个先前调度的操作402a(本文也称为“第二操作”)。在图4中,针对该间隔中每分钟的先前调度的操作的数量显示在括号中。在这种情况下,仅在3分钟时有一个调度的操作。因此,三分钟的时隙在括号中包含1,而其它四分钟的时隙在括号中包含零。

在实施例中,操作调度器根据特定候选开始时间和第二操作的开始时间之间的差异来确定特定候选开始时间的成本。为了确保成本随着接近第二操作的开始时间而增加,操作调度器设置距离第二操作的开始时间最远的候选开始时间的最低成本。这个最低成本可以被设置为任何数字;作为示例,这里它被设置为一。然后可以将每个连续更近的候选开始时间的成本乘以常数(“K”),使得随着特定候选开始时间接近第二操作的开始时间,成本增加。例如,这里将使用K=2的常数。

在图4A中,存在被调度为在分钟3执行的第二操作402a。距离第二操作开始时间在分钟1和5有两个最远的开始时间。因此,分钟1和5分别被指定为1的成本。接下来迈向第二操作开始时间402a,分钟2和4。与分钟2和4相关联的成本是1x2=2(下一个最远候选开始时间的成本乘以K=2)。接下来再次迈向第二操作开始时间402a,分钟3。分钟3的成本是2x2=4(下一个最远候选开始时间的成本乘以K=2)。

因此,随着第二操作的特定开始时间和开始时间之间的差异减小,成本以指数方式增长。已经发现,这产生令人满意的开始时间分布。

在计算每个潜在候选开始时间的成本之后,操作调度器选择具有最低成本的开始时间,以最小化操作之间的干扰。在该特定示例中,分钟1和5各自具有1的成本。可以在来自第二操作的干扰最小的情况下选择这些开始时间中的任何一个。在实施例中,操作调度器选择最小成本替代选择的时间中的第一个(这里是分钟1)。可替代地,操作调度器可以诸如利用随机数生成器随机选择最小成本替代选择之一。

B.多个操作是先前调度的

图4B图示了其中第一操作要在每五分钟执行的示例。五个候选开始时间(编号1-5)以圆形表示400b示出。在该特定间隔中已经调度发生多个操作(“第二操作”、“第三操作”等)。如括号中的编号所示,在分钟1有4个先前调度的操作(402b),在分钟2有1个先前调度的操作,等等。在以下示例中,操作调度器在计算成本时将这些不同数量的先前调度的操作考虑在内。

在实施例中,每个特定候选开始时间的成本是权重因子的函数,其随着特定候选开始时间与每个其它潜在开始时间之间的时间差而变化。成本也是给定开始时间的调度的操作的数量或“计数”的函数。每个候选开始时间的计数在图4B中显示在括号中。

在实施例中,操作调度器将最低权重Wmin和最高权重Wmax设置为指定值。例如,对于距离正在计算成本的特定候选开始时间最远的时间,操作调度器将Wmin设置为等于1.0。对于正在计算成本的特定候选开始时间,操作调度器将Wmax设置为等于4.0。但是,可以为Wmin和Wmax选择其它值。

然后,操作调度器通过将距离特定候选开始时间的下一个最远开始时间的权重乘以常数K来确定每个剩余潜在开始时间的权重。该常数等于最大权重值与最小权重值的比率的N次根,其中N是从最远时间到正在计算成本的开始时间的步数:

例如,为了确定在分钟1的候选开始时间(402b)的成本,最大权重值是

W1=Wmax=4.0

在分钟3和4处,有两个距离特定候选开始时间402b最远的潜在开始时间。这些开始时间距离特定候选开始时间402b 2分钟,因此,N=2。对于分钟4和3,权重被设置为Wmin=1.0。

W4=W3=1.0

常数K的值是

在分钟1步入特定候选开始时间,接下来最近的开始时间在分钟2和5。分钟2和5的权重是:

W2=W5=W3K=(1.0)(2.0)=2.0

使用这些权重,操作调度器将成本确定为加权计数值的总和。因此,对于分钟1的候选开始时间,成本为:

∑WiCi=W1C1+W2C2+W3C3+W4C4+W5C5

=(4.0)(4)+(2.0)(1)+(1.0)(2)+(1.0)(5)+(2.0)(3)

=31.0

对于该间隔中的四个剩余候选开始时间中的每一个执行上述处理,得到分钟2的24.0、分钟3的27.0、分钟4的35.0和分钟5的33.0的成本。因此,具有最低成本的开始时间候选是在分钟2。

C.新操作要比先前调度的操作更频繁地执行

上述计数值不必是整数。考虑其中操作调度器接收调度第一操作的请求,而第二操作已经被调度的情况。第一操作比第二操作更频繁地执行。例如,第二操作被调度为每天执行,并且第一操作要每小时一次地执行。新的每小时操作有60个候选开始时间。该天只有一个小时发生第二操作。因此,第二日常操作将仅在每24小时更新中与新的每小时操作冲突一次。在这种情况下,该时隙的计数值是1/24=0.0417。

作为另一个示例,操作调度器接收用于调度新操作的开始时间,以每10分钟执行一次的请求。操作调度器识别在该小时之后18分钟每30分钟执行的先前调度的操作。在这种情况下,操作调度器将计数值10/30=0.3333应用于新操作的第八候选开始时间。

D.小时和分钟的独立选择

在实施例中,如果操作调度器接收到以大于或等于一小时的间隔调度操作发生的请求,则开始时间的小时和分钟可以被独立选择。操作调度器可以通过考虑一天中1440分钟来一起选择小时和分钟。替代地,可以独立地指定小时、分钟或两者。例如,操作调度器可以接收在指定的小时期间调度操作的请求。在另一个示例中,操作调度器将开始操作的分钟设置为默认值。

例如,操作调度器接收每天在3pm开始的小时期间执行操作的请求。然后,操作调度器必须选择该小时内的分钟。为了确定所选小时内的起始分钟,操作调度器识别一天中每个可能的小时和分钟组合的候选开始时间,但随后将成本确定限制为60个候选开始时间–仅考虑在3pm开始的小时中的60分钟。

类似地,操作调度器可以接收调度开始时间具有特定分钟的操作的请求。例如,操作调度器接收每天在该小时之后5分钟发生操作的请求,并且操作调度器还接收确定开始操作的最佳小时的请求。在这种情况下,操作调度器为一天中的每小时和每分钟创建候选开始时间,但是将成本确定限制为仅包括每小时的第五分钟。

E.每周或更大的间隔

在实施例中,操作调度器将每周或更大操作频率的选择处理分成两部分。这对计算的效率是有用的。例如,针对每周更新使用单个阵列计算成本将需要10,080元素阵列。作为替代的更高效的方法,操作调度器将选择处理分成两个步骤。

对于新的每周更新,首先,操作调度器选择一周中的某一天。一周内潜在地只有7天可供选择。操作调度器识别用于执行其它操作的调度开始时间。被调度为要每天或每天多次执行的操作被忽略,因为每天的操作不会比其它操作更影响一周中的一天。类似地,调度每月执行的操作被忽略,因为每月的操作将落在一周中的给定日期的可能性相同。因此,为了选择一周中的一天,操作调度器仅考虑调度的每周更新。给定一周中选定的一天,操作调度器然后从一天中的1,440分钟选择一天中的小时和分钟。

类似地,为了调度每月操作,操作调度器首先选择月内的一天。操作调度器从一个月的前28天中选择该月中的一天,因为这是在一个月内保证出现的天数。操作调度器仅考虑其它先前计划的每月操作,因为每个每周、每天或更小的间隔对月中的一天具有相同的影响。给定月中的选定天,操作调度器然后选择该天中的小时和分钟。

5.其它事项;扩展

实施例针对具有一个或多个设备的系统,设备包括硬件处理器并且被配置为执行本文描述的和/或下面权利要求中任何一项所述的任何操作。

在实施例中,非瞬态计算机可读存储介质包括指令,当指令由一个或多个硬件处理器执行时,使得执行本文描述的和/或权利要求中任何一项所述的任何操作。

根据一个或多个实施例,已经可以使用本文描述的特征和功能的任何组合。在前面的说明书中,已经参考因实现而异的许多具体细节描述了实施例。因此,说明书和附图应当被认为是说明性的而不是限制性的。本发明的范围的唯一且排他的指标以及申请人预期作为本发明的范围的内容是从本申请中发出的权利要求集合的字面和等同范围,以这种权利要求发出的具体形式,包括任何后续的更正。

6.硬件概述

根据一个实施例,本文所描述的技术由一个或多个专用计算设备来实现。专用计算设备可以是硬连线的以执行技术,或者可以包括诸如被永久性地编程以执行技术的一个或多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)或网络处理单元(NPU)的数字电子设备,或者可以包括编程为根据固件、存储器、其它存储装置或组合中的程序指令执行技术的一个或多个通用硬件处理器。这些专用计算设备还可以将自定义的硬接线逻辑、ASIC、FPGA或NPU与自定义的编程组合来实现技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或结合硬连线和/或程序逻辑来实现技术的任何其它设备。

例如,图5是图示可以在其上实现本发明的实施例的计算机系统500的框图。计算机系统500包括总线502或用于传送信息的其它通信机制,以及与总线502耦合用于处理信息的硬件处理器504。硬件处理器504可以是例如通用微处理器。计算机系统500还包括耦合到总线502用于存储信息和要由处理器504执行的指令的主存储器506,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器506也可以用于在要由处理器504执行的指令执行期间存储临时变量或其它中间信息。当这些指令被存储在处理器504可访问的非暂态存储介质中时,它们使计算机系统500成为被定制以执行指令中指定的操作的专用机器。

计算机系统500还包括耦合到总线502用于存储静态信息和用于处理器504的指令的只读存储器(ROM)508或其它静态存储设备。提供了诸如磁盘或光盘的存储设备510,并且存储设备510被耦合到总线502,用于存储信息和指令。

计算机系统500可以经由总线502耦合到显示器512,诸如阴极射线管(CRT),用于向计算机用户显示信息。输入设备514(其包括字母数字和其它键)被耦合到总线502,用于将信息和命令选择传送到处理器504。另一种类型的用户输入设备是光标控件516,诸如鼠标、轨迹球、或光标方向键,用于向处理器504传送方向信息和命令选择并且用于控制光标在显示器512上的移动。这种输入设备通常具有在两个轴(第一轴(例如,x)和第二轴(例如,y))中的两个自由度,以允许设备在平面中指定位置。

计算机系统500可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文描述的技术,这些定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统结合使计算机系统500成为或将计算机系统500编程为专用机器。根据一个实施例,本文的技术由计算机系统500响应于处理器504执行主存储器506中包含的一条或多条指令的一个或多个序列而执行。这些指令可以从另一个存储介质(诸如存储设备510)读取到主存储器506中。包含在主存储器506中的指令序列的执行使处理器504执行本文描述的处理步骤。在替代实施例中,可以使用硬连线电路系统代替软件指令或与软件指令组合使用。

如本文所使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备510。易失性介质包括动态存储器,诸如主存储器506。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔模式的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒带、内容可寻址存储器(CAM)和三元内容可寻址存储器(TCAM)。

存储介质与传输介质不同但可以与传输介质结合使用。传输介质参与在存储介质之间传输信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线502的电线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外线数据通信期间生成的那些波。

各种形式的介质可以涉及将一条或多条指令的一个或多个序列携带到处理器504以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并且使用调制解调器经电话线发送指令。计算机系统500本地的调制解调器可以接收电话线上的数据,并且使用红外线发射器将数据转换为红外线信号。红外线探测器可以接收在红外线信号中携带的数据,并且适当的电路系统可以将数据放在总线502上。总线502将数据携带到主存储器506,处理器504从该主存储器506检索并执行指令。由主存储器506接收到的指令可以可选地在被处理器504执行之前或执行之后存储在存储设备510上。

计算机系统500还包括耦合到总线502的通信接口518。通信接口518提供耦合到网络链路520的双向数据通信,其中网络链路520连接到本地网络522。例如,通信接口518可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器、或向对应类型的电话线提供数据通信连接的调制解调器。作为另一个示例,通信接口518可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。也可以实现无线链路。在任何这种实现中,通信接口518都发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。

网络链路520通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路520可以通过本地网络522提供到主计算机524或到由互联网服务提供商(ISP)526操作的数据设备的连接。ISP 526又通过现在通常称为“互联网”528的世界范围的分组数据通信网络提供数据通信服务。本地网络522和互联网528都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路520上并且通过通信接口518的信号是传输介质的示例形式,其中信息将数字数据携带到计算机系统500或者携带来自计算机系统500的数字数据。

计算机系统500可以通过(一个或多个)网络、网络链路520和通信接口518发送消息和接收数据,包括程序代码。在互联网示例中,服务器530可以通过互联网528、ISP 526、本地网络522和通信接口518传送对应用程序的请求代码。

接收到的代码可以在其被接收到时由处理器504执行,和/或存储在存储设备510或其它非易失性存储器中以供以后执行。

在前面的说明书中,已经参考因实现而异的许多具体细节描述了实施例。因此,说明书和附图应当被认为是说明性的而不是限制性的。本发明的范围的唯一且排他的指标以及申请人预期作为本发明的范围的内容是从本申请中发出的权利要求集合的字面和等同范围,以这种权利要求发出的具体形式,包括任何后续的更正。

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