CN103189842B - 信息处理装置以及信息处理方法 - Google Patents

信息处理装置以及信息处理方法 Download PDF

Info

Publication number
CN103189842B
CN103189842B CN201080070002.8A CN201080070002A CN103189842B CN 103189842 B CN103189842 B CN 103189842B CN 201080070002 A CN201080070002 A CN 201080070002A CN 103189842 B CN103189842 B CN 103189842B
Authority
CN
China
Prior art keywords
thread
stand
electric
cpu
execution
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.)
Expired - Fee Related
Application number
CN201080070002.8A
Other languages
English (en)
Other versions
CN103189842A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN103189842A publication Critical patent/CN103189842A/zh
Application granted granted Critical
Publication of CN103189842B publication Critical patent/CN103189842B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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
    • 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/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

通过将第2线程的执行时间和第1线程的单位时间的待机电力相乘,来算出在第2线程之后执行第1线程时的第1线程的待机电力。而且,通过将第1线程的执行时间和所述第2线程的单位时间的待机电力相乘,来算出在第1线程之后执行第2线程时的第2线程的待机电力。比较第1线程的待机电力和第2线程的待机电力,基于比较结果来决定第1线程和第2线程的执行顺序。

Description

信息处理装置以及信息处理方法
技术领域
本发明涉及对线程的执行进行控制的信息处理装置、信息处理程序以及信息处理方法。
背景技术
以往,已知有一种在单核处理器***、多核处理器***的各CPU中,当被分配了多个线程时,例如根据按每个线程而定义的优先级来决定执行顺序的技术(第1现有技术)(例如参照下述专利文献1)。
另外,已知有一种在被分配了多个线程的情况下,利用轮叫(RoundRobin)方式以一定时间按顺序执行多个线程中各个线程的技术(第2现有技术)(例如参照下述专利文献2和下述非专利文献1)。
专利文献1:日本特开昭63-068934号公报
专利文献2:日本特开2000-276360号公报
非专利文献1:C.L.Liu,JamesW.LAYLAND,「SchedulingAlgorithmsforMultiprogramminginaHard-Real-TimeEnvironment」JournaloftheAssociationforComputingMachinery,Vol.20,No.1,January1973
然而,在第1现有技术中,存在当多个线程中的优先级低的线程的待机电力大时,消耗电力增加这一问题点。另外,在第2现有技术中,由于按一定时间来切换线程,所以暂时保存各线程的执行信息的CPU内的高速缓冲器会发生竞合。
例如,当在CPU中正在执行一个线程时,该一个线程的执行信息被保存在高速缓冲器上,但是如果从一个线程的执行向其他线程的执行切换,则该高速缓冲器内的一个线程的执行信息会被改写成其他线程的执行信息。接着,如果从其他线程的执行向一个线程的执行切换,则必须将该高速缓冲器内的其他线程的执行信息改写成一个线程的执行信息,存在着执行的性能劣化,吞吐量(throughput)降低这一问题点。
发明内容
本发明为了消除上述现有技术中的问题点,其目的在于,提供一种能够不降低吞吐量地实现低消耗电力化的信息处理装置、信息处理程序以及信息处理方法。
根据本发明的一个观点,提供一种检测未执行的第1线程和未执行的第2线程,通过将检测到的第2线程的执行时间和检测到的第1线程的单位时间的待机电力相乘,来算出在所述第2线程之后执行所述第1线程时的所述第1线程的待机电力,通过将所述第1线程的执行时间和所述第2线程的单位时间的待机电力相乘,来算出在所述第1线程之后执行所述第2线程时的所述第2线程的待机电力,并比较算出的第1线程的待机电力和算出的第2线程的待机电力,基于比较结果来决定所述第1线程和所述第2线程的执行顺序的信息处理装置、信息处理程序以及信息处理方法。
根据本信息处理装置、信息处理程序以及信息处理方法,起到能够不降低吞吐量地实现低消耗电力化这一效果。
附图说明
图1是表示本发明的一个实施例的说明图。
图2是第1线程被定义了执行期限时的说明图。
图3是表示信息处理装置的硬件的框图。
图4是表示线程表400的一例的说明图。
图5是表示分配管理表500的一例的说明图。
图6是信息处理装置300的功能框图。
图7是表示检测线程#0的生成的例子的说明图。
图8是表示分配管理表500的更新例的说明图。
图9是表示通过信息处理装置300进行的信息处理步骤的流程图(其1)。
图10是表示通过信息处理装置300进行的信息处理步骤的流程图(其2)。
图11是表示通过信息处理装置300进行的信息处理步骤的流程图(其3)。
图12是表示图9所示的执行顺序的决定处理(步骤S907)的详细处理步骤的流程图(其1)。
图13是表示图9所示的执行顺序的决定处理(步骤S907)的详细处理步骤的流程图(其2)。
图14是表示各OS进行线程分配时的信息处理步骤的流程图。
图15是表示各OS的线程结束时的信息处理步骤的流程图。
具体实施方式
以下参照说明书附图,详细地说明本发明所涉及的信息处理装置、信息处理程序以及信息处理方法的优选实施方式。
图1是表示本发明的一个实施例的说明图。在此,列举未执行的第1线程和未执行的第2线程为例来进行说明。在图1中,在执行第1线程和第2线程之前,按照执行顺序的每个组合来算出花费多少待机电力,基于算出结果来决定执行顺序。
首先,在(1)执行顺序是第2线程→第1线程的顺序的情况下,在第2线程的执行过程中第1线程处于待机状态。因此,第1线程的待机电力如下所述。
·第1线程的待机电力=第2线程的执行时间[ms]×第1线程的单位时间的待机电力[mW/ms]
接着,在(2)执行顺序是第1线程→第2线程的顺序的情况下,在第1线程的执行过程中第2线程处于待机状态。因此,第2线程的待机电力如下所述。
·第2线程的待机电力=第1线程的执行时间[ms]×第2线程的单位时间的待机电力[mW/ms]
而且,信息处理装置将第1线程的待机电力和第2线程的待机电力进行比较。如果第1线程的待机电力为第2线程的待机电力以上,则信息处理装置将执行顺序决定成第1线程→第2线程。如果第1线程的待机电力小于第2线程的待机电力,则信息处理装置将执行顺序决定成第2线程→第1线程。
图2是第1线程被定义了执行期限时的说明图。在图2中,以第1线程被定义了执行期限,第2线程未被定义执行期限为例来进行说明。在此,第1线程被定义了执行期限表示定义了从第1线程的生成时刻到第1线程的执行期限为止的时间。
在定义了从第1线程的生成时刻到第1线程的执行期限为止的时间(d)的情况下,判断当执行顺序为在第2线程之后执行第1线程时是否能够遵守第1线程的执行期限。即,判断下述关系能否成立。
·d-第1线程的执行时间>第2线程的执行时间
如果如图2所示,d-第1线程的执行时间>第2线程的执行时间成立,则如在图1中所述那样,信息处理装置按照执行顺序的每个组合来算出待机的线程的待机时间,决定执行顺序。另一方面,在d-第1线程的执行时间≤第2线程的执行时间的情况下,如果执行顺序是第2线程→第1线程,则由于无法遵守第1线程的执行期限,所以信息处理装置将执行顺序决定为第1线程→第2线程。
在本实施方式中,作为信息处理装置的一例列举了多核处理器***来进行说明。在此,在多核处理器***中,多核处理器是指搭载了多个核的处理器。只要搭载多个核即可,可以是搭载了多个核而成的单一处理器,也可以是并列单核处理器而成的处理器组。其中,在本实施方式中,为了简化说明,列举并列了单核处理器而成的处理器组为例进行说明。
(信息处理装置的硬件)
图3是表示信息处理装置的硬件的框图。在图3中,信息处理装置300具有CPU#0、CPU#1以及共享存储器302。CPU#0、CPU#1以及共享存储器302借助总线301彼此连接。
CPU#0具有高速缓冲器、寄存器以及核心(core)。CPU#1具有高速缓冲器、寄存器以及核心。CPU#0执行OS310,掌管信息处理装置的整体控制。OS310是主OS,具有对将线程分配给哪个CPU进行控制的功能,执行该CPU#0被分配的线程。CPU#1执行OS311。OS311是从OS,执行CPU#1被分配的线程。
具体而言,共享存储器302例如具有ROM(ReadOnlyMemory)、RAM(RandomAccessMemory)以及闪存ROM等。例如,闪存ROM储存起动程序(bootprogram),ROM储存应用程序软件,RAM被用作CPU#0~CPU#1的工作区域。通过共享存储器302所储存的程序被加载到各CPU中,使该各CPU执行代码化了的处理。共享存储器302例如储存线程表400和分配管理表500。
图4是表示线程表400的一例的说明图。线程表400具有线程的识别信息的项目401、优先级的项目402、最后期限(deadline)的项目、执行时间的项目404以及待机电力的项目405。线程的识别信息的项目401中保持有各线程的识别信息。优先级的项目402中保持有在表示线程的识别信息的项目401中保持了识别信息的各线程的优先级是否高的信息。在优先级高的情况下,保持高优先,在优先级不高的情况下,保持低优先。
最后期限的项目403中保持有从线程被生成的生成时刻到该线程的执行期限为止的时间(在此称为“最后期限(deadline)”)。执行时间的项目404中保持有在线程的识别信息的项目401中保持了识别信息的各线程的执行时间。待机电力的项目405中保持有在线程的识别信息的项目401中保持了识别信息的各线程的单位时间的待机电力的值。
如果列举线程#0为例,则线程#0是高优先级的线程,最后期限是10[ms]。线程#0的执行时间是5[ms],单位时间的待机电力是100[mW/ms]。
图5是表示分配管理表500的一例的说明图。分配管理表500具有CPU的识别信息的项目501、锁定的项目502、分配完毕线程的识别信息的项目503以及执行状态的项目504。CPU的识别信息的项目501中保持有CPU的识别信息。
锁定的项目502中保持有表示CPU的识别信息的项目501中保持了识别信息的CPU是否被锁定的信息。是否被锁定用于表示CPU是否被分配高优先级的线程。如果CPU未被分配高优先级的线程,则锁定的项目502中登记0,如果CPU被分配高优先级的线程,则锁定的项目502中登记1。
分配完毕线程的识别信息的项目503中被登记在CPU的识别信息的项目501中保持有识别信息的CPU被分配的线程的识别信息。执行状态的项目504被登记在分配完毕线程的识别信息的项目503中登记了识别信息的线程的执行状态。作为执行状态,可登记exe(execution)或者proh(prohibit)中的任一种。exe表示线程为能够执行的状态,proh表示线程为执行禁止状态。
在此,各OS利用分配管理表500能够确定对CPU#0分配线程#1和线程#3,对CPU#1分配线程#2和线程#4。另外,由于各CPU的分配完毕线程的识别信息被按照分配的顺序登记,所以各OS通过按照顺序访问分配管理表500内的分配完毕线程的识别信息,能够确定分配顺序。
(信息处理装置300的功能框图)
图6是信息处理装置300的功能框图。信息处理装置300具有检测部601、差值计算部602、判断部603、第1计算部604、第2计算部605、比较部606以及决定部607。具体而言,例如CPU#0被加载共享存储器302中储存并具有检测部601~决定部607的功能的信息处理程序。而且,通过执行在CPU#0加载的该信息处理程序中被代码化的处理,可实现检测部601~决定部607的功能。
检测部601对未执行的第1线程和未执行的第2线程进行检测。
第1计算部604将由检测部601检测出的第2线程的执行时间和由检测部601检测出的第1线程的单位时间的待机电力相乘。由此,第1计算部604算出在第2线程之后执行第1线程时的第1线程的待机电力。
第2计算部605通过将第1线程的执行时间和第2线程的单位时间的待机电力相乘来算出在第1线程之后执行第2线程时的第2线程的待机电力。
比较部606将由第1计算部604算出的第1线程的待机电力和由第2计算部605算出的第2线程的待机电力进行比较。
比较部607基于由比较部606比较后的比较结果来决定第1线程和第2线程的执行顺序。
另外,在由比较部606比较的结果是第1线程的待机电力为第2线程的待机电力以上的情况下,决定部607将执行顺序决定为在第1线程之后执行第2线程。
另外,在由比较部606比较的结果是第1线程的待机电力小于第2线程的待机电力的情况下,决定部607将执行顺序决定为在第2线程之后执行第1线程。
在由检测部601检测出的第1线程被定义了执行期限的情况下,差值计算部602算出从第1线程的生成时刻到执行期限为止的时间与第1线程的执行时间之间的差值时间。
判断部603判断由差值计算部602算出的差值时间是否大于第2线程的执行时间。
在由判断部603判断为差值时间大于第2线程的执行时间的情况下,第1计算部604通过将第2线程的执行时间和第1线程的单位时间的待机电力相乘,来算出第1线程的待机电力。
在由判断部603判断为差值时间大于第2线程的执行时间的情况下,第2计算部605通过将第1线程的执行时间和第2线程的单位时间的待机电力相乘,来算出第2线程的待机电力。
在由判断部603判断为差值时间为第2线程的执行时间以下的情况下,决定部607将执行顺序决定为在第1线程之后执行第2线程。
基于以上内容详细进行说明。在本实施方式中,表示在生成了高优先级的线程的情况下,决定低优先级的线程和高优先级的线程的执行顺序的例子。另外,在本实施方式中,针对仅被分配了低优先级的线程的CPU,按照被分配的顺序来执行。
在本实施方式中,按未被分配高优先级的每个CPU来决定执行顺序,对最能够削减待机电力的CPU分配所生成的高优先级的线程(对象线程)。
在此,表示执行顺序的决定方法。首先,OS310选择未被分配高优先级的线程的CPU中任意的CPU(对象CPU)。然后,OS310确定对象CPU被分配的分配完毕的线程。接着,OS310分别算出下述公式。
·ptotal=0
·r0=对象线程的最后期限-对象线程的执行时间
·pst_high(对象线程的待机电力)=r0×对象线程的单位时间的待机电力[mW/ms]
pst_low(分配完毕的线程的待机电力)=对象线程的执行时间×(p1+p2+···pn)
n是分配完毕线程数,按照分配顺序对分配完毕线程标注了编号1~n。p1~pn是分配完毕线程的待机电力。因此,(p1+p2+···pn)是分配完毕线程的单位时间的待机电力的合计值。
接着,OS310判断是否遵守下述公式。
·r0>(t1∨t2∨···∨tn)∧pst_high<pst_low···式(1)
∧是逻辑积,∨是逻辑和。t1~tn是分配完毕线程的执行时间。如果上述公式(1)为真(遵守),则OS310决定作为在对象线程之前执行的低优先级线程的分配完毕的线程。
而且,OS310在r0>(t1∨t2∨···∨tn)成立的分配完毕线程中,将单位时间的待机电力最大的线程选择为在对象线程之前执行的线程。在此,例如在分配完毕线程中,假定为选择第1个被分配的线程作为在对象线程之前执行的线程(先行线程)。
而且,OS310算出(a)下述公式。
·ptotal=ptotal+t1×p0···式(2)
·pst_high=pst_high-t1×p0···式(3)
·pst_low=pst_low-t1×p0···式(4)
·r0=r0-t1···式(5)
而且,OS310判断(b)是否遵守下述公式。
·pst_high<pst_low···式(6)
然后,OS310在判断为遵守(b)上述公式(6)的情况下,将r0>(t2∨···∨tn)成立的分配完毕线程中单位时间的待机电力最大的线程选择为在先行线程之后且比对象线程先执行的线程。
而且,OS310通过反复进行(a)~(b)的处理,来决定向对象CPU分配时的执行顺序。而且,如果决定了对象CPU被分配对象线程时的执行顺序,则OS310将未被分配高优先级的线程的CPU中未作为对象CPU被选择的CPU选择成对象CPU。而且,OS310决定该选择出的对象CPU被分配对象线程时的执行顺序。
而且,将未被分配高优先级的线程的CPU中按每个该CPU算出的ptotal为最大值的CPU决定为对象线程的分配目的地CPU。而且,将决定出的执行顺序通知给该分配目的地CPU,分配目的地CPU基于被通知的执行顺序来执行该分配目的地CPU被分配的线程。
下面,利用具体的数值来详细进行说明。
图7是表示检测线程#0的生成的例子的说明图。首先,OS310在检测到(1)线程#0的生成后,基于线程#0的识别信息,利用线程表400来判断线程#0的优先级是否高。在此,判断为线程#0的优先级高。接着,OS310基于分配管理表500来确定多核处理器中(2)未被分配高优先级的线程的CPU。在此,CPU#0和CPU#1被确定。首先,OS310将CPU#0和CPU#1中的CPU#0选择成对象CPU。
·r0(CPU#0)=线程#0的最后期限-线程#0的执行时间
=10[ms]-5[ms]
=5[ms]
·pst_high(CPU#0)=r0×线程#0的单位时间的待机电力[mW/ms]
=5[ms]×100[mW/ms]
=500[mW]
·pst_low(CPU#0)=线程#0的执行时间×(线程#1的单位时间的待机电力+线程#3的单位时间的待机电力)
=5[ms]×(100[mW/ms]+80[mW/ms])
=900[ms]
接着,OS310向上述公式(1)中代入算出的各值,来判断是否遵守上述公式(1)。
·5[ms](r0(CPU#0))>(3[ms](线程#1的执行时间)∨2[ms](线程#3的执行时间))∧500[mW](pst_high(CPU#0))<900[ms](pst_low(CPU#0))
而且,当判断为遵守上述公式(1)时,OS310在r0(CPU#0)>(3[ms](线程#1的执行时间)∨2[ms](线程#3的执行时间))成立的分配完毕线程中,确定单位时间的待机电力最大的线程。而且,OS310将确定出的线程选择为在线程#0之前执行的线程。其中,将选择结果作为执行顺序信息,向共享存储器302等储存区域输出。
·CPU#0的执行顺序信息:线程#1
而且,OS310算出上述公式(2)~(6)。
·ptotal(CPU#0)=ptotal(CPU#0)+线程#1的执行时间×线程#0的单位时间的待机电力
=0+3[ms]×100[mW/ms]
=300[mW]
·pst_high(CPU#0)=pst_high(CPU#0)-线程#1的执行时间×线程#0的单位时间的待机电力
=500[mW]-3[ms]×100[mW/ms]
=200[mW]
·pst_low(CPU#0)=pst_low(CPU#0)-线程#1的执行时间×线程#0的单位时间的待机电力
=900[ms]-3[ms]×100[mW/ms]
=600[mW]
·r0(CPU#0)=r0(CPU#0)-线程#1的执行时间
=5[ms]-3[ms]
=2[ms]
而且,OS310判断是否遵守上述公式(6)。
·200[mW]<600[mW]
而且,如果判断为遵守上述公式(6),则OS310在r0(CPU#0)>(线程#3的执行时间)成立的分配完毕线程中,将单位时间的待机电力最大的线程选择为在先行线程之后并且在对象线程之前执行的线程。而且,将选择结果添加到上述的CPU#0的执行顺序信息中。
·CPU#0的执行顺序信息:线程#1→线程#3
而且,OS310算出上述公式(2)。
·ptotal(CPU#0)=ptotal(CPU#0)+线程#3的执行时间×线程#0的单位时间的待机电力
=300[mW]+2[ms]×100[mW/ms]
=500[mW]
在此,由于CPU#0被分配的线程仅是线程#1和线程#3,所以在CPU#0的执行顺序信息中追加线程#0。
·CPU#0的执行顺序信息:线程#1→线程#3→线程#0
接着,OS310将CPU#0和CPU#1中的CPU#1选择成对象CPU。
·r0(CPU#1)=线程#0的最后期限-线程#0的执行时间
=10[ms]-5[ms]
=5[ms]
·pst_high(CPU#1)=r0×线程#0的单位时间的待机电力[mW/ms]
=5[ms]×100[mW/ms]
=500[mW]
·pst_low(CPU#1)=线程#0的执行时间×(线程#2的单位时间的待机电力+线程#4的单位时间的待机电力)
=5[ms]×(50[mW/ms]+70[mW/ms])
=600[ms]
接着,OS310向上述公式(1)中代入算出的各值,来判断是否遵守上述公式(1)。
·5[ms](r0(CPU#1))>(4[ms](线程#2的执行时间)∨5[ms](线程#4的执行时间))∧500[mW](pst_high(CPU#1))<600[ms](pst_low(CPU#1))
而且,如果判断为遵守上述公式(1),则OS310在r0(CPU#1)>(4[ms](线程#2的执行时间))成立的分配完毕线程中,确定单位时间的待机电力最大的线程。而且,OS310将确定出的线程选择为在线程#0之前执行的线程。其中,将选择结果作为执行顺序信息,向共享存储器302等储存区域输出。
·CPU#1的执行顺序信息:线程#2
而且,OS310算出上述公式(2)。
ptotal(CPU#1)=ptotal(CPU#1)+线程#2的执行时间×线程#0的单位时间的待机电力
=0+4[ms]×100[mW/ms]
=400[mW]
在此,由于小于r0(CPU#1)的线程仅是线程#2,所以在CPU#1的执行顺序信息中登记线程#0,进而登记线程#4。
·CPU#1的执行顺序信息:线程#2→线程#0→线程#4
接着,OS310将CPU#0和CPU#1中ptotal大的CPU决定成线程#0的分配目的地CPU。在此,由于ptotal(CPU#0)是500[mW],ptotal(CPU#1)是400[mW],所以CPU#0被决定成线程#0的分配目的地CPU。
图8是表示分配管理表500的更新例的说明图。OS310将分配管理表500内的CPU的识别信息登记为CPU#0,并对分配完毕线程的识别信息的项目503登记线程#0的识别信息。而且,OS310对线程#1的执行状态的项目504设定exe,对线程#3的执行状态的项目504设定proh,对线程#0的执行状态的项目504设定proh。而且,OS310开始执行线程#1。
(信息处理步骤)
图9~11是表示由信息处理装置300进行的信息处理步骤的流程图。执行主体是作为主OS的OS310。首先,OS310判断是否检测到线程的生成(步骤S901)。在OS310判断为未检测到线程的生成的情况下(步骤S901:“否”),返回到步骤S901。在OS310判断为检测到线程的生成的情况下(步骤S901:“是”),判断生成的线程(对象线程)是否是高优先级线程(步骤S902)。
OS310在判断为对象线程是高优先级线程的情况下(步骤S902:“是”),确定未被施加与高优先级线程的分配相关的锁定的CPU(步骤S903)。而且,OS310判断能否确定未被施加与高优先级线程的分配相关的锁定的CPU(步骤S904)。
OS310在判断为能够确定未被施加与高优先级线程的分配相关的锁定的CPU的情况下(步骤S904:“是”),判断未被施加锁定的CPU中是否存在未选择的CPU(步骤S905)。
OS310在判断为存在未选择的CPU的情况下(步骤S905:“是”),从未选择的CPU中选择任意的CPU作为对象CPU(步骤S906)。而且,OS310执行执行顺序的决定处理(步骤S907),将对象CPU的识别信息和执行顺序信息以及ptotal建立关联地输出(步骤S908),然后返回到步骤S905。
OS310在判断为对象线程不是高优先级线程的情况下(步骤S902:“否”),确定最小负荷的CPU(步骤S909)。而且,OS310将对象线程的分配目的地CPU设定成确定出的最小负荷的CPU(步骤S910),然后返回到步骤S901。
OS310在判断为无法确定被施加了与高优先级线程的分配相关的锁定的CPU的情况下(步骤S904:“否”),判断是否存在未选择的CPU(步骤S911)。而且,OS310在判断为存在未选择的CPU的情况下(步骤S911:“是”),从未选择CPU中选择任意的CPU(步骤S912)。
OS310提取出在所选择的CPU的执行顺序信息中登记的线程(步骤S913),算出提取出的线程的执行时间的合计值(步骤S914)。OS310判断提取出的线程的执行时间的合计值<对象线程的最后期限(d0)-对象线程的执行时间(t0)是否成立(步骤S915)。
OS310在判断为提取出的线程的执行时间的合计值<d0-t0成立的情况下(步骤S915:“是”),将对象CPU决定成能够遵守d0的CPU(步骤S916),返回到步骤S911。另一方面,在判断为提取出的线程的执行时间的合计值<d0-t0不成立的情况下(步骤S915:“否”),返回到步骤S911。
OS310在判断为不存在未选择的CPU的情况下(步骤S911:“否”),判断是否存在能够遵守d0的CPU(步骤S917)。OS310在判断为存在能够遵守d0的CPU的情况下(步骤S917:“是”),判断能够遵守d0的CPU中是否存在未选择的CPU(步骤S918)。
OS310在判断为能够遵守d0的CPU中存在未选择的CPU的情况下(步骤S918:“是”),从未选择CPU中选择任意的CPU作为对象CPU(步骤S919)。然后,OS310执行执行顺序的决定处理(步骤S920),将对象CPU的识别信息和执行顺序信息以及ptotal建立关联地输出(步骤S921),返回到步骤S905。
当在步骤S918中OS310判断为能够遵守d0的CPU中不存在未选择的CPU时(步骤S918:“否”),确定能够遵守d0的CPU中ptotal的值最大的CPU(步骤S922)。然后,OS310将确定出的CPU的执行顺序信息通知给确定出的CPU(步骤S923),将对象线程的分配目的地CPU设定为确定出的CPU(步骤S924),然后返回到步骤S901。
OS310在判断为不存在能够遵守d0的CPU的情况下(步骤S917:“否”),确定对各CPU分配完毕的高优先级的线程中执行时间最小的线程(步骤S925)。接着,OS310将确定出的线程的分配目的地CPU设定为对象线程的分配目的地CPU(步骤S926),向对象线程的分配目的地CPU通知执行顺序信息的废弃指示(步骤S927),返回到步骤S901。
当在步骤S905中OS310判断为不存在未选择的CPU时(步骤S905:“否”),确定未被施加锁定的CPU中ptotal的值最大的CPU(步骤S928)。而且,OS310将确定出的CPU的执行顺序信息通知给确定出的CPU(步骤S929),将对象线程的分配目的地CPU设定成确定出的CPU(步骤S930),返回到步骤S901。
图12以及图13是表示图9所示的执行顺序的决定处理(步骤S907)的详细处理步骤的流程图。在执行顺序的决定处理是步骤S907或者步骤S920的情况下,执行主体是OS310,但在执行顺序的决定处理是步骤S1511(图15)的处理的情况下,执行主体是各OS。首先,OS算出r0=对象线程的最后期限(d0)-对象线程的执行时间(t0)(步骤S1201),然后算出pst_high=r0×对象线程的单位时间的待机电力(p0)(步骤S1202)。
接着,OS设定ptotal=0(步骤S1203),然后设定m=1(步骤S1204),并确定对象CPU中分配完毕的CPU(步骤S1205)。OS对确定出的分配完毕的线程中与r0相比执行时间小的线程进行确定(步骤S1206)。而且,OS判断是否确定出与r0相比执行时间小的线程(步骤S1207)。
OS在判断出确定出与r0相比执行时间小的线程的情况下(步骤S1207:“是”),算出分配完毕的线程的待机电力的合计值(psum)(步骤S1208)。OS算出pst_low=psum×t0(步骤S1209),判断pst_high>pst_low是否成立(步骤S1210)。
OS在判断为pst_high>pst_low成立的情况下(步骤S1210:“是”),判断与r0相比执行时间小的线程中是否存在未选择的线程(步骤S1211)。OS在判断为存在未选择的线程的情况下(步骤S1211:“是”),选择未选择的线程中单位时间的待机电力最大的线程(步骤S1212)。
而且,OS将选择出的线程的识别信息和m的值建立关联地向执行顺序信息输出(步骤S1213)。OS算出ptotal=ptotal+t0×选择出的线程的单位时间的待机电力(步骤S1214),然后算出pst_low=pst_low-t0×选择出的线程的单位时间的待机电力(步骤S1215)。
OS算出pst_high=pst_high-选择出的线程的执行时间×p0(步骤S1216),设m=m+1(步骤S1217),返回到步骤S1211。
当在步骤S1207中OS判断为无法确定与r0相比执行时间小的线程时(步骤S1207:“否”),将对象线程的识别信息和m的值建立关联地向执行顺序信息输出(步骤S1218),然后移向步骤S908。
另外,当在步骤S1210中OS判断为pst_high>pst_low不成立时(步骤S1210:“否”),移向步骤S1218。
另外,当在步骤S1211中OS判断为不存在未选择的线程时(步骤S1211:“否”),移向步骤S1218。
图14是表示各OS的线程分配时的信息处理步骤的流程图。首先,OS判断是否接收到执行顺序信息的通知、接收到执行顺序信息的废弃指示、或者检测到线程的分配(步骤S1401)。OS在判断为未接收到执行顺序信息的通知、未接收到执行顺序信息的废弃指示以及未检测到线程的分配的情况下(步骤S1401:“否”),返回到步骤S1401。
OS在判断为接收到执行顺序信息的通知的情况下(步骤S1401:执行顺序信息的通知),废弃保存完毕的执行顺序信息,保存接收到的执行顺序信息(步骤S1402)。
OS在判断为检测到线程的分配的情况下(步骤S1401:线程的分配),判断检测到分配的线程是否是高优先级线程(步骤S1403)。OS在判断为检测到分配的线程是高优先级线程的情况下(步骤S1403:“是”),施加与高优先级线程的分配相关的锁定(步骤S1404)。
而且,OS将执行顺序信息内的开头线程的执行状态设定成exe(步骤S1405),将执行顺序信息内除了开头线程之外的分配完毕线程的执行状态设定成proh(步骤S1406)。接着,OS开始执行顺序信息内的开头线程的执行(步骤S1407),然后返回到步骤S1401。
当在步骤S1403中OS判断为检测出分配的线程不是高优先级线程时(步骤S1403:“否”),判断是否施加了与高优先级线程的分配相关的锁定(步骤S1408)。OS在判断为施加了与高优先级线程的分配相关的锁定的情况下(步骤S1408:“是”),判断检测出分配的线程是否是执行顺序信息内的开头线程(步骤S1409)。
然后,OS在判断为检测出分配的线程不是执行顺序信息内的开头线程的情况下(步骤S1409:“否”),将检测出的线程的执行状态设定成proh(步骤S1410),返回到步骤S1401。OS在判断为检测出分配指示的线程是执行顺序信息内的开头线程的情况下(步骤S1409:“是”),将检测出的线程的执行状态设定成exe(步骤S1411),返回到步骤S1401。
当在步骤S1408中OS判断为未施加与高优先级线程的分配相关的锁定时(步骤S1408:“否”),在运行队列的尾部最后登记检测出的线程(步骤S1412),返回到步骤S1401。
当在步骤S1401中OS判断为接收到执行顺序信息的废弃指示的通知时(步骤S1401:执行顺序信息的废弃指示的通知),废弃保存完毕的执行顺序信息(步骤S1413)。然后,OS开始执行分配完毕的高优先级的线程中最先被分配的线程(步骤S1414),返回到步骤S1401。
图15是表示各OS的线程结束时的信息处理步骤的流程图。首先,OS判断是否检测到线程的结束或者线程的切换(步骤S1501)。然后,OS在判断为未检测到线程的结束或者线程的切换的情况下(步骤S1501:“否”),返回到步骤S1501。
OS在判断为检测到线程的结束的情况下(步骤S1501:线程的结束),判断结束的线程是否是高优先级线程(步骤S1502)。OS在判断为结束的线程不是高优先级线程的情况下(步骤S1502:“否”),判断是否施加了与高优先级线程的分配相关的锁定(步骤S1503)。
OS在判断为施加了与高优先级线程的分配相关的锁定的情况下(步骤S1503:“是”),移向步骤S1509。OS在判断为未施加与高优先级线程的分配相关的锁定的情况下(步骤S1503:“否”),移向步骤S1505。
OS在判断为结束的线程是高优先级线程的情况下(步骤S1502:“是”),判断在分配完毕的线程中除了结束的线程之外是否存在高优先级的线程(步骤S1504)。OS在判断为分配完毕的线程中除了结束的线程之外不存在高优先级的线程的情况下(步骤S1504:“否”),解除与高优先级的线程的分配相关的锁定(步骤S1505)。
然后,OS将分配完毕的所有线程的执行状态设定成exe(步骤S1506),在分配完毕的线程中,开始执行最先分配的线程(步骤S1507),返回到步骤S1501。
当在步骤S1504中OS判断为在分配完毕的线程中除了结束的线程之外存在高优先级的线程时(步骤S1504:“是”),判断在执行顺序信息内是否存在未执行的线程(步骤S1508)。OS在判断为执行顺序信息内存在未执行的线程的情况下(步骤S1508:“是”),在执行顺序信息中将未执行的线程中开头的线程的执行状态设定成exe(步骤S1509)。
OS开始执行开头的线程(步骤S1510),返回到步骤S1501。OS在判断为执行顺序信息内不存在未执行的线程的情况下(步骤S1508:“否”),执行执行顺序的决定处理(步骤S1511),返回到步骤S1501。
如以上说明那样,根据信息处理装置、信息处理程序以及信息处理方法,在第1线程和第2线程未执行时,通过比较各线程的待机电力来决定执行顺序。由此,能够不切换线程地实现低消耗电力化。
另外,在第1线程的待机电力为第2线程的待机电力以上的情况下,在第1线程之后执行第2线程。由此,使待机电力大的线程在先执行,能够实现低消耗电力化。
另外,在第1线程的待机电力小于第2线程的待机电力的情况下,在第2线程之后执行第1线程。由此,能够使待机电力大的线程在先执行,可实现低消耗电力化。
另外,在第1线程被定义了执行期限的情况下,判断是否即使在第1线程之前执行第2线程,第1线程也能够遵守执行期限。而且,在判断为即使在第1线程之前执行第2线程,第1线程也能够遵守执行期限的情况下,基于第1线程的待机电力和第2线程的待机电力来决定执行顺序。由此,在执行存在执行期限的线程时,也能够实现低消耗电力化。
另外,当判断为如果在第1线程只前执行第2线程,则第1线程无法执行遵守期限时,通过将执行顺序决定为在第1线程之后执行第2线程,能够防止第1线程的吞吐量降低。
附图标记说明:300…信息处理装置;601…检测部;602…差值计算部;603…判断部;604…第1计算部;605…第2计算部;606…比较部;607…决定部。

Claims (6)

1.一种信息处理装置,其特征在于,具备:
检测单元,其检测未执行的第1线程和未执行的第2线程;
第1计算单元,基于由所述检测单元检测出的第2线程的执行时间以及第1线程的单位时间的待机电力,来算出在所述第2线程之后执行所述第1线程时的所述第1线程的待机电力;
第2计算单元,基于所述第1线程的执行时间以及所述第2线程的单位时间的待机电力,来算出在所述第1线程之后执行所述第2线程时的所述第2线程的待机电力;以及
决定单元,其基于由所述第1计算单元算出的第1线程的待机电力和由所述第2计算单元算出的第2线程的待机电力,来决定所述第1线程和所述第2线程的执行顺序。
2.根据权利要求1所述的信息处理装置,其特征在于,
在所述第1线程的待机电力为所述第2线程的待机电力以上的情况下,所述决定单元将所述执行顺序决定为在所述第1线程之后执行所述第2线程。
3.根据权利要求1所述的信息处理装置,其特征在于,
在所述第1线程的待机电力小于所述第2线程的待机电力的情况下,所述决定单元在将所述执行顺序决定为在所述第2线程之后执行所述第1线程。
4.根据权利要求1或者2所述的信息处理装置,其特征在于,具备:
差值计算单元,在由所述检测单元检测出的第1线程被定义了执行期限的情况下,算出从所述第1线程的生成时刻到所述执行期限为止的时间与所述第1线程的执行时间之间的差值时间;和
判断单元,判断由所述差值计算单元算出的差值时间是否大于所述第2线程的执行时间,
在由所述判断单元判断的结果是所述差值时间大于所述第2线程的执行时间的情况下,所述第1计算单元通过将所述第2线程的执行时间和所述第1线程的单位时间的待机电力相乘,来算出所述第1线程的待机电力,
在由所述判断单元判断的结果是所述差值时间大于所述第2线程的执行时间的情况下,所述第2计算单元通过将所述第1线程的执行时间和所述第2线程的单位时间的待机电力相乘,来算出所述第2线程的待机电力。
5.根据权利要求4所述的信息处理装置,其特征在于,
在由所述判断单元判断的结果是所述差值时间为所述第2线程的执行时间以下的情况下,所述决定单元将所述执行顺序决定为在所述第1线程之后执行所述第2线程。
6.一种信息处理方法,其特征在于,由计算机执行如下步骤:
检测步骤,检测未执行的第1线程和未执行的第2线程;
第1计算步骤,通过将由所述检测步骤检测出的第2线程的执行时间和由所述检测步骤检测出的第1线程的单位时间的待机电力相乘,来算出在所述第2线程之后执行所述第1线程时的所述第1线程的待机电力;
第2计算步骤,通过将所述第1线程的执行时间和所述第2线程的单位时间的待机电力相乘,来算出在所述第1线程之后执行所述第2线程时的所述第2线程的待机电力;
比较步骤,比较通过所述第1计算步骤算出的第1线程的待机电力和通过所述第2计算步骤算出的第2线程的待机电力;以及
决定步骤,基于由所述比较步骤比较的比较结果来决定所述第1线程和所述第2线程的执行顺序。
CN201080070002.8A 2010-11-15 2010-11-15 信息处理装置以及信息处理方法 Expired - Fee Related CN103189842B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/070317 WO2012066620A1 (ja) 2010-11-15 2010-11-15 情報処理装置、情報処理プログラム、および情報処理方法

Publications (2)

Publication Number Publication Date
CN103189842A CN103189842A (zh) 2013-07-03
CN103189842B true CN103189842B (zh) 2016-06-29

Family

ID=46083586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080070002.8A Expired - Fee Related CN103189842B (zh) 2010-11-15 2010-11-15 信息处理装置以及信息处理方法

Country Status (4)

Country Link
US (1) US9430352B2 (zh)
JP (1) JP5429402B2 (zh)
CN (1) CN103189842B (zh)
WO (1) WO2012066620A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101770736B1 (ko) * 2011-03-17 2017-09-06 삼성전자주식회사 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기
US10884950B2 (en) * 2016-05-16 2021-01-05 International Business Machines Corporation Importance based page replacement
JP6959506B2 (ja) * 2017-06-12 2021-11-02 富士通株式会社 並列処理システムのシステム管理装置、並列処理システムおよび電力制御方法
JP6928263B2 (ja) * 2017-12-15 2021-09-01 富士通株式会社 情報処理装置、計算機制御方法、および計算機制御プログラム
CN111596963B (zh) * 2020-04-16 2022-11-04 广州博依特智能信息科技有限公司 一种设备开机时间合并方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1159021A (zh) * 1996-03-06 1997-09-10 三菱电机株式会社 ***时钟确定装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6368934A (ja) 1986-09-10 1988-03-28 Nec Corp タスクスケジユ−ル方式
JPH07168726A (ja) * 1993-12-16 1995-07-04 Matsushita Electric Ind Co Ltd 電子計算機及びマルチプロセスオペレーティングシステムのスケジューリング方法
JPH09297688A (ja) * 1996-03-06 1997-11-18 Mitsubishi Electric Corp システムクロック決定装置
JP3043748B1 (ja) 1999-03-26 2000-05-22 日本電気アイシーマイコンシステム株式会社 タスクスケジュ―リング方法及び装置
US6775787B2 (en) * 2002-01-02 2004-08-10 Intel Corporation Instruction scheduling based on power estimation
US7500240B2 (en) * 2002-01-15 2009-03-03 Intel Corporation Apparatus and method for scheduling threads in multi-threading processors
US7206950B2 (en) * 2004-06-16 2007-04-17 Matsushita Electric Industrial Co., Ltd. Processor system, instruction sequence optimization device, and instruction sequence optimization program
US8015566B2 (en) * 2005-01-13 2011-09-06 Lenovo (Singapore) Pte. Ltd. Attributing energy consumption to individual code threads in a data processing system
KR20070089460A (ko) * 2006-02-28 2007-08-31 삼성전자주식회사 우선 순위에 따른 비휘발성 메모리의 연산 처리 장치 및방법
JP2008123045A (ja) * 2006-11-08 2008-05-29 Matsushita Electric Ind Co Ltd プロセッサ
JP5208690B2 (ja) * 2008-11-14 2013-06-12 株式会社東芝 主記憶データ書き換え装置及び方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1159021A (zh) * 1996-03-06 1997-09-10 三菱电机株式会社 ***时钟确定装置

Also Published As

Publication number Publication date
CN103189842A (zh) 2013-07-03
US20130262905A1 (en) 2013-10-03
US9430352B2 (en) 2016-08-30
JP5429402B2 (ja) 2014-02-26
JPWO2012066620A1 (ja) 2014-05-12
WO2012066620A1 (ja) 2012-05-24

Similar Documents

Publication Publication Date Title
CN103189842B (zh) 信息处理装置以及信息处理方法
KR100636759B1 (ko) 추월 기능을 갖춘 벡터 처리 장치
US8612978B2 (en) Code execution utilizing single or multiple threads
US10802877B2 (en) Task management methods and system, and computer storage medium
US8082420B2 (en) Method and apparatus for executing instructions
CN100357894C (zh) 实时可调度性确定方法和实时***
CN109598459B (zh) 物流配送方法和装置以及计算机可读存储介质
CN101802789A (zh) 多处理器上的并行运行时执行
US20120192194A1 (en) Lock Free Acquisition and Release of a Semaphore in a Multi-Core Processor Environment
CN103473137A (zh) 避免死锁的资源分配方法及***
US20030074542A1 (en) Multiprocessor system and program optimizing method
CN109359256A (zh) 页面加载方法、装置、设备及存储介质
CN102934095A (zh) 多核处理器***、控制程序以及控制方法
CN102073618A (zh) 一种异构计算***及其处理方法
CN107480305B (zh) 一种纹理信息加载方法及***
CN114691241B (zh) 任务执行方法、装置、电子设备及存储介质
JP5692341B2 (ja) マルチプロセッサシステム、制御方法、および制御プログラム
CN109783242A (zh) 海外控股估值流程控制方法、装置、计算机设备及存储介质
CN114781972A (zh) 一种货物运输方案的确定方法、装置、设备及介质
CN110363314A (zh) 一种共享检测设备的方法、装置、移动终端及服务器
CN112491986B (zh) 一种分布式***中命令分发方法、装置及***
JP2009181213A (ja) メモリ管理装置
CN115223291B (zh) 智能柜台的业务办理方法及装置
CN104040493A (zh) 数字信号处理器和基带通信设备
CN114253714B (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160629

Termination date: 20181115