程序排程系统及方法

xiaoxiao2020-7-22  7

专利名称:程序排程系统及方法
技术领域
本发明是有关于排程(Scheduling)系统与方法,且特别有关于一种可以依据资源状态动态对于程序(Process)进行排程的程序排程系统与方法。
背景技术
在一些应用程序系统中,如生产线系统,多个应用程序(程序)可以在设备控制服务器上同时地执行。在严苛与关键的半导体生产中,由于非预期的效能降低会影响生产率,因此,应用程序效能在半导体生产中扮演非常重要的角色。另外,负荷平衡也是另一个保持系统能够有效地操作的重要因素之一。
目前来说,每一程序都平等地透过一个应用程序系统中事先定义的执行排程来进行安排与处理。然而,每一程序对于应用程序系统而言也许有不同的重要性。举例来说,控制产品制造的程序比执行标准工作,如档案备份与产生工作记录等来的重要。档案备份与产生工作记录等的标准工作可以当应用程序系统比较不繁忙时再执行。然而,由于目前没有有效机制来对于程序进行动态排程,系统有可能变成超载,导致系统作业暂停或当机,进而使得服务中止或生产损失。

发明内容
有鉴于此,本发明是用以提供来解决前述问题。
因此,本发明的目的为提供一种可以依据资源状态动态对于程序进行排程的程序排程系统与方法。
为了达成本发明的上述目的,本发明提供一种程序排程系统与方法。依据本发明一实施例,系统包括一抓取模块、一时序排程模块与一触发模块。抓取模块抓取应用程序系统资源的资源状态数据,如中央处理单元使用率或磁盘使用率。时序排程模块依据资源状态数据动态地决定至少一程序的一执行时间点。触发模块指示程序在时序排程模块决定的执行时间点进行执行。抓取模块更在程序开始执行之后,抓取资源状态数据,作为回馈数据,用以进一步判定。
依据本发明另一实施例的程序排程方法。首先,抓取一应用程序系统的至少一资源项目的资源状态数据。接着,依据资源状态数据决定至少一程序的一执行时间点,且指示程序在执行时间点进行执行。之后,在程序开始执行之后,抓取资源状态数据,作为回馈数据,用以进一步判定。
本发明上述方法可以透过程序代码方式收录于实体媒体中。当程序代码被机器加载且执行时,机器变成用以实行本发明的装置。


图1为一示意图是显示依据本发明实施例的程序排程系统的系统架构。
图2为一示意图是显示本发明的操作周期。
图3为一流程图是显示依据本发明实施例的程序排程系统的抓取模块的操作。
图4为一流程图是显示依据本发明实施例的程序排程系统的时序排程模块的操作。
图5为一流程图是显示依据本发明实施例的程序排程系统的触发模块的操作。
图6为一示意图是显示储存提供程序排程方法的计算机程序的储存媒体。
符号说明100~程序排程系统;101~组态;102~抓取模块;103~时序排程模块;104~触发模块;110、E1、E2、…、En~资源项目;120~程序;201~时序排程;202~触发程序;203~资料抓取;S301、S302~操作步骤;S401、S402、S403~操作步骤;S501、S502~操作步骤;600~计算机系统;610~储存媒体;611、612、613、614~程序代码。
具体实施例方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图示,进行详细说明如下。
本发明提供新颖的系统与方法来克服现有程序排程问题。
图1为一示意图是显示依据本发明实施例的程序排程系统100的系统架构。
程序排程系统100包括多个组态(Configuration)101、一抓取模块102、一时序排程模块103与一触发模块104。组态101透过抓取模块102取得并记录要被监控的资源项目110、至少一要被进行排程的程序120、一抓取频率与一参考范围。资源项目110可以包括多个资源项目E1~En,如应用程序系统的中央处理单元与磁盘,但不限定于此。程序120可以是对于应用程序系统比较不重要的应用程序。抓取频率与参考范围可以提供给抓取模块102与时序排程模块103分别使用,将于后说明。
另外,组态101更包括程序120的原始时间设定,用以允许程序120在尚未进行本发明排程之前在应用程序系统中依据原始时间设定执行。值得注意的是,程序排程系统100可以提供一个接口,用以提供使用者对于组态101进行设定。
抓取模块102周期地抓取资源状态数据,如应用程序系统的中央处理单元使用率或磁盘使用率。时序排程模块103依据在参考范围内抓取模块102所抓取的资源状态数据动态地决定程序120的执行时间点,且传送程序120的执行时间点给触发模块104。触发模块104指示程序120在执行时间点进行执行。执行时间点的决定方法将于后说明。
图2为一示意图是显示本发明的操作周期。其中,操作包括时序排程201、触发202与数据抓取203。这些操作一直重复循环为一回馈周期。因此,抓取模块102更在程序开始执行之后,持续抓取资源状态数据,作为回馈数据,用以后续的判定。
图3为一流程图是显示依据本发明实施例的程序排程系统100的抓取模块102的操作。首先,如步骤S301,抓取模块102依据预先设定的抓取频率抓取资源项目110的资源状态数据。之后,如步骤S302,抓取模块102将抓取的数据储存至一数据库(图1中未显示)中。值得注意的是,无论程序的执行时间点是否有进行决定,抓取模块102会持续监控资源项目110,且抓取资源状态数据。此外,当部分资源状态数据有一段时间(既定期间)没有被存取时,抓取模块102可以使用一清理机制来将该资料删除。
图4为一流程图是显示依据本发明实施例的程序排程系统100的时序排程模块103的操作。首先,如步骤S401,时序排程模块103依据参考范围由抓取模块102撷取资源状态数据。如步骤S402,时序排程模块103依据资源状态数据决定程序120的执行时间点。在一实施例中,时序排程模块103可以依据一神经网络(Neural Network,NN)模型,如Q’tron NN模型来决定执行时间点。
每一Q’tron的输出程度(Output Level)的数目可以大于二。特别地,假设μi表示在一Q’tron NN中的第i个Q’tron,μi的输出,表示为Qi,其值是于一有限整数集合{0,1,…,qi-1},其中qi(≥2)为输出程度的数目。另外,Qi也被一特定正值ai来进行加权,其中ai称为主动权重(Active Weight),用以表示Q’tron的单位刺激力量(Unit Excitation Strength)。aiQi表示μi的主动权重,其表示Q’tron的总刺激力量。在一Q’tron NN中,对于一对连接的Q’tron μi与μj,只有存在一个连接力量(Tij=Tji)。
在Q’tron NN模型中,每一神经网络中的Q’tron可以允许来被植入噪声(Noise-Injected)。
H^=Hi+Ni=Σj=1nTij(ajQj)+Ii+Ni---(1)]]>其中,Hi表示μi的无噪声净刺激(Stimulus),等于内部刺激的总合,即,Σj=1nTij(ajQj)]]>与外部刺激Ii。Ni表示投入μi的附加噪声,且n表示神经网络中Q’tron的数目。当没有噪声,举例来说,对于所有i,Ni=0时,Q’tron NN是处于简单模式;否则,其在完整模式。在每一个时间步骤,只有一个Q’tron被选择用以依据下述规则进行程度转变(Level Transition)
Qi(t+1)=Qi(t)+ΔQi(t)(2),其中,ΔQi(t)=+1wheneverHi^(t)>12|Tiiai|andQi(t)<qi-1;-1wheneverHi^(t)<-12|Tiiai|andQi(t)0;0otherwise;---(3)]]>其中,假设在时间t+1时,第i个Q’tron被选定。由Q’tron NN的模型叙述,如果每一Q’tron,μi具有qi=2,ai=1与Tii=0,且NN在简单模式中进行,Q’tron NN模型变为原始Hopfield模式。
在Q’tron NN中的系统能量(Energy)ε称为Liapunov能量,其定义如下ϵ=-12Σi=1nΣj=1n(aiQi)Tij(ajQj)-Σi=1nIi(aiQi)+K---(4)]]>其中,n为神经网络中Q’tron的数目,且K可以是任何合适的常数。在简单模式中,能量ε随着时间递减。因此,如果一个问题可以进行对映(Map),其在上述形式中将函式ε缩到最小,相应的NN可以在ε达到整体/局部最小之后独立地解决问题。然而,事实上,大量的最小值可能表示不符合要求的解答。在Q’tron NN方法中,Ni用来控制问题的解答品质。简单来说,如果给予期望的解答品质,可以系统化地决定要植入每一Q’tron的可允许的噪声力量范围。藉由频繁地植入如此力量-约束(Strength-Bound)的噪声至Q’tron,NN最后会停在相应一令人满意的解答的状态。
对于服务器系统的资源最佳化而言,使用Q’tron NN来决定程序的排程与时序,与来避免系统尖峰时间是非常重要的。中央处理单元使用率、磁盘使用率与尖峰时间期间可以采用作为处理项目,且将在参考范围内的数据喂进入此模型中。最小的能量值ε,与多个能量值ε可以在完整模式中使用来进行时序排程。假设Qkcpu_act∈{0,1,…,100}与Qkdisk_act∈{0,1,…,100}分别表示中央处理单元使用率与磁盘使用率。常数K1tar∈{0,1,…,100}与K2tar∈{0,1,…,100}分别指示标的的中央处理单元使用率与磁盘使用率。当能量收敛且稳定时,在简单模式中可以得到局部最小值。因此,相应中央处理单元使用率与磁盘使用率的能量函式ε1与ε2可以定义于下ϵ1=12Σi=mn{Σk=i-mi+macpu_actQkcpu_act-Σk=i-mi+mK1tar}2---(5)]]>与,ϵ2=12Σi=pq{Σk=i-pi+padisk_actQkdisk_act-Σk=i-pi+pK2tar}2---(6),]]>且总能量函式ε为ε=λ1ε1+λ2ε2+Ni(7).
使用简单模式来达到局部最小值是最快的,但是可能会不具效率,藉以噪声可以更被植入Q’tron NN中,且更多标的可以被找到且记录为程序执行时间点。再次参考图4,如步骤S403,时序排程模块103传送具有程序执行时间点的排程至触发模块104。
图5为一流程图是显示依据本发明实施例的程序排程系统100的触发模块104的操作。首先,如步骤S501,触发模块104判断目前时间是否已经到执行时间点。如果没有(步骤S501的否),流程持续步骤S501的判断。否则(步骤S501的是),如步骤S502,触发模块104指示程序120进行执行。
图6为一示意图是显示储存提供程序排程方法的计算机程序的储存媒体。计算机程序产品包括可以使用于计算机系统600中具有储存计算机可读取程序代码的储存媒体610。计算机可读取程序代码至少包括程序代码611,用以抓取一应用程序系统的至少一资源项目的资源状态数据、程序代码612,用以依据资源状态数据决定至少一程序的一执行时间点、程序代码613,用以指示程序在执行时间点进行执行、以及程序代码614,用以在程序开始执行之后,抓取资源状态数据,作为回馈数据,用以进行后续判定。
因此,本发明提供新颖的程序排程系统与方法,可以依据资源状态动态且弹性地对于程序进行排程,从而平衡系统于不同时间的系统负荷,且降低生产损失或服务中止的情况。
本发明的方法与系统,或特定型态或其部分,可以以程序代码的型态包含于实体媒体,如软盘、光盘片、硬盘、或是任何其它机器可读取(如计算机可读取)储存媒体,其中,当程序代码被机器,如计算机加载且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序代码型态透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序代码被机器,如计算机接收、加载且执行时,此机器变成用以参与本发明的装置。当在一般用途处理器实作时,程序代码结合处理器提供一操作类似于应用特定逻辑电路的独特装置。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此项技艺者,在不脱离本发明的精神和范围内,当可作更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。
权利要求
1.一种程序排程系统,包括至少一组态,记录一应用程序系统的至少一资源项目与至少一程序;一抓取模块,用以抓取该资源项目的资源状态数据;一时序排程模块,用以依据该资源状态数据决定该程序的一执行时间点;以及一触发模块,用以指示该程序在该执行时间点进行执行。
2.根据权利要求1所述的程序排程系统,其中该组态更记录一抓取频率,且该抓取模块依据该抓取频率抓取该资源项目的该资源状态数据。
3.根据权利要求1所述的程序排程系统,其中用以决定该执行时间点的该资源状态数据是于一既定参考范围之内。
4.根据权利要求1所述的程序排程系统,其中该资源项目包括该应用程序系统的一中央处理单元,且该资源状态数据包括该中央处理单元的使用率。
5.根据权利要求1所述的程序排程系统,其中该资源项目包括该应用程序系统的一磁盘,且该资源状态数据包括该磁盘的使用率。
6.根据权利要求1所述的程序排程系统,其中该抓取模块更在该程序执行之后,持续抓取该资源状态数据,作为回馈数据,用以进一步判定。
7.根据权利要求1所述的程序排程系统,其中该时序排程模块是依据一神经网络模型决定该执行时间点。
8.一种程序排程方法,包括下列步骤抓取一应用程序系统的至少一资源项目的资源状态数据;依据该资源状态数据决定至少一程序的一执行时间点;以及指示该程序在该执行时间点进行执行。
9.根据权利要求8所述的程序排程方法,更包括依据一抓取频率抓取该资源项目的该资源状态数据。
10.根据权利要求8所述的程序排程方法,更包括依据于一既定参考范围之内的该资源状态数据决定该执行时间点。
11.根据权利要求8所述的程序排程方法,其中该资源项目包括该应用程序系统的一中央处理单元,且该资源状态数据包括该中央处理单元的使用率。
12.根据权利要求8所述的程序排程方法,其中该资源项目包括该应用程序系统的一磁盘,且该资源状态数据包括该磁盘的使用率。
13.根据权利要求8所述的程序排程方法,更包括在该程序执行之后,持续抓取该资源状态数据,作为回馈数据,用以进一步判定。
14.根据权利要求8所述的程序排程方法,更包括依据一神经网络模型决定该执行时间点。
全文摘要
一种程序排程系统与方法。系统包括一抓取模块、一时序排程模块与一触发模块。抓取模块周期地抓取应用程序系统中至少一资源项目的资源状态数据。时序排程模块依据资源状态数据动态地决定至少一程序的一执行时间点。触发模块指示程序在时序排程模块决定的执行时间点进行执行。抓取模块更在程序开始执行之后,抓取资源状态数据,作为回馈数据,用以进一步判定。
文档编号G06F9/48GK1696853SQ20051006327
公开日2005年11月16日 申请日期2005年4月7日 优先权日2004年4月8日
发明者刘益成 申请人:台湾积体电路制造股份有限公司

最新回复(0)