CN1673965A - 实时可调度性确定方法和实时*** - Google Patents

实时可调度性确定方法和实时*** Download PDF

Info

Publication number
CN1673965A
CN1673965A CN200510059298.4A CN200510059298A CN1673965A CN 1673965 A CN1673965 A CN 1673965A CN 200510059298 A CN200510059298 A CN 200510059298A CN 1673965 A CN1673965 A CN 1673965A
Authority
CN
China
Prior art keywords
task
time
real
deadline
tasks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200510059298.4A
Other languages
English (en)
Other versions
CN100357894C (zh
Inventor
鸟井修
前田诚司
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of CN1673965A publication Critical patent/CN1673965A/zh
Application granted granted Critical
Publication of CN100357894C publication Critical patent/CN100357894C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Compositions Of Macromolecular Compounds (AREA)

Abstract

本发明涉及一种用于确定是否能用多个处理器来对多个任务执行实时调度的方法,包括:计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数);以及如果对于所有k,所有任务都满足条件:∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则确定可以使用处理器来对任务执行实时调度,Lk如下表示:如果Mk≤(M+1)/2,Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk;以及Uk,i如下表示:(1)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Xk,i≤0,Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;(2)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且0<Xk,i<Ci/Ti,Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;以及(3)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Ci/Ti≤Xk,i,Uk,i=Ci/Ti{1+(Ti-Di)/Dk},以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1)。

Description

实时可调度性确定方法和实时***
相关申请的交叉引用
本申请基于2004年3月26日提交的日本专利申请2004-93020,并且据此要求享有优先权,该申请的全部内容在此引入作为参考。
技术领域
本发明涉及一种用于确定是否可以使用多个处理器来对多个任务执行实时调度的实时可调度性确定方法,以及一种使用了该方法的实时***。
背景技术
实时***是受时间约束的计算机***,其中“针对任何任务所进行的处理都必须在为其设定的时限内完成”。
通常,为每一个任务所设定的时限也称为“截止期限”,如果没有在其截止期限之前完成任务,则称为“违反截止期限(deadline miss)”。实时***则必须绝对不违反截止期限。
空中交通管制***、电站控制监视***、医疗***等等都是典型的实时***。其中举例来说,空中交通管制***在飞机之间或者飞机与障碍物之间设定了一个安全时间间隔,以免飞机发生碰撞。在这种情况下,需要两秒时间来确定飞机是否会在一秒内碰撞将是毫无用处的。因此,空中交通管制***受制于严格的时间约束条件。
受制于禁止违反截止期限的严格时间约束条件的设备的操作称为“实时调度”。此前已经提出了多种用于实现实时调度的方法。
举例来说,目前已知的一种执行实时调度的技术使用了最早截止期限优先(earliest deadline first:EDF)算法(举例来说,相关内容可以参见J.W.S.Liu,“Real-time Systems”,Prentice Hall,2000)。
在实时调度中,在恰当的周期中将恰当的处理器分配给相应的恰当任务,以免各个任务违反截止期限,这一点是非常重要的。
在使用多个处理器来对多个任务执行实时调度的时候,首先将会使用一种实时的可调度性确定方法来确定处理器是否可以对任务执行实时调度,其次,只有在确定可以执行这种实时调度的时候才会使用恰当的调度方法来确定应该组合哪些处理器、任务以及周期。
作为典型的调度方法,在EDF算法中,将处理器在最早时间优先分配给一个截止期限最早的任务。
使用EDF算法执行实时调度的实时可调度性确定方法同样是已知的。有关这种技术,例如可以参见T.P.Baker编写的“An Analysis ofEDF Schedulability on a Multiprocessor”,FSU Computer ScienceTechnical Report TR-030202,2003(在下文中将其称为“Baker”)。
此外,通过执行虚拟调度来检查是否将会违反截止期限的实时可调度性确定方法同样是已知的。有关这种技术,例如可以参见J.F.Hermant等人编写的″Real-time Fixed and Dynamic Priority DrivenScheduling Algorithms:Theory and Experience”,Inria TechnicalReport,1996(在下文中将其称为“Hermant等人”)。
在以下描述中,除非另作说明,否则分别将实时可调度性和不可调度性简称为“可调度性”和“不可调度性”。
然而,在Baker的文章所公开的确定方法中,其中假设只将一个单独的处理器分配给一个单独的任务。换句话说,这种方法并没有考虑到同时需要多个处理器来提高处理效率的任务。因此需要一种能在同时需要多个处理器处理单个任务时使用的可调度性确定方法。
此外,Hermant等人的文章所公开的执行虚拟调度的方法同样也是不现实的,因此这种方法需要很长的计算时间。
发明内容
根据本发明的第一个方面,在这里提供了一种用于确定是否能使用多个处理器来对多个任务执行实时调度可调度性确定的方法,包括:计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数),其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k和任务i,N表示任务的数目;以及如果对于所有k,任务全都满足多个条件:∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则确定可以使用处理器来对任务执行实时调度。
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)CK/Dk;以及
Uk,i是如下表示的:
(1)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;以及
(3)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk},
其中M表示处理器数目,Ti表示包含在任务中的任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1)。
根据本发明的第二个方面,在这里提供了一种用于确定是否能使用多个处理器来对多个任务执行实时调度的可调度性确定方法,包括:计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数),其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k,N表示任务的数目;以及如果对于所有k,任务全都满足多个条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则确定可以使用处理器来对任务执行实时调度。
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk
(2)如果(M+1)/2<Mk,
那么Lk=M-Mk+1;以及
Uk,i则是如下表示的:
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk≠(M+1)/2,
并且如果Ck/Dk<1/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk=(M+1)/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果0<Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Yk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Yk,i*Ti)/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Yk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mi≤Mk,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mk<Mi,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
其中M表示处理器数目,Ti表示包含在任务中的一个任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1),Yk,i=(Mk-Mi)/(M-2Mi+1)。
根据本发明的第三个方面,在这里提供了一种用于确定是否可以使用多个处理器来对多个任务执行实时调度的可调度性确定方法,包括:(1)获取任务参数信息,其中所述信息表示每一个任务的时间间隔、所述每一个任务同时使用的一个或多个处理器的数目,所述每一个任务的处理时间以及所述每一个任务的相对截止期限;(2)基于与所检测任务相对应的任务参数信息以及处理器总数来计算一个最小平均负载,其中所述最小平均负载引起这些任务中包含的、将被检测是否违反截止期限的任务违反截止期限;(3)基于与所述每一个任务相对应的任务参数信息来计算任务的总的最大平均负载,其中所述任务是在一个介于平均负载不小于计算得到的最小平均负载的最早时间与所检测的任务违反截止期限的时间之间的周期中产生的;(4)重复执行(2)计算最小平均负载以及(3)计算总数,同时改变所检测的任务;以及(5)如果计算得到的总数大于计算得到的最小平均负载,则确定可以使用处理器来对任务执行实时调度。
根据本发明的第四个方面,在这里提供了一种实时***,包括:多个处理器;一个计算单元,被配置成为作为实时调度目标的多个任务中的每一个任务计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数),其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k和任务i,N表示任务的数目;一个确定单元,被配置成如果对于所有k,任务全都满足多个条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则确定可以使用处理器来对任务执行实时调度;以及一个执行单元,被配置成在如果确定单元确定可以执行实时调度,则使用处理器来对任务执行实时调度。
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk;以及
Uk,i是如下表示的:
(1)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;以及
(3)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk},
其中M表示处理器数目,Ti表示包含在任务中的一个任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1)。
根据本发明的第五个方面,在这里提供了一种实时***,包括:多个处理器;一个计算单元,被配置成计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数),其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k,N表示任务的数目;一个确定单元,被配置成如果对于所有k,任务全都满足多个条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则确定可以使用处理器来对任务执行实时调度;以及一个执行单元,被配置成如果确定单元确定可以执行实时调度,则使用处理器来对任务执行实时调度。
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk
(2)如果(M+1)/2<Mk,
那么Lk=M-Mk+1;以及
Uk,i则是如下表示的:
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk≠(M+1)/2,
并且如果Ck/Dk<1/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk=(M+1)/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果0<Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Yk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Yk,i*Ti)/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Yk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mi≤Mk,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mk<Mi,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
其中M表示处理器数目,Ti表示包含在任务中的一个任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1),Yk,i=(Mk-Mi)/(M-2Mi+1)。
根据本发明的第六个方面,在这里提供了一种实时***,包括:多个处理器;一个获取单元,被配置成获取任务参数信息,其中所述信息表示每一个任务的时间间隔、所述每一个任务同时使用的一个或多个处理器的数目、所述每一个任务的处理时间以及所述每一个任务的相对截止期限;一个第一计算单元,被配置成基于与所检测任务相对应的任务参数信息以及处理器总数来计算一个最小平均负载,其中所述最小平均负载引起这些任务中包含的、将被检测是否违反截止期限的任务违反截止期限;一个第二计算单元,被配置成基于与所述每一个任务相对应的任务参数信息来计算任务的最大平均负载总数,其中所述任务是在一个介于平均负载不小于计算得到的最小平均负载的最早时间与所检测的任务违反截止期限的时间之间的周期中产生的;一个执行单元,被配置成在如果计算得到的总数大于计算得到的最小平均负载,则使用处理器来执行任务的实时调度。
根据本发明的第七个方面,在这里提供了一种程序,该程序保存在计算机可读介质中,并且执行一个用于确定是否能使用多个处理器来对多个任务执行实时调度的可调度性确定处理,包括:用于指示计算机计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数)的装置,其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k,N表示任务的数目;以及用于如果对于所有k,任务全都满足多个条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则指示计算机确定可以使用处理器来对任务执行实时调度的装置。
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk;以及
Uk,i是如下表示的:
(1)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;以及
(3)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk},
其中M表示处理器数目,Ti表示包含在任务中的一个任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1)。
根据本发明的第八个方面,在这里提供了一种程序,该程序保存在计算机可读介质中,并且执行一个用于确定是否能使用多个处理器来对多个任务执行实时调度的可调度性确定处理,包括:用于指示计算机计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数)的装置,其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k,N表示任务数目;以及用于如果对于所有k,任务全都满足条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则指示计算机确定可以使用处理器来对任务执行实时调度的装置,
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk
(2)如果(M+1)/2<Mk,
那么Lk=M-Mk+1;以及
Uk,i则是如下表示的:
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk≠(M+1)/2,
并且如果Ck/Dk<1/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk=(M+1)/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果0<Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Yk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Yk,i*Ti)/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Yk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mi≤Mk,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mk<Mi,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
其中M表示处理器数目,Ti表示包含在任务中的一个任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1),Yk,i=(Mk-Mi)/(M-2Mi+1)。
根据本发明的第九个方面,在这里提供了一种程序,该程序保存在计算机可读介质上,并且执行一个用于确定是否能使用多个处理来对多个任务执行实时调度的可调度性确定处理,包括:(1)用于指示计算机获取任务参数信息的装置,其中所述信息表示每一个任务的时间间隔、所述每一个任务同时使用的一个或多个处理器的数目、所述每一个任务的处理时间以及所述每一个任务的相对截止期限;(2)用于指示计算机基于与所检测任务相对应的任务参数信息以及处理器总数来计算一个最小平均负载的装置,其中所述最小平均负载引起这些任务中包含的、将被检测是否违反截止期限的任务违反截止期限;(3)用于指示计算机基于与所述每一个任务相对应的任务参数信息来计算任务的最大平均负载总数的装置,其中所述任务是在一个介于平均负载不小于计算得到的最小平均负载的最早时间与所检测的任务违反截止期限的时间之间的周期中产生的;(4)用于指示计算机重复执行(2)计算最小平均负载以及(3)计算总数,同时改变所检测的任务的的装置;以及(5)用于指示计算机如果计算得到的总数大于计算得到的最小平均负载,则确定使用处理器来执行任务的实时调度的装置。
附图说明
图1是用于描述依照本发明一个实施例的实时***的结构实例的框图;
图2是用于说明在本实施例的实时***中引入的可调度性确定单元的操作的视图;
图3是用于说明本实施例的实时***所执行的任务的视图;
图4是用于描述本实施例的实时***所执行的可调度性确定处理过程的第一流程图;
图5是用于描述本实施例的实时***所执行的可调度性确定处理过程的第二流程图;
图6是用于说明本实施例的实时***的负载实例的视图;
图7是用于描述本实施例的实时***所执行的可调度性确定处理过程的第三流程图;
图8是用于说明本实施例的实时***中的平均负载和参考平均负载的图表;
图9是用于描述在违反截止期限发生之前假设的任务执行实例的图;
图10是用于说明在本实施例的实时***中确定参考平均负载周期的方法的图形;
图11是用于描述任务i在本实施例的实时***的参考平均负载周期中的执行实例的视图;
图12是用于描述图11的周期[Tk-Φ,Tk)中的任务执行实例的图;
图13是用于描述本实施例的实时***所执行的可调度性确定处理过程的第四流程图;
图14是用于描述本实施例的实时***所执行的可调度性确定处理过程的第五流程图;
图15是用于描述本实施例的实时***所执行的可调度性确定处理过程的第六流程图。
具体实施方式
在下文中将参考附图来对本发明的实施例进行详细描述。
图1显示的是依照本发明一个实施例的实时***的结构实例。其中举例来说,该实时***可以是一个用作嵌入式***的计算机***,并且该实时***实时执行多个受制于时间约束条件的任务。
实时***包括:主机处理单元(MPU)11,多个通用处理单元(VPU)12,总线13,主存储器14,输入/输出(I/O)控制器15以及I/O设备16。MPU 11、VPU 12、主存储器14以及I/O控制器15彼此是通过总线13连接的。
MPU 11是用于控制实时***整体操作的主处理器,其中将其调整成执行保存在存储器14中的操作***(OS)。每一个VPU12都是一个在MPU11的控制下执行不同处理的处理器。应该实时处理的多个任务都是由VPU12执行的。这些任务中的每一个任务都同时需要一个或多个处理器。操作***实时地将一个或多个VPU12分配给每一个任务。操作***则包含了一个可调度性确定单元101以及调度装置102。
举例来说,可调度性确定单元101执行一个可调度性确定处理,以便确定是否可以例如使用EDF算法来对多个应该实时处理的任务执行实时调度。如果确定可以执行这种实时调度,则调度装置12促使VPU12例如使用EDF算法来对任务执行实时调度。如上所述,在EDF算法中优先将处理器分配给一个最早截止期限处于最早时间的任务。
举例来说,可调度性确定处理是在请求执行特定应用程序的时候实施的。在这种情况下,可调度性确定单元101确定在包括被请求应用程序中的任务以及已执行应用程序中的任务在内的每一个任务中是否会出现违反截止期限的情况。如果确定没有一个任务将会违反截止期限,则调度装置102开始调度所有任务。与此相反,如果确定至少有一个任务可能会违反截止期限,则不对请求执行的应用程序中的任务进行调度。已执行的应用程序将会继续执行。由此可以避免违反截止期限。
图2显示的是在执行可调度性确定处理时的数据流。
可调度性确定单元101读取可以用于调度的处理器总数,以及与所调度的所有任务相对应的任务参数信息。每一个任务的任务参数信息都是从相应的应用程序传递到可调度性确定单元101的。在本实施例中,处理器总数表示的是在实时***中提供的VPU 12的数目。
与每一个任务相对应的任务参数信息包含了每一个任务的时间间隔,同时用于每一个任务的处理器数目,每一个任务的处理时间(执行周期),每一个任务的相对截止期限等等。其中时间间隔表示的是重复执行每一个任务的时间间隔。同时用于每一个任务的处理器数目是同时分配给每一个任务的处理器数目,该数目是预先确定的。处理时间(执行周期)表示的是用于处理(执行)每一个任务所需要的时间。
可调度性确定单元101是使用处理器总数以及与所调度的所有任务相对应的任务参数信息来执行可调度性确定处理的。此后,可调度性确定单元101将会为调度装置102提供一个确定结果(可否执行调度)。
以下将对任务进行描述。
每一个任务都是名为“工作”的任务执行单位的副本,并且每一个工作都是以“时间间隔”为单位而开始的。此外,每一个工作都是从工作开始时间时起并在与“相对截止期限”相等的周期中执行的,同时,每一个工作所使用的处理器数目与分配给每一个工作的处理器数目相同。在下文中,通过把相对截止期限添加到工作开始时间之中所得到的时间(也就是必须结束每个工作的时间)将被称为“绝对截止期限”。
图3显示了任务的一个实例。
在图3中,横轴表示时间,纵轴表示处理器。特别地,图3显示了这样一种情况,其中在实时***中执行了一个时间间隔100ms、指定了两个处理器、处理时间为50ms并且相对截止期限为80ms的任务,并且在这个实时***中,可用于调度的处理器(VPU)总数为3。
图3是用三个时间间隔来显示任务执行情况的。其中在每一个间隔中执行的都是同时使用两个处理器并且处理时间为50ms的工作。在图3的情况中,每一个工作都是在这样一个周期内处理的,其中该周期是从工作开始时间直到绝对截止期限(也就是没有违反截止期限)。
在以下描述中,除非另作说明,否则将会假设用M表示可用于执行所有任务的处理器总数;N表示所要调度的任务的总数;任务编号1~N附着于相应的N个任务。此外,假设Ti、Mi、Ci和Di分别表示的是任务i的时间间隔(1≤i≤N)、同时用于任务i的处理器数目、任务i的处理时间以及任务i的相对截止期限。
现在将对可调度性确定处理的过程概要进行描述。
图4是一个描述了用于确定是否可以使用EDF算法由多个处理器来调度多个任务的处理过程的流程图。
可调度性确定单元101关注任意的目标任务(在流程图中是任务k(1≤k≤N)),并且确定是否该任务会违反截止期限(步骤S101到S103)。在顺序改变目标任务k的同时(步骤S104和S105),可调度性确定单元101将会重复执行所述确定。
如果可调度性确定单元101确定没有任务会违反截止期限(步骤S105:“是”),则确定可以执行调度(步骤S106)。与此相反,如果可调度性确定单元101确定至少有一个任务可能违反截止期限(步骤S103:是),则确定不能执行调度(步骤S107)。
如果可调度性确定单元101确定可以执行调度,则可以使用EDF算法来执行实时调度,而不会违反截止期限。
在本实施例中使用了这样一个条件,其中只要某个任务违反截止期限,则该条件都是成立的,如果该条件成立,则确定有可能会违反截止期限。
图5是通过使用上述条件改写图4流程图而得到的流程图。
在图5的流程图中,在任务k违反截止期限时即可成立的条件是用Δk表示的。由于在不同的任务之间,该条件存在着差别,因此在这里将下标“k”附着于所述任务。在图5的流程图中,可调度性确定单元101确定Δk是否成立(步骤S201),并且由此确定任务k是否会在使用EDF算法执行调度的时候违反截止期限。
更准确地说,在任务k违反截止期限时即可成立的条件是由下文中描述的不等式Lk<Uk表示的。由于在不同的任务之间,不等式的左边和右边存在差别,因此在这里将下标“k”附着于所述任务。
图7是一个通过使用不等式Lk<Uk改写图5流程图而得到的流程图。在图7的流程图中,可调度性确定单元101确定是否满足Lk<Uk(步骤S301),由此确定任务k中是否存在违反截止期限的可能性。
在下文中,首先将会粗略地对在任务违反截止期限时成立的条件Lk<Uk进行描述,然后则对该条件进行详细描述。
首先对该条件进行粗略描述。
违反截止期限是在所调度的所有任务的负载全都超出实时***处理能力的时候发生的。因此,在这里先对负载进行定义。在解释Lk和Uk的过程中,负载的定义起着重要的作用。
现在将会给出负载的严格定义。
在这里假设使用多个处理器执行多个任务。在这里关注的是任意周期T以及特定任务i中所包含的工作的周期,其中这些工作各自都具有处于周期T中的绝对截止期限。并且在这里将处于周期T中的工作处理时间的总和定义为任务i的“单负载时间”。
此外,通过将分配给任务i的处理器的数目与任务i的单负载时间相乘,可以获取一个值,这个值被定义为“单负载”。任务i的“单负载”是在执行任务i的时候产生的。
根据“单负载时间”和“单负载”的定义,除非工作的绝对截止期限落在周期T中,否则即使工作是在周期T中执行的,但是任务i中包含的特定工作的执行周期也还是不包含在任务i的“单负载时间”中。
此外,在这里将所有任务的“单负载”总和定义为“总负载”。
如果将“单负载时间”、“单负载”以及“总负载”与周期相除,则可以获取不同的平均时间。
在说明书中定义了下列内容:
“平均单负载时间”是通过将“单负载时间”与周期T相除而得到的;
“平均单负载”是通过将“单负载”与周期T相除而得到的;以及
“平均负载”是通过将“总负载”与周期T相除而得到的。
举例来说,现在关注周期[T,T+Δ]。其中符号“[”表示“不小于”,以及符号“)”表示“小于”。换句话说,周期[T,T+Δ)表示该周期始于时间T,而在时间T+Δ之前结束。
假设N,Mi和Ei分别表示的是任务数目、同时用于任务i的处理器数目,以及任务i的单负载时间,由此可以计算下列各项:
在周期[T,T+Δ)中,任务i的单负载时间=Ei
在周期[T,T+Δ)中,任务i的单负载=Mi*Ei
在周期[T,T+Δ)中,所有任务的总负载=∑i=1...N(Mi*Ei)
在周期[T,T+Δ)中,任务i的平均单负载时间=Ei/Δ
在周期[T,T+Δ)中,任务i的平均单负载=Mi*Ei/Δ
在周期[T,T+Δ)中,所有任务的平均负载={∑i=1...N(Mi*Ei)}/Δ
图6显示的是负载的实例。
在图6中,横轴表示时间,纵轴表示处理器。特别地,图6显示了这样一种情况,其中在一个实时***中,任务1和2是在周期[T,T+Δ)中执行的,并且在这个***中,可用于调度的处理器(VPU)总数为3。任务1的绝对截止期限T3落入周期[T,T+Δ)。任务1是在一个从时间T1到时间T2的周期中由处理器1执行的。任务2的绝对截止期限T6同样落入周期[T,T+Δ)。并且任务2是在从时间T4到时间T5的周期中由两个处理器2和3执行的。此外,假设除了任务1和2之外,没有其他那些绝对截止期限处于周期[T,T+Δ)内的任务。
在图6中:
任务1的单负载时间=T2-T1
任务1的单负载=1*(T2-T1)
任务2的单负载时间=T5-T4
任务2的单负载=2*(T5-T4)
总的负载=1*(T2-T1)+2*(T5-T4)
任务1的平均单负载时间=(T2-T1)/Δ
任务1的平均单负载=1*(T2-T1)/Δ
任务2的平均单负载时间=(T5-T4)/Δ
任务2的平均单负载=2*(T5-T4)/Δ
平均负载={1*(T2-T1)+2*(T5-T4)}/Δ
正如在下文中更详细描述的那样,无论何时,只要特定任务k违反截止期限,那么在特定周期中,Lk将会等于或低于所有任务的平均负载,并且在这个周期中,Uk将会高于所有任务的平均负载。换句话说,无论何时,只要任务k违反截止期限,则Lk<Uk都是成立的。可调度性确定单元101确定是否Lk<Uk成立,由此确定任务k是否有可能会违反截止期限。
现在将对Lk和Uk做出定义。
首先,在这里将Lk定义成“一个为每一个任务k唯一确定的值,并且确保在任务k违反截止期限时将会存在一个周期,在该周期中,平均负载将会等于或高于这个值”。
而Lk则被定义成一个“不小于在任务k违反截止期限时必须设定的特定周期中的实际平均负载的值”。Lk≤实际负载是成立的。应该注意的是,无论任务k是否违反截止期限,都可以从参数信息以及分配给所有任务的处理器总数M中确定Lk。
在下文中,在任务k违反截止期限时假设的Lk值将被简称为任务k的“参考平均负载”。任务k的“参考平均负载”是一个只在任务k违反截止期限时才被定义的值,并且在唯一确定的周期中,任务k的负载都不小于这个值。
“参考平均负载周期”则被定义成“在特定任务违反截止期限时唯一确定的一个周期,并且在这个周期中,平均负载不小于参考平均负载”。
当特定任务违反截止期限时,在不同的周期中,所有任务的平均负载可以具有不同的值。相应地,参考平均负载Lk可以是从若干个备选值中选出的。
上述定义涉及的是参考平均负载,其中并没有定义应该选择哪一个备选值作为参考平均负载。此外,当特定任务违反截止期限时,这时将会存在一个或多个周期,在这些周期中,任务的平均负载不小于参考平均负载。
以上关于参考平均负载周期的定义并未定义应该将哪个周期选作参考平均负载周期。
图8显示的是参考平均负载与参考平均负载周期之间的关系。
在图8中,横轴表示概念周期,纵轴表示参考负载。实际上,由于周期是用起始时间S和结束时间E而以二维方式表示的,因此,严格地讲,周期是不能用一维的轴(横轴)表示的。应该指出的是,由图8的横轴表示的周期只是一个“概念”周期。
在图8的图形中,波浪线表示的是在使用EDF算法通过多个处理器调度多个任务的时候平均负载在各个周期中如何变化。在这里假设任务k在特定时间会违反截止期限。在这种情况下,必然会存在一个平均负载不小于任务k的参考平均负载Lk的周期。
在图8的图形中,假设在周期I1与I2之间的周期、周期I3与I4之间的周期以及周期I5与I6之间的周期中,平均负载都不小于Lk。
任务k的参考平均负载周期是从这些周期中唯一定义的。举例来说,在图8的情况中,假设周期I3是任务k的参考平均负载周期。
在这里将Uk,i定义成“一个以任务k和i的组合为单位而被唯一确定的值”,此外还确保在任务k违反截止期限的时候,在任务k的参考平均负载周期中,这个值不小于任务i的平均单负载时间(如果i=k,则它大于平均信号负载时间)。
Uk则被定义成Uk=∑i=1...N(Mi*Uk,i)。
并且当任务k违反截止期限的时候,这时还会将Uk定义成一个“小于必然设定的参考平均负载周期中的实际平均负载的值”。
“实际负载<Uk”这个相互关系也是成立的。
在任务k违反截止期时,在任务k的参考平均负载周期中,这时将会存在无穷个不小于任务i的平均单负载时间(如果i=k,那么这些值高于平均信号负载时间)的值。
以上关于Uk,i的定义并未定义应该选择这其中的哪个值作为Uk,i。
对任何一个任务来说,特定任务的平均单负载时间都不会大于1。因此,举例来说,如果i=k,则可以将Uk,i定义成Uk,i=1.1,而在其他情况下则将其定义成Uk,i=1。但这仅仅是一个实例。稍后将会描述如何从多个候选的Uk,i中选择Uk,i,此外还会详细描述在任务违反截止期时即可成立的条件Lk<Uk。
此前已经定义了Lk和Uk。现在将对任务违反截止期限时即可成立的条件Lk<Uk进行描述。
在任务违反截止期限时,假设[Tk,Tk+Δk)表示任务k的参考平均负载周期,N表示任务数目,Mi表示同时用于任务i的处理器数目,Ei表示任务i在参考平均负载周期[Tk,Tk+Δk)中的单负载时间。在这种情况下,从参考平均负载与信号平均负载之间的关系中可以得到下列表达式:
在任务k的参考平均负载周期[Tk,Tk+Δk)中,所有任务的平均负载
={∑i=1...N(Mi*Ei)}/Δk
=∑i=1...N(Mi*任务i在参考平均负载周期[Tk,Tk+Δk)中的平均单负载时间)
由于涉及任务k的参考平均负载Lk不大于任务k的参考平均负载周期[Tk,Tk+Δk)中所有任务的平均负载,因此可以建立涉及Lk的以下表达式:
在任务k的参考平均负载周期[Tk,Tk+Δk)中,Lk≤所有任务的平均负载。
此外,在这里还将Uk,i定义成“一个以任务k和i的组合为单位而被唯一确定的值,并且确保在任务k违反截止期限时,在任务k的平均负载周期中,这个值不小于任务i的平均单负载时间(如果i=k,则它大于平均信号负载时间)”。由此可以建立以下关于Uk,i的表达式(1)到(4):
如果i=k,
那么Uk,i>任务i在参考平均负载周期[Tk,Tk+Δk)中的平均单负载时间                                              (1)
在其他情况下(也就是说,如果i≠k),
那么Uk,i≥任务i在参考平均负载周期[Tk,Tk+Δk)中的平均单负载时间                                              (2)
i=1...NMi*Uk,i                              (3)
从表达式(1)到(3)以及以上关于Lk的不等式中可以导出下列表达式(4):
Lk<Uk                                          (4)
上述各式将会确保在任务k违反截止期限时,条件Lk<Uk成立。
以下将对在本实施例中使用并在任务k违反截止期限时成立的条件进行详细描述。
在以上关于任务k违反截止期限时成立的条件Lk<Uk的粗略描述中,并没有规定下列各点1)到3):
1)在实施例中,Lk是使用何种方法而从多个候选Lk中选出的?
2)在实施例中,参考平均负载周期是使用何种方法而从多个候选的参考平均负载周期中选出的?以及
3)在实施例中,Uk,i是使用何种方法而从多个候选的Uk,i值中选出的?
现在将对上述三个方法进行描述。
在本实施例中将Lk设定成:
(i)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk
(ii)如果(M+1)/2<Mk,
那么Lk=M-Mk+1
正如在以上粗略描述中所描述的那样,在这里必须选择Lk,这样一来,只要任务k违反截止期限,则存在一个所有任务的平均负载都不小于Lk的周期。
在以下描述中将会证实,只要任务k违反截止期限,则存在一个所有任务的平均负载都不小于Lk的周期。
如果用Tk’表示任务违反截止期限的时间,由此证实在在周期[Tk’-DK,Tk′)中,所有任务的平均负载都不小于Lk,这样即可满足需要。
图9显示了这样一种情况,其中任务是在任务k违反截止期限之前的周期[Tk’-DK,Tk’)中执行的。在图9中,横轴表示时间,纵轴表示所有任务所使用的处理器数目。此外,在图9中,双阴影线部分表示任务k的执行过程,单阴影线部分表示其他任务的执行过程。Tk’是任务k可能违反截止期限的时间,[Tk’-DK,Tk’)是任务k的相对截止期限周期。
同样,在这个图中,在周期[Tk′-DK,Tk′)中将会执行任务k中包含的两个工作,并且工作的总的执行周期x是(x1+x2)(x=x1+x2)。
当任务k在Tk′违反截止期限时,这时x小于任务k的处理时间Ck。由此可以理解,在从Dk中减去x所得到的时间中,用于处理任务k的Mk个处理器是不能使用的。换句话说,至少使用了(M-Mk+1)个处理器来执行任务k之外的其他任务。
从上文中可以清楚了解,在周期[Tk’-DK,Tk1)中,所有任务的平均负载都不小于以下表达式(5)所给出的值:
{Mk*x+(M-Mk+1)(Dk-x)}/Dk                      (5)
由于任务k的执行周期x是0≤x≤Ck,因此,从表达式(5)中获取的最小值是:
如果Mk≤{M+1)/2,
那么(M-Mk+1)-(M-2Mk+l)Ck/Dk
如果(M+1)/2<Mk,
那么M-Mk+1
这些结果值全都等于Lk。
从上文中可以证实,在任务k违反截止期限时,这时必然存在一个平均负载不小于Lk的周期。
此外,从上文中可以理解,Lk对应于一个在任务k中可能违反截止期限的最小平均负载。当任务k违反截止期限的时候,在违反截止期限之前的周期中(例如任务k的相对截止期限周期),平均负载不小于Lk。
现在将对如何设定参考平均负载周期进行描述。
在本实施例中,当任务k违反截止期限时,违反截止期限的时间是由Tk′表示的,这时会将平均负载不小于Lk的周期[Tk’-Δk’,Tk′)中包含的最长周期设定成参考平均负载周期。当任务k违反截止期限的时候,这时必然存在一个平均负载不小于Lk的周期,由此必然存在一个参考平均负载周期。
图10显示了参考平均负载周期的一个实例。
在图10中,横轴表示时间,纵轴表示平均负载。波浪线表示的是在周期[T,Tk′)中,平均负载与时间T之间的关系。周期[T,Tk’)中的平均负载是在时间点T指示的。例如,在时间点Tk′-Dk表示的平均值即为周期[Tk’-Dk,Tk′)中的平均值。同样,在时间点Tk表示的平均值即为周期[Tk,Tk′)中的平均值。在图10中,周期[Tk,Tk’)是那些平均负载不小于Lk的周期中的一个最长周期,并且在这里将其设定成参考平均负载周期。
在本实施例中,Uk,i是如下设定的:
(1)如果Mk≤(M+l)/2,
(1-1)当Mi<(M+1)/2时,
(1-1-1)如果Xk,i≤0,
那么Uk,i=Ci/Ti{l+{Ti-Di)/Dk}+Ci/Dk;
(1-1-2)如果0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;
(1-1-3)如果Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{l+{Ti-Di)/Dk};
(1-2)当Mi=(M+1)/2时,
(1-2-1)如果Mk≠(M+1)/2,
(1-2-1-1)如果Ck/Dk<1/2,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk}+Ci/Dk;
(1-2-1-2)如果1/2≤Ck/Dk,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk};
(1-2-2)如果Mk=(M+1)/2,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk};
(1-3)当(M+1)/2<Mi时,
(1-3-1)如果Xk,i≤0,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk};
(1-3-2)如果0<Xk,i,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk}+Ci/Dk;
(2)如果(M+1)/2<Mk,
(2-1)当Mi<(M+1)/2时,
(2-1-1)如果Yk,i<Ci/Ti,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk}+(Ci-Yk,i*Ti)/Dk;
(2-1-2)如果Ci/Ti≤Yk,i,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk};
(2-2)当(M+1}/2≤Mi时,
(2-2-1)如果Mi≤Mk,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk};
(2-2-2)如果Mk<Mi,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk}+Ci/Dk
其中:
Xk,i={Mk-Mi+(M-2Mk+l)Ck/Dk}/(M-2Mi+1)
Yk,i=(Mk-Mi)/(M-2Mi+1)
此外,在以上关于Uk,i的表达式中,在各个阶段安排了需要同时满足的多个条件。例如,以下表达式
“(1)如果Mk≤(M+l)/2,
(1-1)在Mi<(M+1)/2时,
(1-1-1)如果Xk,i≤0,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk}+Ci/Dk;
(1-1-2)如果0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk”
意味着以下两种情况A和B:
A.(1)如果Mk≤(M+l)/2,(1-1)如果Mi<(M+1)/2,以及(1-1-1)如果Xk,i≤0,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk}+Ci/Dk;以及
B.(1)如果Mk≤(M+l)/2,(1-1)如果Mi<(M+l)/2,以及(1-1-2)如果0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{l+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk″。
在以下描述中同样使用了与上述表述方式相同的表述方式。
正如在对任务k违反截止期限时的条件Lk<Uk所进行的粗略说明中所描述的那样,在这里将会选择Uk,以使任务i在参考平均负载周期中的平均单负载时间必定不大于Uk,i(这样一来,如果i=k,那么任务i的平均单负载时间必定小于Uk,i)。
在以下描述中将会证明,当任务k违反截止期限时,Uk,i不会小于任务i在参考平均负载周期中的平均单负载时间(如果i=k,则Uk,i大于任务i的平均单负载时间)。
图11显示了任务i在任务k的参考平均负载周期中的一个执行实例。
在图11中,横轴表示时间,纵轴表示处理器。并且在这里假设处理器总数为3,周期[Tk,Tk+Δk)是任务k的参考平均负载周期。
此外还假设在任务i中包含了(n+1)个工作,而任务i的截止期限则落入参考平均负载周期[Tk,Tk+Δk)中。
此外,假设包含在(n+1)个工作中的第一个工作是在时间点Tk-Φ开始执行的,并且会在参考平均负载周期[Tk,Tk+Δk)内持续一个周期εi(≤Ci)。此外,假设包含在(n+1)个工作中的最后一个工作是在时间点(Tk+Δk-ψ)开始执行,并且在参考平均负载周期[Tk,Tk+Δk)内持续一个周期δi(如果i=k,δi<Ci;并且如果i≠k,δi≤Ci)。
在参考平均负载周期[Tk,Tk+Δk)中,任务i的平均单负载时间是由{εi+(n-1)*Ci+δi}/Δk给出的。
如果i=k,
那么{εi+(n-1)*Ci+δi}/Δk<(εi+n*Ci)/Δk
如果i≠k,
那么{εi+(n-1)*Ci+δi}/Δk≤(εi+n*Ci)/Δk
相应地,如果证明(εi+n*Ci)/Δk不大于Uk,则可以满足需要。
为此目的,在这里通过以下过程来计算一个值,这个值不小于(εi+n*Ci)/Δk的最大值:
(1)获取最大化(εi+n*Ci)/Δk的条件;
(2)计算“不小于εi的最大值的值”;以及
(3)计算“不小于(εi+n*Ci)/Δk的最大值的值”。
《用于最大化(εi+n*Ci)/Δk的条件》
首先将要获取的是用于最大化(εi+n*Ci)/Δk的条件。
对包含在(n+1}个工作中的最后一个开始的工作而言,如果其绝对截止期限尽可能接近[Tk+Δk),也就是说,在图11中,如果ψ尽可能接近Di,那么(εi+n*Ci)/Δk将会是最大的。
从假设(εi+n*Ci)/Δk在ψ=Di+d(d>0)的周期[Tk,Tk+Δk)中最大的事实中可以证实一种不合理的情况,其中与周期[Tk,Tk+Δk)相比,在周期[Tk-d/2,Tk+Δk-d/2)中,(εi+n*Ci)/Δk会更高一些。
此外,如果ψ尽可能接近Di,那么n将会尽可能接近(Δk-Di+Φ)/Ti。
《计算不小于εi的最大值的值》
随后计算的是不小于εi的最大值的值。
在这里假设0<εi。
图12显示的是周期[Tk-Φ,Tk)中的任务执行实例。
在图12中,横轴表示时间,纵轴表示任务使用的处理器数目。在图12的图形中,双阴影线部分表示任务i的执行过程,单阴影线部分表示其他任务的执行过程。对图12而言,任务i是在周期[Tk-Φ,Tk)内的时间(Ci-εi)中执行的。
从图中可以理解,在将(Ci-εi)与Φ相减所得到的时间(Φ-Ci+εi)中,处理任务i所需要的Mi个处理器是不能使用的。换句话说,至少使用了(M-Mi+1)个处理器来执行任务i之外的其他任务。
从这个事实中可以发现,包含在周期[Tk-Φ,Tk)中的负载不小于{Mi*(Ci-εi)+(M-Mi+1)(Φ-Ci+εi)},并且其中包含在周期[Tk-Φ,Tk)中的负载同样包含在周期[Tk-Φ,Tk+Δk)的总的负载中。
依照参考平均负载周期的定义,参考平均负载周期是平均负载不小于Lk的候选周期[Tk’-Δk’,Tk’)中的最长的一个周期,因此{Mi*(Ci-εi)+(M-Mi+1)(Φ-Ci+εi)}/Φ要小于参考平均负载。
{Mi*(Ci-εi)+(M-Mi+1)(Φ-Ci+εi)}/Φ<Lk             (6)
在上述不等式中,有必要考虑以下条件:
Xk,i={Mk-Mi+(M-2Mk+l)Ck/Dk}/(M-2Mi+1)
Yk,i=(Mk-Mi)/(M-2Mi+1)
在这种情况下,在不等式(6)中:
(1)当Mk≤(M+1)/2时,
(1-1)如果Mi<(M+1)/2,
那么εi<Ci-Xk,i*Φ;
(1-2)如果Mi=(M+1)/2,
(1-2-1)如果Mk≠(M+1)/2,
那么Ck/Dk<1/2;
(1-2-2)如果Mk=(M+1)/2,
那么0<0;
(1-3)如果(M+1)/2<Mi,
那么Ci-Xk,i*Φ<εi;
(2)当(M+1)/2<Mk时,
(2-1)如果Mi<(M+1)/2,
那么εi<Ci-Yk,i*Φ;
(2-2)如果Mi=(M+1)/2,
那么Mk<Mi=(M+1)/2;
(2-3)如果(M+l)/2<Mi,
那么Ci-Yk,i*Φ<εi
上述结果包含了诸如0<0之类的不等式,这种不等式始终是错误的。这意味着0<εi这个假设本身就是错误的。如果将关系0≤εi≤Ci添加到结果中,则可以用如下方式来表示εi:
(1)当Mk≤(M+1)/2时,
(1-1)如果Mi<(M+l)/2,
(1-1-1)如果Xk,i≤0,
那么εi≤Ci;
(1-1-2)如果0<Xk,i*Φ<Ci,
那么εi<Ci-Xk,i*Φ;
(1-1-3)如果Ci≤Xk,i*Φ,
那么εi=0;
(1-2)如果Mi=(M+1)/2,
(1-2-1)如果Mk≠(M+1)/2,
(1-2-1-1)如果Ck/Dk<1/2,
那么εi≤Ci;
(1-2-1-2)如果1/2≤Ck/Dk,
那么εi=0;
(1-2-2)如果Mk=(M+1)/2,
那么εi=0;
(1-3)如果(M+1)/2<Mi,
(1-3-1)如果Xk,i≤0,
那么εi=0;
(1-3-2)如果0<Xk,i,
那么εi≤Ci
(2)当(M+1)/2<Mk时,
(2-1)如果Mi<(M+1)/2,
(2-1-1)如果Yk,i≤0,
那么εi≤Ci;
(2-1-2)如果0<Yk,i*Φ<Ci,
那么εi<Ci-Yk,i*Φ;
(2-1-3)如果Ci≤Yk,i*Φ,
那么εi=0;
(2-2)如果Mi=(M+1)/2,
那么εi=0;
(2-3)如果(M+1)/2<Mi,
(2-3-1)如果Yk,i≤0,
那么εi=0;
(2-3-2)如果0<Yk,i,
那么εi≤Ci
如上所述,在这里将会计算不小于εi的最大值的值。
《计算不小于(εi+n*Ci)/Δk的最大值的值》
最后将要计算的是不小于(εi+n*Ci)/Δk的最大值的值。
除了如上获取的不小于εi的最大值的值之外,如果使用了关系n=(Δk-Di+Φ)/Ti,Dk≤Δk以及0<Φ≤Ti,则可以建立下列不等式:
(1)当Mk≤(M+1)/2时,
(1-1)如果Mi<(M+1)/2,
(1-1-1)如果Xk,i≤0,
那么(εi+n*Ci)/Δk≤Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1-1-2)如果0<Xk,i<Ci/Ti,
那么(εi+n*Ci)/Δk≤Ci/Ti{l+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;
(1-1-3)如果Ci/Ti≤Xk,i,
那么(εi+n*Ci)/Δk≤Ci/Ti{l+(Ti-Di)/Dk};
(1-2)如果Mi=(M+1)/2,
(1-2-1)如果Mk≠(M+1)/2,
(1-2-1-1)如果Ck/Dk<1/2,
那么(εi+n*Ci)/Δk≤Ci/Ti{l+(Ti-Di)/Dk}+Ci/Dk;
(1-2-1-2)如果1/2≤Ck/Dk,
那么(εi+n*Ci)/Δk≤Ci/Ti{1+(Ti-Di)/Dk};
(1-2-2)如果Mk=(M+1)/2,
那么(εi+n*Ci)/Δk≤Ci/Ti{l+(Ti-Di)/Dk};
(1-3)如果(M+1)/2<Mi,
(1-3-1)如果Xk,i≤0,
那么(εi+n*Ci)/Δk≤Ci/Ti{l+(Ti-Di)/Dk};
(1-3-2)如果0<Xk,i,
那么(εi+n*Ci)/Δk≤Ci/Ti{l+{Ti-Di)/Dk}+Ci/Dk;
(2)当(M+1)/2<Mk时,
(2-1)如果Mi<(M+l)/2,
(2-1-1)如果Yk,i<Ci/Ti,
那么(εi+n*Ci)/Δk≤Ci/Ti{l+(Ti-Di)/Dk}+(Ci-Yk,i*Ti)/Dk;
(2-1-2)如果Ci/Ti≤Yk,i,
那么(εi+n*Ci)/Δk≤Ci/Ti{l+(Ti-Di)/Dk};
(2-2)如果(M+l)/2≤Mi,
(2-2-1)如果Mi≤Mk,
那么(εi+n*Ci)/Δk≤Ci/Ti{1+(Ti-Di)/Dk};
(2-2-2)如果Mk<Mi,
那么(εi+n*Ci)/Δk≤Ci/Ti{l+(Ti-Di)/Dk}+Ci/Dk
从上文中可以证实:(εi+n*Ci)/Δk不会大于Uk,i。
如上所述,已经证实的是,只要任务违反截止期限,则条件Lk<Uk就是成立的。
现在将参考图13的流程图来描述可调度性确定单元101执行的整个可调度性确定处理。
可调度性确定单元101通过操作***来获取与所调度的每一个任务相对应的任务参数信息以及处理器总数(步骤S501)。随后,可调度性确定单元101根据与任务k相对应的任务参数信息以及处理器总数来计算可能在任务k中违反截止期限的最小平均负载(步骤S502)。而最小平均负载即为上述Lk。
此后,可调度性确定单元101根据与每一个任务相对应的任务参数信息来计算所有任务的总的最大平均负载,其中所有任务都是在一个介于平均负载不小于Lk的最早时间到任务k可能违反截止期限的时间之间的周期中产生的(步骤S503)。而总的负载即为上述Uk。
可调度性确定单元101通过比较Lk以及Uk来确定任务k是否可能违反截止期限(步骤S504)。在改变任务k的同时(步骤S504),可调度性确定单元101将会重复步骤S502到S504,并且确定任何一个任务是否可能违反截止期限。如果单元101确定在任何任务中都不会违反截止期限,则确定这些任务是可以调度的。
如上所述,在本实施例中,Lk与Uk是在考虑了处理器总数以及各个任务所用处理器数目的情况下定义的,并且它们是以任务为单位而被获取的,由此可以确定Lk<Uk是否成立。这个可调度性确定方法只需要很短的计算时间,即使在需要将多个处理器同时分配给单个任务的时候,这种方法也是适用的。
此外,在本方法中,由于使用了最长的一个参考平均负载周期作为参考平均负载周期,因此提高了可调度性确定结果的精确度。
此外,由于实践中会为单个任务所用处理器数目设定一个上限,因此,即使仅仅将满足(i)Mk≤(M+l)/2以及(ii)Mi<(M+1)/2这两个条件的值定义为Uk,i,也还是可以从本发明中得到满足需要的优点。
在上述实施例中,如果至少一个任务满足Lk<Uk,则确定不能使用EDF算法来执行实时调度。作为选择,如果所有任务都满足Uk≤Lk,则确定可以执行实时调度。
现在将参考图14的流程图来描述在后一种情况中执行的可调度性确定处理。
可调度性确定单元101通过操作***来获取与所调度的各个任务相对应的任务参数信息以及处理器总数(步骤S601)。随后,可调度性确定单元101以任务k为单位来获取两个用于检查违反截止期限的可能性的值,即Lk和Uk(步骤S602)。特别地,在步骤S602,可调度性确定单元101首先获取的是可能在目标任务k中违反截止期限的最小平均负载(Lk)。此后,可调度性确定单元101根据与每一个任务相对应的任务参数信息来计算所有任务的总的最大平均负载(Uk),其中所有任务都是在一个介于平均负载不小于Lk的最早时间到任务k可能违反截止期限的时间之间的周期(参考平均负载周期)中产生的。
可调度性确定单元101重复执行步骤S602,同时改变目标任务(步骤S603和S604),由此确定每一个任务的Lk和Uk。此后,可调度性确定单元101确定每一个任务是否满足条件Uk≤Lk(步骤S605)。如果确定所有任务都满足该条件,则可调度性确定单元101确定不能执行调度(步骤S607)。
现在将通过参考图15的流程图来描述可调度性确定处理的另一个实例。
在这个实例中使用到了数值Xk,它表示的是在使用EDF算法调度任务k时违反截止期限的可能性,并且其中将Xk定义成Xk=Uk-Lk。
可调度性确定单元101通过操作***来获取与所调度的各个任务相对应的任务参数信息以及处理器总数(步骤S701)。随后,可调度性确定单元101获取用于表示任务k违反截止期限的可能性的值Xk(步骤S702)。特别地,在步骤S702,可调度性确定单元101首先获取的是可能在目标任务k中违反截止期限的最小平均负载(Lk)。此后,可调度性确定单元101根据与各个任务相对应的任务参数信息来计算所有任务的总的最大平均负载(Uk),其中所述所有任务都是在一个介于平均负载不小于Lk的最早时间到任务k可能违反截止期限的时间之间的周期(参考平均负载周期)中产生的。通过使用由此获取的Uk和Lk,可以计算表示任务k可能违反截止期限的值Xk。
可调度性确定单元101重复执行步骤S702,同时改变目标任务(步骤S703和S704),由此为每一个任务确定Xk。
此后,可调度性确定单元101还确定与各个任务相对应的Xk是否是一个正值(步骤S705)。如果确定与所有任务相对应的Xk值都是正值,则可调度性确定单元101确定可以执行调度(步骤S706)。如果它们不是正值,则单元101确定不能执行调度(步骤S707)。
在本实施例中使用的可调度性确定方法是通过计算机程序实现的。因此,借助于存储计算机程序的计算机可读记录介质,可以将计算机程序安装到计算机中,由此可以非常容易地实现实施例的优点。
本领域技术人员很容易想到附加的优点和修改。因此,范围更宽的本发明并不局限于这里显示和描述的特定细节和典型实施例。相应地,在不脱离附加权利要求及其等价物所定义的广义发明概念的实质或范围的情况下,各种修改都是可行的。

Claims (18)

1.一种用于确定是否能使用多个处理器来对多个任务执行实时调度的可调度性确定方法,所述方法包括:计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数),其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k和任务i,并且N表示的是任务的数目;以及
如果对于所有k,所有任务都满足多个条件:∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则确定可以使用处理器来对任务执行实时调度,
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk;以及
Uk,i是如下表示的:
(1)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;以及
(3)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk},
其中M表示处理器数目,Ti表示包含在任务中的任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1)。
2.根据权利要求1的方法,其中实时调度包括使用最早截止期限优先算法执行的实时调度。
3.一种用于确定是否能使用多个处理器来对多个任务执行实时调度的可调度性确定方法,所述方法包括:
计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数),其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k,N表示任务的数目;以及
如果对于所有k,所有任务都满足多个条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则确定可以使用处理器来对任务执行实时调度,
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk
(2)如果(M+1)/2<Mk,
那么Lk=M-Mk+1;以及
Uk,i则是如下表示的:
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk≠(M+1)/2,
并且如果Ck/Dk<1/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk=(M+1)/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果0<Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Yk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Yk,i*Ti)/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Yk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mi≤Mk,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mk<Mi,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
其中M表示处理器数目,Ti表示包含在任务中的任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1),Yk,i=(Mk-Mi)/(M-2Mi+1)。
4.根据权利要求3的方法,其中实时调度包括使用最早截止期限优先算法执行的实时调度。
5.一种用于确定是否可以使用多个处理器来对多个任务执行实时调度的可调度性确定方法,所述方法包括:
(1)获取任务参数信息,其中所述信息表示每一个任务的时间间隔、所述每一个任务同时使用的一个或多个处理器的数目、所述每一个任务的处理时间以及所述每一个任务的相对截止期限;
(2)基于与所检测任务相对应的任务参数信息以及处理器总数来计算一个最小平均负载,其中所述最小平均负载引起这些任务中包含的、将被检测是否违反截止期限的任务违反截止期限;
(3)基于与所述每一个任务相对应的任务参数信息来计算任务的总的最大平均负载,其中所述任务是在一个介于平均负载不小于计算得到的最小平均负载的最早时间与所检测的任务违反截止期限的时间之间的周期中产生的;
(4)重复执行(2)计算最小平均负载以及(3)计算总数,同时改变所检测的任务;以及
(5)如果计算得到的总数大于计算得到的最小平均负载,则确定可以使用处理器来对任务执行实时调度。
6.根据权利要求5的方法,其中实时调度包括使用最早截止期限优先算法执行的实时调度。
7.一种实时***,包括:
多个处理器;
一个计算单元,被配置成为作为实时调度目标的多个任务中的每一个任务计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数),其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k,N表示任务的数目;
一个确定单元,被配置成如果对于所有k,所有任务都满足多个条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则确定可以使用处理器来对任务执行实时调度;以及
一个执行单元,被配置成如果确定单元确定可以执行实时调度,则使用处理器来对任务执行实时调度;
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk;以及
Uk,i是如下表示的:
(1)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;以及
(3)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk},
其中M表示处理器数目,Ti表示包含在任务中的一个任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1)。
8.根据权利要求7的实时***,其中执行单元包括一个调度执行单元,该单元被配置成使用最早截止期限优先算法来执行实时调度。
9.一种实时***,包括:
多个处理器;
一个计算单元,被配置成计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数),其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k,N表示任务的数目;
一个确定单元,被配置成如果对于所有k,所有任务都满足多个条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则确定可以使用处理器来对任务执行实时调度;以及
一个执行单元,被配置成如果确定单元确定可以执行实时调度,则使用处理器来对任务执行实时调度;
其中:Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk
(2)如果(M+1)/2<Mk,
那么Lk=M-Mk+1;以及
Uk,i则是如下表示的:
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk≠(M+1)/2,
并且如果Ck/Dk<1/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk=(M+1)/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果0<Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Yk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Yk,i*Ti)/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Yk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mi≤Mk,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mk<Mi,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
其中M表示处理器数目,Ti表示包含在任务中的一个任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1),Yk,i=(Mk-Mi)/(M-2Mi+1)。
10.根据权利要求9的实时***,其中执行单元包括一个调度执行单元,该单元被配置成使用最早截止期限优先算法来执行实时调度。
11.一种实时***,包括:
多个处理器;
一个获取单元,被配置成获取任务参数信息,其中所述信息表示每一个任务的时间间隔、所述每一个任务同时使用的包括在处理器中的一个或多个处理器的数目、所述每一个任务的处理时间以及所述每一个任务的相对截止期限;
一个第一计算单元,被配置成基于与所检测任务相对应的任务参数信息以及处理器总数来计算一个最小平均负载,其中所述最小平均负载引起这些任务中包含的、将被检测是否违反截止期限的任务违反截止期限;
一个第二计算单元,被配置成基于与所述每一个任务相对应的任务参数信息来计算任务的最大平均负载总数,其中所述任务是在一个介于平均负载不小于计算得到的最小平均负载的最早时间与所检测的任务违反截止期限的时间之间的周期中产生的;
一个执行单元,被配置成如果计算得到的总数大于计算得到的最小平均负载,则使用处理器来执行任务的实时调度。
12.根据权利要求11的实时***,其中执行单元包括一个调度执行单元,该单元被配置成使用最早截止期限优先算法来执行实时调度。
13.一种程序,该程序保存在计算机可读介质中,并且执行一个用于确定是否能使用多个处理器来对多个任务执行实时调度的可调度性确定处理,包括:
用于指示计算机计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数)的装置,其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k,N表示任务的数目;以及
用于如果对于所有k,任务全都满足多个条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N)时,指示计算机确定可以使用处理器来对任务执行实时调度的装置;
其中:
Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk;以及
Uk,i是如下表示的:
(1)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;以及
(3)如果Mk≤(M+1)/2,Mi<(M+1)/2,并且Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk},
其中M表示处理器数目,Ti表示包含在任务中的一个任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1)。
14.根据权利要求13的程序,其中实时调度是使用最早截止期限优先算法执行的。
15.一种程序,该程序保存在计算机可读介质中,并且执行一个用于确定是否能使用多个处理器来对多个任务执行实时调度的可调度性确定处理,包括:
用于指示计算机计算Lk和∑i=1...NMi*Uk,i(1≤k,i≤N;k,i:整数)的装置,其中Lk对应于任务中包含的一个任务k,Mi表示任务i同时使用的一个或多个处理器的数目,Uk,i对应于任务k,N表示任务数目;以及
用于如果对于所有k,所有任务都满足多个条件∑i=1...NMi*Uk,i≤Lk(1≤k≤N),则指示计算机确定可以使用处理器来对任务执行实时调度的装置,
其中:
Lk对应于一个将被检测满足其中一个相应条件的任务k,并且Lk是如下表示的:
(1)如果Mk≤(M+1)/2,
那么Lk=(M-Mk+1)-(M-2Mk+1)Ck/Dk
(2)如果(M+1)/2<Mk,
那么Lk=M-Mk+1;以及
Uk,i则是如下表示的:
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果0<Xk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Xk,i*Ti)/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk≠(M+1)/2,
并且如果Ck/Dk<1/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(1)如果Mk≤(M+1)/2,
并且如果Mi=(M+1)/2,
并且如果Mk=(M+1)/2,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果Xk,i≤0,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(1)如果Mk≤(M+1)/2,
并且如果(M+1)/2<Mi,
并且如果0<Xk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Yk,i<Ci/Ti,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+(Ci-Yk,i*Ti)/Dk;
(2)如果(M+1)/2<Mk,
并且如果Mi<(M+1)/2,
并且如果Ci/Ti≤Yk,i,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mi≤Mk,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk};
(2)如果(M+1)/2<Mk,
并且如果(M+1)/2≤Mi,
并且如果Mk<Mi,
那么Uk,i=Ci/Ti{1+(Ti-Di)/Dk}+Ci/Dk;
其中M表示处理器数目,Ti表示包含在任务中的一个任务i的时间间隔,Ci表示用于处理任务i的处理时间,Di表示任务i的相对截止期限,以及Xk,i={Mk-Mi+(M-2Mk+1)Ck/Dk}/(M-2Mi+1),Yk,i=(Mk-Mi)/(M-2Mi+1)。
16.根据权利要求15的程序,其中实时调度使用最早截止期限优先算法执行。
17.一种程序,该程序保存在计算机可读介质上,并且执行一个用于确定是否能使用多个处理器来对多个任务执行实时调度的可调度性确定处理,包括:
(1)用于指示计算机获取任务参数信息的装置,其中所述信息表示每一个任务的时间间隔、所述每一个任务同时使用的一个或多个处理器的数目、所述每一个任务的处理时间以及所述每一个任务的相对截止期限;
(2)用于指示计算机基于与所检测任务相对应的任务参数信息以及处理器总数来计算一个最小平均负载的装置,其中所述最小平均负载引起这些任务中包含的、将被检测是否违反截止期限的任务违反截止期限;
(3)用于指示计算机基于与所述每一个任务相对应的任务参数信息来计算任务的最大平均负载总数的装置,其中所述任务是在一个介于平均负载不小于计算得到的最小平均负载的最早时间与所检测的任务违反截止期限的时间之间的周期中产生的;
(4)用于指示计算机重复执行(2)计算最小平均负载以及(3)计算总数,同时改变所检测的任务的装置;以及
(5)用于指示计算机如果计算得到的总数大于计算得到的最小平均负载,则确定可以使用处理器来执行任务的实时调度的装置。
18.根据权利要求17的程序,其中实时调度使用最早截止期限优先算法执行。
CNB2005100592984A 2004-03-26 2005-03-25 实时可调度性确定方法和实时*** Expired - Fee Related CN100357894C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004093020 2004-03-26
JP2004093020A JP4016010B2 (ja) 2004-03-26 2004-03-26 リアルタイムスケジューリング可能性判定方法およびリアルタイムシステム

Publications (2)

Publication Number Publication Date
CN1673965A true CN1673965A (zh) 2005-09-28
CN100357894C CN100357894C (zh) 2007-12-26

Family

ID=35046527

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100592984A Expired - Fee Related CN100357894C (zh) 2004-03-26 2005-03-25 实时可调度性确定方法和实时***

Country Status (3)

Country Link
US (2) US7797703B2 (zh)
JP (1) JP4016010B2 (zh)
CN (1) CN100357894C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100416463C (zh) * 2006-10-12 2008-09-03 浙江大学 面向嵌入式***低功耗实时任务参数模型调度方法
CN100465857C (zh) * 2006-10-12 2009-03-04 浙江大学 一种面向嵌入式***低功耗实时任务调度的简化方法

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4074296B2 (ja) * 2005-03-25 2008-04-09 株式会社東芝 スケジューリング可能性判定方法、リアルタイムシステム及びプログラム
JP2007133723A (ja) * 2005-11-11 2007-05-31 Hitachi Ltd マルチプロセッサ、タスクスケジューリング方法、及びコンパイラ
JP4523921B2 (ja) * 2006-02-24 2010-08-11 三菱電機株式会社 計算機リソース動的制御装置
US8584122B2 (en) * 2006-03-31 2013-11-12 Ebay Inc. Batch scheduling
TWI472574B (zh) * 2006-08-24 2015-02-11 Polyplastics Co 非對稱電子零件
JP2009064388A (ja) * 2007-09-10 2009-03-26 Fourlink Systems:Kk タスク制御システム
US8789059B2 (en) * 2007-11-02 2014-07-22 International Business Machines Corporation Dynamic scheduling feasibility analysis of event-driven applications based on reducing tasks of overlapping events
JP5165492B2 (ja) * 2008-05-23 2013-03-21 ポリプラスチックス株式会社 平面状コネクター
US20090313631A1 (en) * 2008-06-11 2009-12-17 Fabio De Marzo Autonomic workload planning
WO2010089900A1 (en) * 2009-02-05 2010-08-12 Nec Corporation Method, system and program for deadline constrained task admission control and scheduling using genetic approach
TW201132747A (en) * 2009-11-16 2011-10-01 Sumitomo Chemical Co Liquid crystalline polyester composition for connector and connector using the same
US8856807B1 (en) * 2011-01-04 2014-10-07 The Pnc Financial Services Group, Inc. Alert event platform
WO2013074476A1 (en) 2011-11-15 2013-05-23 Ticona Llc Low naphthenic liquid crystalline polymer composition
KR102098411B1 (ko) 2011-11-15 2020-04-07 티코나 엘엘씨 콤팩트 카메라 모듈
US8926862B2 (en) 2011-11-15 2015-01-06 Ticona Llc Low naphthenic liquid crystalline polymer composition for use in molded parts with a small dimensional tolerance
US9353263B2 (en) 2011-11-15 2016-05-31 Ticona Llc Fine pitch electrical connector and a thermoplastic composition for use therein
TWI534253B (zh) 2011-11-15 2016-05-21 堤康那責任有限公司 具有改良可燃性效能之富含環烷之液晶聚合物組合物
US8938739B2 (en) * 2012-06-02 2015-01-20 Texas Instruments Incorporated Resource sharing aware task partitioning for multiprocessors
US9284435B2 (en) 2012-10-16 2016-03-15 Ticona Llc Antistatic liquid crystalline polymer composition
KR101399758B1 (ko) 2012-11-27 2014-05-27 숭실대학교산학협력단 다수의 슬레이브 장치에서 실행되는 태스크의 주기 스케쥴링 장치 및 방법
WO2014088700A1 (en) 2012-12-05 2014-06-12 Ticona Llc Conductive liquid crystalline polymer composition
KR20140080058A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말
JP2016510830A (ja) 2013-03-13 2016-04-11 ティコナ・エルエルシー 帯電防止液晶ポリマー組成物
WO2015157050A1 (en) 2014-04-09 2015-10-15 Ticona Llc Camera module
JP2017513977A (ja) 2014-04-09 2017-06-01 ティコナ・エルエルシー 静電防止ポリマー組成物
KR102309429B1 (ko) * 2017-03-20 2021-10-07 현대자동차주식회사 차량 및 그 제어 방법
WO2019112847A1 (en) 2017-12-05 2019-06-13 Ticona Llc Aromatic polymer composition for use in a camera module
CN109947543B (zh) * 2019-03-06 2022-11-01 华侨大学 一种基于单检查点机制的容错能耗优化方法
KR102252079B1 (ko) * 2019-09-20 2021-05-13 인천대학교 산학협력단 실시간 시스템을 위한 실시간성 분석 장치 및 그 동작 방법
KR102264205B1 (ko) * 2019-09-20 2021-06-10 인천대학교 산학협력단 실시간 시스템에서의 작업 할당 스케줄링이 가능한지 여부를 판정할 수 있는 실시간성 분석 장치 및 그 동작 방법
CN115700014A (zh) 2020-02-26 2023-02-03 提克纳有限责任公司 电路结构
EP4110610A4 (en) 2020-02-26 2024-03-27 Ticona LLC POLYMER COMPOSITION FOR ELECTRONIC DEVICE
CN115151607A (zh) 2020-02-26 2022-10-04 提克纳有限责任公司 电子器件
US11728065B2 (en) 2020-07-28 2023-08-15 Ticona Llc Molded interconnect device
JP7193771B1 (ja) 2021-06-30 2022-12-21 三菱電機株式会社 スケジューリング方法及びスケジューリング設計支援装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2579742B2 (ja) 1995-02-20 1997-02-12 ポリプラスチックス株式会社 射出成型用組成物
US6466962B2 (en) * 1995-06-07 2002-10-15 International Business Machines Corporation System and method for supporting real-time computing within general purpose operating systems
JP3453981B2 (ja) 1996-01-26 2003-10-06 東レ株式会社 ファインピッチコネクター成形品用液晶性樹脂組成物およびそれからなるファインピッチコネクター成形品。
JP3683080B2 (ja) 1997-09-25 2005-08-17 三菱エンジニアリングプラスチックス株式会社 樹脂組成物、並びに中空部を有する射出成形品及び射出成形方法
JP2000026743A (ja) 1998-07-15 2000-01-25 Toray Ind Inc 液晶性樹脂組成物
JP4118425B2 (ja) 1998-12-18 2008-07-16 ポリプラスチックス株式会社 コネクター用液晶性ポリマー組成物およびコネクター
WO2000075159A1 (en) * 1999-06-03 2000-12-14 Cornell Research Foundation, Inc. FUNGAL EXO-β 1,3 GLUCOSIDASE ENCODING DNA MOLECULE AND ITS USE IN CONTROLLING FUNGI IN PLANTS
JP4450902B2 (ja) * 1999-10-08 2010-04-14 ポリプラスチックス株式会社 液晶性ポリマー組成物
JP2001350639A (ja) * 2000-06-06 2001-12-21 Atr Adaptive Communications Res Lab ソフトリアルタイムにおけるスケジューリング方法
JP2002194188A (ja) 2000-12-26 2002-07-10 Toray Ind Inc 難燃性液晶ポリエステル樹脂組成物
JP2002342097A (ja) * 2001-05-17 2002-11-29 Matsushita Electric Ind Co Ltd タスク割当可能時間決定装置及びタスク割当可能時間決定方法
AU2003248904A1 (en) * 2002-03-01 2003-09-16 Koninklijke Philips Electronics N.V. Timebox driven scheduling of software components in hard real-time systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100416463C (zh) * 2006-10-12 2008-09-03 浙江大学 面向嵌入式***低功耗实时任务参数模型调度方法
CN100465857C (zh) * 2006-10-12 2009-03-04 浙江大学 一种面向嵌入式***低功耗实时任务调度的简化方法

Also Published As

Publication number Publication date
US20050229177A1 (en) 2005-10-13
JP2005284351A (ja) 2005-10-13
US20070197706A1 (en) 2007-08-23
CN100357894C (zh) 2007-12-26
US7797703B2 (en) 2010-09-14
JP4016010B2 (ja) 2007-12-05
US7789670B2 (en) 2010-09-07

Similar Documents

Publication Publication Date Title
CN1673965A (zh) 实时可调度性确定方法和实时***
CN1186714C (zh) 高基除法器及方法
CN1280730C (zh) 不用存储单元收集装置及不用存储单元收集方法
CN1200571C (zh) 正交变换、逆正交变换方法及装置、编码、解码方法及装置
CN1576516A (zh) 涡轮叶片的翼面形状
CN1668996A (zh) 解大型连续性或离散性最佳化问题的动态方法
CN1017792B (zh) 翼型叶片
CN1427335A (zh) 电路组控制***
CN1580500A (zh) 涡轮喷嘴的翼面形状
CN1875345A (zh) 在编译过程中表示和检查程序组件的一致性的可扩展类型***
CN101040306A (zh) 伪随机数生成装置
CN1677286A (zh) 用于移动体的控制***
CN1126053C (zh) 文件检索方法、文件检索发送方法及装置
CN1727641A (zh) 用于燃气轮机的第二相的高效转子
CN1919604A (zh) 印刷装置、印刷方法及图象处理装置、图象处理方法
CN1253013C (zh) 预测装置、编码装置、逆预测装置、解码装置
CN1599445A (zh) 数据处理方法、数据处理装置
CN1879126A (zh) 平均维持插值运算电路、像素插值电路、平均维持插值运算方法及像素插值方法
CN1784498A (zh) 调控因子结合位点的基因组分布型绘制
CN1249594C (zh) 总线仲裁器
CN1828480A (zh) 输出***、设备管理装置以及设备管理程序、及输出方法
CN100336668C (zh) 打印***、装置及方法、打印请求装置及管理装置
CN1722176A (zh) 使用插补方法变换图像分辨率以及显示该变换图像
CN1219383C (zh) 一种实现用户业务远程验证拨号协议的编码和解码方法
CN1269077C (zh) 图象处理器以及图象处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071226

Termination date: 20140325