CN103176836A - 计算设备、计算方法及计算程序的记录介质 - Google Patents

计算设备、计算方法及计算程序的记录介质 Download PDF

Info

Publication number
CN103176836A
CN103176836A CN2012105598898A CN201210559889A CN103176836A CN 103176836 A CN103176836 A CN 103176836A CN 2012105598898 A CN2012105598898 A CN 2012105598898A CN 201210559889 A CN201210559889 A CN 201210559889A CN 103176836 A CN103176836 A CN 103176836A
Authority
CN
China
Prior art keywords
value
processing
unit
thread
processor
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
CN2012105598898A
Other languages
English (en)
Other versions
CN103176836B (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 CN103176836A publication Critical patent/CN103176836A/zh
Application granted granted Critical
Publication of CN103176836B publication Critical patent/CN103176836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • 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
    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了计算设备、计算方法及计算程序的记录介质。计算方法包括:由处理器计算第一值和第二值之间的差值,所述第一值从对时钟信号的脉冲进行计数的时钟计数器中读取,所述时钟信号的频率发生改变并且响应于对要被分配给处理器的处理单元的处理进行启动的控制而被提供给处理器,所述第二值响应于停止处理的控制而从时钟计数器中读取。

Description

计算设备、计算方法及计算程序的记录介质
相关申请的交叉引用
本申请基于并要求2011年12月21日提交的在先日本专利申请第2011-280551号的优先权,该申请的全部内容通过引用并入本文。
技术领域
本文中所讨论的实施例涉及使用计算机的测量技术。
背景技术
多个虚拟机的处理可以在一个实体机上执行。存在一种基于虚拟机的中央处理单元(CPU)的使用率来估计虚拟机在实体机上执行处理时的功率消耗的技术。
各个CPU的使用率基于程序的处理所占用的CPU的时间来计算。与之相比,存在一种根据诸如CPU的处理负载等特性来修改用于同步电路的工作频率(时钟频率)的技术。为了减少CPU消耗的功率和辐射的热量,当执行控制以修改CPU的工作频率时,CPU每单位时间内的实际操作数量在修改工作频率之前和之后是不同的。因为当CPU工作时消耗功率,假如CPU的工作频率改变并且CPU每单位时间内的操作数量变化,则所述CPU的功率消耗也改变。根据CPU的占用时间来估计功率消耗的现有技术的方法不考虑由于工作频率的变化而带来的功率消耗的变化。因此,对于要执行的程序,如果CPU被占用的时间量在工作频率被改变之前和之后是相同的,则尽管CPU的实际操作数量改变了,但是改变之前和之后的功率消耗被错误地估计为相同。
发明内容
根据本发明的一个方面,一种计算方法包括:由处理器计算第一值和第二值之间的差值,所述第一值从对时钟信号的脉冲进行计数的时钟计数器中读取,所述时钟信号的频率发生改变并且响应于对要被分配给处理器的处理单元的处理进行启动的控制而被提供给处理器,所述第二值响应于停止处理的控制来从时钟计数器中读取。
本发明的目的和优点将借助于权利要求中具体指出的组件或组合来实现以及获得。
可以理解,前面的大体性描述和接下来的详细描述都是示例性和说明性的,并且不对所要求保护的发明形成限制。
附图说明
图1示出了计算机的功能配置的示例。
图2示出了计算机的软件配置的示例。
图3示出了计算机的硬件配置的示例。
图4示出了根据线程控制进行数据读取的工作原理。
图5示出了线程上下文的数据结构的示例。
图6示出了依据线程控制进行数据读取的工作原理。
图7示出了由执行控制单元111执行控制的流程图。
图8示出了用于线程停止和终止的处理流程图。
图9示出了用于线程激活和生成的处理流程图。
图10A示出了进程和线程之间的关系。
图10B示出了进程和线程之间的关系。
图10C示出了进程和线程之间的关系。
图11示出了程序和进程之间的关系。
图12示出了各个程序的操作数量。
图13示出了计算各个程序的操作数量的流程图。
图14示出了计算各个程序的操作数量的流程图。
图15示出了显示测量结果的屏幕信息的示例。
图16示出了计算机1的软件配置的示例。
图17示出了计算各个虚拟机的操作数量的流程图。
图18示出了虚拟机与程序之间的关系。
图19示出了各个虚拟机的操作数量。
图20示出了显示测量结果的屏幕信息的示例。
图21示出了计算机的软件配置的示例。
图22示出了虚拟机与程序之间的关系。
图23示出了各个虚拟机的操作数量的示例。
图24示出了系统配置的示例。
图25示出了计算机的软件配置的示例。
图26示出了切换单元的时序的示例。
图27A示出了进程与线程之间的关系。
图27B示出了进程与线程之间的关系。
图27C示出了进程与线程之间的关系。
图28示出了程序与进程之间的关系。
图29示出了各个程序的操作数量的示例。
具体实施方式
处理器的功率消耗根据提供给处理器的时钟信号的频率而发生变化。因为处理器根据时钟信号在一个周期内对处理器中的电路充电以及放电一次,所以改变所述时钟信号的频率会导致在每单位时间内执行的充电和放电的次数改变。例如,当时钟信号源在生成不同频率的时钟信号的多个振荡器之间切换时,或由振荡器生成的时钟信号的频率随时间发生漂移时,时钟信号的频率均发生变化。
例如对于某一时间间隔t,当处理器工作于频率f1时,处理器充电和放电的次数为f1·t,并且当所述处理器工作于频率f2时,处理器充电和放电的次数为f2·t。存在一种基于处理器的工作时间来估计功率消耗的方法。当基于时间来估计处理器的操作数量时,如果在超出表达式(1)所表示的t的某一时间段内执行测量,将会导致一次或多次充电和放电的误差。换句话说,当在某一时间段t内测量处理器的操作数量时,如果时钟频率以表达式(1)中所示的(f1-f2)或更大的值进行变化,则会导致相当于一个或多个时钟周期的误差。因此,当频率在待测量的时间段t上以表达式(1)中所示的(f1-f2)或更大的值进行变化时,可能需要要考虑到时钟信号的频率波动。
t≤|1/(f1-f2)|……(1)
下文中将参照附图描述本发明的实施例。首先,基于图1至3描述根据第一实施例的计算机1的配置。
图1示出了计算机1的功能配置的一个示例。该计算机1包括处理单元11和存储单元12。处理单元11包括执行单元110、执行控制单元111、时钟计数器112、读取处理单元113、计算单元114以及存储控制单元115。
图2示出了计算机1的软件配置的一个示例。在图2所示的软件配置的示例中,在计算机1上运行多种类型的应用程序,包括应用程序23a、应用程序23b和应用程序23c。计算机1上运行的应用程序不限于应用程序23a-23c。例如,除应用程序23a至23c之外的应用程序也可以在计算机1上运行。此外,计算机1上还运行有用于执行控制和管理以使硬件(hardware,HW)21执行应用程序23a-23c的处理的操作系统(OS)。硬件21是下文中利用图3所描述的硬件21。
图3示出了计算机1的硬件配置的一个示例。计算机1包括处理器301、随机存取存储器(RAM)302、只读存储器(ROM)303、驱动装置304、记录介质305、通信接口(I/F)306、输入接口(I/F)307和输出接口(I/F)308。处理器301通过改变工作频率进行操作,所述工作频率被用来与和处理器301的操作相关的电路进行同步。处理器301、RAM302、ROM303、驱动装置304、通信接口306、输入接口307以及输出接口308被耦接到总线309。所述通信接口306被耦接到网络310。所述输入接口307被耦接到输入装置311。所述输出接口308被耦接到输出装置312。
将描述图1-3示出的计算机1中的各个元件的配置。
处理单元11的功能通过例如处理器301基于OS22a、应用程序23a至23c等执行处理来实现。存储单元12的功能通过例如在处理器301的控制下从RAM302或记录介质305等读取信息或者将信息写入RAM302或记录介质305等来实现。
在执行控制单元111(随后进行描述)的控制下,执行单元110执行应用程序23a至23c的处理。执行单元110的功能通过例如处理器301加载从记录介质305读取到RAM302的应用程序23a至23c并且处理包含在所加载的程序中的命令来实现。
所述执行控制单元111调度执行单元110所执行的应用程序23a-23c的处理。当各个应用程序的处理以多任务处理的方式执行时,执行控制单元111执行控制,以为处理器301分配进程,所述进程为应用程序的处理单元。何时分配进程由基于包含在执行控制单元111中的进程调度器的算法所确定的处理状态来决定。类似地,当各个应用程序的处理以多线程的方式执行时,所述执行控制单元111执行控制,以为处理器301分配线程,所述线程为应用程序的处理单元。何时分配线程由基于包含在执行控制单元111中的线程调度器的算法所确定的处理状态来决定。所述执行处理单元111的功能通过例如处理器301和RAM302基于包括进程调度器或线程调度器的OS22a进行操作来实现。
所述时钟计数器112是根据周期而递增的计数器,其中用来与作为处理器301所执行的处理的一部分的电路进行同步的时钟以所述周期进行操作。所述时钟计数器112被包含在处理器301中。当处理器301是多内核处理器时,为各个内核提供计数器,并且各个内核的操作数量基于各个内核所包含的计数器来进行测量。在接下来的描述中,除非另有说明,将通过举例的方式描述具有单个内核的处理器301的情况。所述时钟计数器112指示在某一时间,直到该时间处所述处理器301所执行的操作数量。例如,时钟计数器112在硬件21激活时开始计数。每当经过相当于处理器301的工作频率的一个周期的时间(即,每一个脉冲)时,则执行控制以向时钟计数器112中设置的寄存器增加例如1比特。存储所述时钟计数器112的值的寄存器具有大小为例如32比特或64比特的区域。在接下来的描述中,响应于读取命令而读取的时钟值被当作变量clk0。
根据在执行控制单元111执行调度以生成、激活(导致处于执行状态)、停止(导致处于休眠状态)或者终止进程或线程中的控制,读取处理单元113执行处理以从包含在处理器301中的时钟计数器112中读取时钟值。读取处理单元113的功能通过例如处理器301根据OS22a执行控制来实现,在所述OS22a中将读取命令添加到使调度控制被执行的命令组中。
所述读取命令是读取包含在处理器301中的时钟计数器112的值的命令。所述读取命令是例如一种性能检测机制(在各种类型的CPU中实现)。
在执行控制单元111的控制下,计算单元114利用由读取处理单元113读取的时钟值(clk1)执行算术运算(参见表达式(2)-(4))。例如,当所述读取处理单元113根据执行控制单元111的进程或线程的生成或激活来读取时钟值(clk1)时,所述计算单元114执行算术运算(参见表达式(2)),以使用时钟值(clk1)对变量clk0赋值。当所述读取处理单元113根据执行控制单元111的进程或线程的停止或终止来读取时钟值(clk1)时,所述计算单元114计算时钟值(clk1)与值(clk0)之间的差值d(参见表达式(3))。此外,所述计算单元114执行算术运算(参见表达式(4)),以将时钟值(clk1)与值(clk0)之间的差值d合并入一个合并值S。所述合并值S是由随后描述的存储控制单元115写入存储单元12或从存储单元12读取的值。值(clk0)以及合并值S的初始值是诸如0等值。此外,表达式(2)到(4)中包含的“=”是表示赋值的运算符,而不是等号。
clk0=clk1……(2)
d=clk1-clk0……(3)
S=S+d……(4)
所述计算单元114的功能通过使处理器301基于OS22a的进程或线程的进程或线程控制(生成、激活、停止或终止进程或线程的控制)时的时钟值(clk1)执行表达式(2)到(4)中的算术运算来实现。所述时钟值clk0以及时钟值clk1均被存储在处理器301的寄存器或类似装置中。
所述存储控制单元115根据执行控制单元111读取存储在存储单元12中的数据,以及将数据写入到存储单元12中。例如,根据停止或终止进程或线程的控制,所述存储控制单元115从存储单元12中读取将要被停止或终止的进程或线程上下文。所述上下文是关于进程或线程的信息,并且包括对应于进程或线程的合并值S。所述存储控制单元115的功能通过处理器301从对应于要被停止或终止的进程或线程的进程上下文或线程上下文中读取合并值S来实现。
此外,例如所述存储控制单元115在存储单元12中存储以下信息:该信息将计算单元114所计算出的合并值S与要被执行控制单元111停止或终止的进程或线程相关联。所述存储控制单元115的功能通过处理器301将合并值S写入对应于要被停止或终止的进程或线程的进程上下文或线程上下文中来实现,所述合并值S通过处理器301执行表达式(3)和(4)中的算术运算来计算得出。此外,例如作为由执行处理单元111所执行的进程或线程的激活或生成的一部分,所述存储控制单元115将由处理器301执行表达式(2)中的算术运算所计算得出的值clk0存储到被激活或生成的进程或线程的进程上下文或线程上下文中。
在另一种方法中,每当计算单元114计算差值d时,存储控制单元115都会将计算出的差值d存储在相应的进程上下文或线程上下文中。当同一个进程或线程运行多次时,差值d被多次存储在相同的进程上下文或线程上下文中。
通过包含在处理单元11中的执行单元110、执行控制单元111、时钟计数器112、读取处理单元113、计算单元114和存储控制单元115所执行的上述处理,为处理器301所执行的各个进程或线程计算出在进程或线程的处理中所包含的时钟周期的数量。
图3中示出的硬件的各元件在下面进一步描述。
RAM302是可读并可写的存储器。例如,诸如静态RAM(SRAM)或动态RAM(DRAM)等半导体存储器被用作RAM302。替换地,闪速存储器或类似装置也可以被代替RAM而使用。ROM303可以包括可编程ROM(PROM)或类似装置。驱动装置304是执行从记录介质305中读取信息和向记录介质305中写入信息中的至少一个装置。记录介质305存储由驱动装置304写入的信息。所述记录介质305是诸如硬盘、光盘(CD)、数字多功能光盘(DVD)或蓝光光盘等记录介质。例如,计算机1具有驱动装置304和对应多种类型的记录介质的记录介质305。
输入装置311是响应于物理操作而发送输入信号的装置。例如,输入装置311是诸如附接于计算机1的主体的键盘或按钮等按键装置,或诸如鼠标或触摸面板等点击装置。输出装置312是响应于计算机1的控制而输出信息的装置。例如,输出装置312是诸如显示器等图像输出装置或者诸如扬声器等音频输出装置。例如,诸如触摸屏等输入和输出装置,可以用作输入装置311和输出装置312。
现在参照图4-图6来描述当多线程被激活时如何执行数据读取的关系。尽管图4-图6中描述的是执行多线程的情况,但数据读取之间的关系与执行多任务的情况是相同或相似的。
图4示出了涉及在执行单元110、时钟计数器112以及存储在存储单元12中的线程上下文之间进行数据读取的关系。
执行控制单元111根据线程调度器激活一个线程(或当没有线程时,生成一个线程)。在由执行控制单元111所执行的线程激活处理的过程中,读取处理单元113执行从时钟计数器112中读取时钟周期的数量的处理(箭头(1)和(2))。通过计算单元114和存储控制单元115所执行的处理,将所读取的时钟周期的数量(clk1)作为初始时钟周期的数量(clk0)写入到图5所示的线程上下文T1中(写入到clk0:箭头(3))。当线程的激活完成时,执行单元110基于包含在图5所示的线程上下文T1中的信息来执行所激活的线程的处理。
图5示出了线程上下文T1的数据结构的示例。所述线程上下文T1包括用于由处理器301所执行的线程处理的处理信息,以及线程管理信息。所述处理信息是诸如程序计数器或堆栈指针等指定数据读取位置的信息。执行单元110基于在线程上下文T1的信息中指定的处理信息执行处理。线程管理信息包括线程标识符(ID)、时间信息(线程被激活的时间t0、线程处理时间的合并值St和类似信息)、以及时钟周期数量的信息(线程的初始时钟周期数量clk0以及在线程处理中所包含的时钟周期的数量的合并值S)。
在多任务控制中使用的进程上下文具有例如与图5中所示的线程上下文T1相同或相似的数据结构,并包括进程ID,而不是线程ID。所述进程上下文还包括例如关于在进程中运行的线程的信息。
所述执行控制单元111响应于例如切换到另一个线程而执行线程停止处理。在线程停止处理中,存储控制单元115在线程上下文T1中保存诸如程序计数器或堆栈指针等处理信息。在线程停止处理中,读取处理单元113执行从时钟计数器112中读取时钟周期的数量的操作(箭头(4)和(5))。计算单元114和存储控制单元115基于在线程激活处理中所读取的时钟周期的数量(clk1)以及被写入到线程上下文T1中的时钟周期的数量来计算合并值S(获得clk0:箭头(6)),并将所述合并值S写入线程上下文T1(箭头(7))。
通过上述处理,计算机1能够将从箭头(1)和(2)处的读取点到箭头(4)和(5)处的读取点所计数的时钟周期的数量记录到线程上下文T1中。
图6示出了当存在多个线程时如何进行数据读取的关系。图6中被表示为“线程a”的时段表示在“线程a”的线程激活、线程处理、以及线程停止的处理中所包含的时段。
由存储控制单元115执行的用于激活和停止“线程a”的写入处理,基于在箭头(1)和(2)处读取的时钟周期的数量,在线程上下文(a)上执行。线程上下文(a)是“线程a”的线程上下文。由存储控制单元115执行的用于激活和停止“线程b”的写入处理,基于在箭头(3)和(4)处读取的时钟周期的数量,在线程上下文(b)上执行。线程上下文(b)是“线程b”的线程上下文。此外,当在“线程b”的处理之后再次执行“线程a”的处理时,由存储控制单元115执行的用于激活和停止“线程a”的写入处理,基于在箭头(5)和(6)中读取的时钟周期的数量,在线程上下文(a)上执行。在各个线程的处理中所包含的时钟周期的数量由上述存储控制单元115进行计数,从而更新包含在各个线程上下文中的合并值S。
在第一实施例中,处理器301的工作频率可以改变。例如,如果处理器301的工作频率在箭头X所指示的时间发生变化,那么处理器301的工作频率在箭头(1)和(2)指示的时间与由箭头(5)和(6)指示的时间之间是不同的。也就是说,假设操作是在一个时钟周期内执行的指令,那么每单位时间内的操作数量是不同的。因此,通过使用现有技术中测量处理器301所占用的时间的方法,基于箭头(1)和(2)之间的时间和箭头(5)和(6)之间的时间的处理器负载的估计,将是不一致的,原因在于单位时间内的实际操作数是不同的。然而在第一实施例中,即使工作频率改变时,可以在波动之前或之后测量在箭头(1)和(2)之间以及箭头(5)和(6)之间的处理器301的实际操作数量。
图7示出了由处理单元11执行控制以对各个线程的处理中所包含的时钟周期的数量进行计数的流程图。所述控制,例如是由处理器301根据OS22a所执行的控制。当对各个进程中所包含的时钟周期的数量进行计数时,执行与图7中的流程相同或类似的流程。然而,在这种情况下,所述控制在进程中而不是在线程中执行。
首先,执行控制单元111确定线程控制事件是否已发生(S11)。当由执行控制单元111确定线程控制事件已经发生时(步骤S11中为“是”),执行控制单元111开始处理以停止或终止线程(S12)。S12中的处理将在后文描述。当S12中的处理结束时,执行控制单元111开始处理以生成或激活一个线程(S13)。S13中的处理也在后文描述。根据分配给处理器301的进程的状态,诸如当正在执行的线程的处理完成时或当另一个线程的中断发生时,OS22a中包含的多线程调度器执行是否发起了线程控制事件的判定。
图8示出了上述停止或终止线程的处理(S12)的示例。首先,执行控制单元111判定所发生的事件是否是用于停止线程(S21)。当所发生的事件不是用于停止线程时(在S21中为“否”),执行控制单元111判定所发生的事件是否是用于终止线程(S29)。由包含在OS22a中的多线程调度器,根据诸如中断是否已经发生或线程处理是否已经结束等情况来确定事件的生成以及根据该事件生成所执行的处理。
当停止线程的事件发生时(在S21中为“是”),执行控制单元111停止由控制器301正在处理的线程的读取命令(S22)。在S22的处理之后,执行控制单元111获取与停止命令读取对应的线程的处理信息。例如,执行控制单元111读取处理器301中的程序计数器和堆栈指针的值。此外,执行控制单元111控制存储控制单元115以将所读取的处理信息存储在对应于正在被停止的线程的线程上下文中,所述线程上下文被存储在存储单元12中(S23)。
当S23中的处理被执行时,在S24到S27中,通过读取处理单元113、计算单元114和存储控制单元115所执行的处理,来执行更新正在被停止的线程中的时钟周期的数量的处理。首先,读取处理单元113从时钟计数器112中读取时钟值(clk1)(S24),并且存储控制单元115从正在被停止的线程的线程上下文中读取初始时钟值(clk0)以及合并值S(S25)。S25中的处理可以在S24之前执行。
计算单元114使用在S24和S25中读取的时钟值(clk1)、初始时钟值(clk0)以及合并值S来执行表达式(3)和(4)中的算术运算,并更新合并值S(S26)。存储控制单元115将更新后的合并值S存储在存储单元12中正在被停止的线程的线程上下文中(S27)。当在S27中的处理被执行时,在S12中的处理结束(S28)。
当S29中的判定结果表明用于终止线程的事件已经发生(在S29中为“是”),在S30到S33中,通过读取处理单元113、计算单元114和存储控制单元115所执行的处理来执行更新正在被终止的线程中的时钟周期的数量的处理。S30至S33中的处理与S24到S27中的处理相同或相似,因此省略对其的说明。
在S33的处理之后,存储控制单元115将包含在正在被终止的线程的线程上下文中的线程ID和合并值S存储在存储单元12的另一个存储区域中(S34)。因此,即使当用于线程上下文的存储区域被释放时,表示所述终止线程的操作数量的数据仍可以保留。当S34中的处理结束时,在S12中的处理结束(S28)。
当在S29中的判定结果表明事件不是用于终止线程时(在S29中为“否”),S12中的处理结束(S28)。例如,当线程在计算机1被激活后立即开始时,因为在之前没有线程被处理,则在S29中判定该事件不是用于终止线程的事件。
图9示出了上述生成或激活线程的处理(S13)的处理示例。首先,执行控制单元111判定已经发生的事件是否是为了激活线程(S41)。当所发生的事件不是用于激活线程时(在S41中为“否”),执行控制单元111判定已经发生的事件是否是用于生成线程(S47)。由包含在OS22a中的多线程调度器,根据诸如中断是否已经发生或线程处理是否已经结束等情况来确定事件的生成以及根据该事件生成所执行的处理。
当已经发生的事件是用于激活线程时(在S41中为“是”),执行控制单元111从时钟计数器112中读取时钟值(clk1)(S42)。在通过S42中的处理读取时钟值(clk1)后,如表达式(2)中所示,计算单元114使用时钟值(clk1)对变量clk0赋值。存储控制单元115将使用时钟值(clk1)所赋值的变量clk0存储在对应于要被激活的线程的线程上下文中(S43)。
此外,存储控制单元115从存储单元12读取要被激活的线程的线程上下文中的处理信息(S44)。所述处理信息是用于要被激活的线程的处理的信息,并且该处理信息包括,例如程序计数器和堆栈指针的值。在S44中的处理可以在S42或S43的处理之前或之后进行。当在S44中的处理被执行时,执行控制单元111使执行单元110基于在S44中读取的处理信息来开始处理(S45)。在S45中的处理被执行后,在S13中的处理结束(S46)。
当在S47中判定的结果表示已经发生的事件是用于生成线程时(在S47中为“是”),执行控制单元111生成线程上下文(S48)。在S48中的处理中,基于来自执行控制单元111的指令,存储控制单元115确定在存储单元12中用于存储所述线程上下文的存储区域,并使要被生成的线程的线程ID存储于所述存储区域中。
读取处理单元113从时钟计数器112中读取时钟值(clk1)(S49)。S49中的处理可以在S48中的处理之前进行。当通过S49的处理读取时钟值(clk1)时,如表达式(2)所示,计算单元114使用时钟值(clk1)对变量clk0赋值。存储控制单元115将使用时钟值(clk1)所赋值的变量clk0存储在要被生成的线程的线程上下文中(S50)。当S50中的处理被执行时,执行控制部111使执行单元110开始处理(S51)。当S51中的处理被执行时,S13中的处理结束(S46)。当在S13中的处理结束时,执行控制单元111执行S11中的处理,并检测线程控制事件的发生。
当计算机1执行以上处理时,对于在计算机1上运行的各个线程及进程,计数在由处理器301执行的处理中所包含的时钟周期的数量。由于处理器301的操作消耗功率,由处理器301执行的实际操作数量的测量在估计处理器301的操作中所包含的成本(诸如处理器301的功率消耗)时是有意义的。例如,现有技术中根据占用时间估计处理器301的功率消耗的方法,在工作频率变化之前以及之后,对于功率消耗的估计结果是不一致的。与之相比,在上述处理中,因为获得了处理器301的实际操作数量,因此即使处理器301的工作频率变化时,仍可根据变化后的工作频率来估计功率消耗的数量。在第一实施例中,因为要为各个进程或线程计算处理中所包含的时钟周期的数量,因此对于在各个进程或线程中的功率消耗的估计具有意义的操作数量是可检测的。此外,除了功率消耗,计算机1还可以根据处理器301的操作数量来估计例如,由处理器301产生的功率消耗所生成的二氧化碳的量或者处理器301辐射的热量,作为处理器301的操作所包含的成本。
例如通过预先计算处理器301每时钟周期所消耗的功率,并且将第一实施例中计数的时钟周期的数量与预先计算的每时钟周期所消耗的功率相乘,来计算功率消耗的估计值。类似地,例如,通过将预先计算的对应于处理器301的一个时钟周期所释放的二氧化碳的量与第一实施例中所计数的时钟周期的数量相乘,来计算二氧化碳量的估计值。此外,例如当计算所释放的二氧化碳量时,待与第一实施例中计数的时钟周期的数量相乘的值的大小可以根据被提供给处理器301的电力的发电类型而改变。例如,可以使用两种类型的值:一种使用矿物燃料发电,一种使用可再生能源发电。类似的,由处理器301生成的热量可以通过以下算术运算来获得,如将预先计算的表示处理器301的每时钟周期所发出的热量的值与时钟周期的数量相乘。
除了经过处理器301中的电路的充电和放电之外,处理器301还由于电流泄漏而消耗功率。因此,例如,当计算功率消耗时,执行单元110将由于电流泄漏导致的功率消耗与基于时钟周期的数量所获得的功率消耗相加,并输出总和值。由电流泄漏导致的功率消耗如下计算。例如,通过与处理单元11计算时钟周期的数量的方式相同或相似的处理来测量处理各个进程或线程所包含的时间。执行单元110将所测得的时间与每单位内因电流泄漏而导致的功率消耗相乘。此时,当从时钟计数器112读取时钟周期数时,包含在处理单元11中的读取处理单元113从计时器获取时间信息。此外,执行控制单元111以及存储控制单元115执行与时钟周期的数量的计数方式相同或相似的处理,并将处理中使用的累计时间存储在进程上下文或线程上下文中。
下面将描述第二个实施例。在第二实施例中使用了第一实施例中的计算机1。在第二实施例中,运行在计算机1上的应用程序23c执行使处理器301在执行应用程序23a和23b的处理时的操作数量可视化的处理。执行单元110基于应用程序23c执行例如如下所述的可视化处理。
图10A至10C示出了表示进程和线程之间的关系的表T2a至T2c(以下也可以统称为“表T2”)。图10A中所示的表T2a表示,进程ID为“A-1”的进程包括线程ID为“a”的线程。图10B中所示的表T2b表示,进程ID为“B-1”的进程包括线程ID为“b”的线程和线程ID为“c”的线程。图10C中所示的表T2c表示,进程ID为“A-2”的进程包括线程ID为“d”的线程。如图10B所示,在一个进程中可能会生成两个或更多个线程。表示进程和线程之间的关系的表并不限于图10A至10C中所示的那些。可生成与计算机1上运行的各个进程对应的表。
图11示出了表示程序和进程之间的关系的表T3。表T3包括将计算机1正在执行或计算机1过去执行的程序与进程相关联的信息,其中所述进程为各个程序的处理单元。表T2和T3被存储在存储单元12中。在图11中,程序ID“A”与进程ID“A-1”和“A-2”相关联,程序ID“B”与进程ID“B-1”和“B-2”相关联,程序ID“C”与进程ID“C-1”相关联。作为例子,应用程序23a的程序ID为“A”,应用程序23b的程序ID为“B”,以及应用程序23c的程序ID为“C”。
执行单元110提取与运行在计算机1中的程序、过程和线程有关的信息,并更新表示进程和线程之间的关系的表T2,以及表示程序和进程之间的关系的表T3。所述更新在根据计算机上执行的操作的时间或在给定的时间来周期性地执行。当更新时间已经到达时,执行单元110通过获取存储在各个进程的进程上下文中的线程ID并将所获得的线程ID存储在表T2的对应于各个进程的一个表中来更新表T2。当更新时间已经到达时,执行单元110通过获取存储在进程管理表(未示出)中的进程ID以及将所获得的相关于各个程序的进程ID存储于表T3中来更新表T3,执行控制单元111使用所述进程管理表来执行进程控制。
此外,执行单元110从计算机1上执行的各个线程或进程的线程上下文或进程上下文中采集合并值S,并基于所采集的合并值S以及表T2和T3来计算在计算机1上运行的各个程序的操作数量。当差值d代替合并值S而被存储在各个进程上下文或线程上下文中时,计算各个进程上下文或线程上下文中存储的差值d的总和,并且将该总和视为给定程序的合并值S。使用例如图12所示的表T4来管理各个程序的操作数量。在表T4中,各个程序的程序ID相关于程序的程序操作数量T。
图13示出了计算各个程序的程序操作数量T的流程图。所述处理根据应用程序23c由执行单元110执行。与表T2和T3的更新一样,程序的操作数量T的计算在根据计算机1上所执行的操作的时间或者在给定的时间来周期性地执行。在S61的处理中,判定所述时间是否到达。当确定计算程序操作数量T的时间已经到达时(在S61中为“是”),执行单元110从表T3所表示的程序ID中选择未被选择的程序ID(S62)。执行控制单元111清空在S62中所选择的表示程序ID的操作数量的变量D(S63)。S63中的处理可以在S62中的处理前被执行。
接下来,执行单元110在与S62中从表T3中所选择的程序ID相关的进程ID中选择未选择的进程ID(S64)。在S64中的处理之后,执行单元110在与S64中所选择的进程ID相关的线程ID中选择未被选择的线程ID(S65)。
执行单元110从对应于S65中所选择的线程ID的线程上下文中读取合并值S(S66)。在S66中的处理之后,执行单元110将变量D的值更新为S66中所读取的合并值S与变量D的总和(S67)。即,执行单元110执行算术运算D=D+S,其中“=”是表示赋值的操作符。在此时,执行单元110将包含在线程上下文中的合并值S清零(S=0)(S68)。
在S68中的处理之后,执行单元110判定在与S64中从表T2所选择的进程ID相关联的线程ID中是否存在未被选择的线程ID。当在S69中的判定结果表明存在未被选择的线程ID时(S69中为“是”),执行单元110再次执行S65中的处理。当在S69中的判定结果表明没有未被选择的线程ID时(S69中为“否”),执行单元110判定在与S62中从表T3所选择的程序ID相关联的进程ID中是否存在未被选择的进程ID(S70)。当在S70中的判定结果表明存在未被选择的进程ID时(在S70中为“是”),执行单元110再次执行S64中的处理。
当在S70中的判定结果表明不存在未被选择的进程ID时(在S70中为“否”),执行单元110更新与表T4中所选择的程序ID相关联的程序操作数量T(S71)。即,执行单元110执行算术运算T=T+D,其中“=”是表示赋值的操作符。在S71的处理之后,执行单元110确定在表T3所表示的程序ID中是否存在未被选择的程序ID(S72)。当在S72中的判断结果表明存在未被选择的程序ID时(在S72中为“是”),执行单元110再次执行S62中的处理。
当在S72中的判定结果表明不存在未被选择的程序ID时(在S72中为“否”),执行单元110判断是否存在执行显示处理的请求(S73)。例如,当用户输入显示请求时,或当从另一设备接收到显示请求时,判定为存在执行显示处理的请求。当不存在执行显示处理的请求时(在S73中为“否”),执行单元110终止处理(S75)。
当在S73中的判定结果表明存在执行显示处理的请求时(在S73中为“是”),例如,生成如图15所示的屏幕信息41(S74)。当接收到来自用户的显示请求时,执行单元110将所生成的屏幕信息41显示在输出装置312上。当接收到来自另一个设备的显示请求时,执行单元110将屏幕信息41发送到发送显示请求的设备。图15所示的屏幕信息41包括表示各个程序的时钟周期的数量、功率消耗、释放的热量以及二氧化碳消耗量的信息。如第一实施例所述,各个程序的功率消耗以及释放的二氧化碳的量可以通过,例如分别将每时钟周期的功率消耗和每时钟周期所释放的二氧化碳量与程序操作数量T相乘来计算。
下面描述第三实施例。在第三实施例中,使用了第一实施例中的计算机1的硬件。第三实施例在软件配置上与第一和第二实施例是不同的。
图16示出了根据第三实施例的计算机1的软件配置的示例。在计算机1上运行着多个虚拟机26a-26c。用于执行各个虚拟机26a-26c的处理的硬件21由管理程序22b控制。
另外,在第三实施例中,计算机1包括执行单元110、执行控制单元111,时钟计数器112,读取处理单元113,计算单元114和存储控制单元115。通过基于第三实施例中的管理程序122b的处理,处理器301实现第一实施例中的执行控制单元111、读取处理单元113、计算单元114以及存储控制单元115的功能。在第三实施例中,对于各个进程或线程的处理器301的操作数量,在管理程序22b的管理下进行计算,其中的进程或线程是各个虚拟机26a到26c的处理的处理单元。
在第三实施例中,虚拟机26c是用于管理操作数量的虚拟机。基于虚拟机26c的由执行单元110执行的处理在下面参照图7进行描述。
首先,执行单元110执行测量各个应用程序的操作数量的处理,如第二实施例中S61至S72的处理(S81)。接下来,执行单元110从在图18所示的虚拟机管理表T5所包含的虚拟机标识信息(virtual machineidentification information,VMID)中选择未被选择的虚拟机标识信息(S82)。在此作为示例,虚拟机26a的VMID为“X”,虚拟机26b的VMID为“Y”,以及虚拟机26c的VMID为“Z”。当S82中的处理被执行时,表示各个虚拟机的操作数量的变量U被清零(S83)。此外,执行单元110在与S82中从虚拟机管理表T5所选择的VMID相关联的程序中选择未被选择的程序(S84)。执行单元110从表T5中读取S84中所选择的程序的程序操作数量T,并基于所读取的程序操作数量U更新变量U(S85)。例如,执行单元110通过将变量U与程序操作数量T的总和赋值给变量U来更新变量U。
当S85中的处理被执行时,执行单元110判定在与S82中从图18所示的虚拟机管理表T5所选择的VMID相关联的程序中是否存在未被选择的程序(S86)。当S86中的判定结果表明存在未被选择的程序时(在S86为“是”),执行单元110再次执行S84中的处理。
当S86中的判定结果表明不存在未被选择的程序时(在S86中为“否”),执行单元110将变量U的值与S82中选择的VMID相关联,并将相关联的U和VMID存储在图19所示的表T6中(S87)。在S87的处理之后,执行单元110判定包含在表T5中的VMID中是否存在未被选择的VMID(S88)。当S88中的判定结果表明存在未被选择的VMID时(在S88中为“是”),执行单元110再次执行S82中的处理。
当S88中的判定结果表明不存在未被选择的VMID时(在S88中为“否”),执行单元110执行如第二实施例的S73和S74中的处理(S89)。例如,执行单元110响应于请求生成屏幕信息,并执行发送所生成的屏幕信息或显示所生成的屏幕信息的处理。
图20示出了第三实施例中的屏幕信息的示例。屏幕信息42是为使用虚拟机26a的用户指示虚拟机26a的操作数量的信息。如图20所示,为了例如在每月结束时生成包含各个月的用户使用状态的屏幕信息,执行单元110将表T6拷贝到另一个存储区域,并清除表T6中所包含的有关虚拟机(virtual machine,VM)操作数量的信息。此外,当生成屏幕信息时,执行单元110为要被显示的VMID读取存储在表T6中的VM操作数量,以及被存储在其他存储区域的过去月份的VM操作数量。类似于第二实施例,执行单元110将所读取的VM操作数量与每时钟周期的功率消耗量以及每时钟周期的二氧化碳释放量分别相乘,从而分别计算出各个月的功率消耗以及二氧化碳释放量。与功率消耗一样,每月所收取的费用根据给定合约(例如将每时钟周期的费用与时钟周期的数量相乘而获得的值)来确定。
下面描述第四实施例。在第四实施例中,如在第三实施例中一样,各个虚拟机都运行于计算机1中。此外,具有控制硬件21的驱动器功能的虚拟机也运行于计算机1上,所述驱动器执行在计算机1上运行的各个虚拟机的处理。相比之下,在第三实施例中,例如管理程序22b具有驱动器功能。如在第三实施例中的一样,虚拟机26c是例如管理操作数量的虚拟机。
图21示出了第四实施例中的计算机1的软件配置的示例。除了图16所示的第三实施例的软件配置,还运行有驱动器VM27a和驱动器VM27b。执行VM26a的处理的硬件基于驱动器VM27a来控制。此外,执行VM26b的输入以及输出的硬件基于驱动器VM27b来控制。
图22所示的表T7表示了第四实施例中的虚拟机管理表。虚拟机管理表T7是存储以下数据的表:对于各个虚拟机,该数据将运行于计算机1上的虚拟机(包括驱动器VM)的ID与运行于虚拟机上的程序的ID相关联。在虚拟机管理表T7中,驱动器VM27的ID为“XX”,驱动器VM27b的ID为“YY”。在虚拟机管理表T7中,还表明了VM之间的关系。例如,虚拟机管理表T7包括与VMID“XX”相关联的VMID“X”,作为表示关系的信息。所述信息表示VMID为“XX”的虚拟机为执行VMID为“X”的虚拟机的处理的虚拟机。
在第四实施例中,执行单元110基于虚拟机26c执行图17中所示的流程图。不同于第三实施例,在S82中,驱动器虚拟机27a、27b和27c也被选择。通过执行单元110执行S82至S88的流程,运行于计算机1上的各个虚拟机的操作数量被计算。图23示出各个虚拟机的操作数量。此外,在图17所示的S89的流程中,执行单元110执行上述的显示处理。在第四实施例中,对于虚拟机管理表T7中的彼此相关的虚拟机,执行单元110计算相关虚拟机的操作数量的总和,并显示所述计算出的总和。
在第四实施例中,通过执行以上的处理,除了由处理器301针对要被测量的程序所执行的算术处理,由处理器301执行的硬件控制的操作数量也是可测量的。此外,对于在计算功率消耗时用作被乘数的系数,例如要被各个虚拟机26a至26c的操作数量乘以的系数是与要被各个驱动器VM27a和27b的操作数量乘以的系数不同的值。例如,对于驱动器VM27a和27b,还可以设置考虑到由各个驱动器VM27a和27b控制的硬件的功率消耗的系数。
下文中将描述第五实施例。第五实施例是例如在图24中示出的包括第一实施例中的计算机1的系统的实施例。
如图24所示的系统,包括计算机1、计算机2、中继设备3、中继设备4以及网络5。计算机1的硬件配置和功能配置与第一实施例到第四实施例中的计算机1的配置是相同或相似的。计算机2是例如与计算机1的硬件配置相同或相似的计算机。中继设备3是对计算机1和网络5之间的通信进行中继的设备。中继设备4是对计算机2和网络5之间的通信进行中继的设备。例如,计算机2是由运行于计算机1上的虚拟机提供服务的计算机。替代地,被提供给的服务的计算机并不限于图24中所示的计算机2。例如,服务可以被提供给多个计算机(未示出)。
在第五实施例中,为被提供给服务的各个目的机测量处理器301的操作数量。对于被提供给服务的各个目的机的测量,意味着测量处理器301所执行的操作数量。对请求被提供给服务的访问源的各种处理的情况执行所述测量。例如,上述测量意味着对以已经通过接收服务的验证的用户为单位(以可以通过用户ID或类似信息标识的帐号为单位)或以服务请求源的互联网协议(IP)地址等为单位所执行的处理,测量计算机1的操作数量。
图25示出了计算机1的软件配置的示例。如在第三实施例中一样,管理程序22b以及虚拟机26a至26c运行于计算机1之上。在第五实施例中,虚拟机26a包含OS28a、应用程序29a以及应用程序29b。虚拟机26b包括OS28b、应用程序29c以及应用程序29d。虚拟机26a和26b两者都不限于图25所示的软件配置,其他应用程序也可以在计算机1上运行。
在第五实施例中,服务被基于应用程序29a提供给另一个计算机。基于应用程序29b来管理包含在虚拟机26a中的各个应用程序的操作数量。如同第一实施例中的OS22a,OS28a是根据运行于其上的各个应用程序执行硬件控制的软件。OS28a使运行于其上的各个应用软件的操作数量能够被计数。与第一实施例不同,在第五实施例中,OS28a所执行的控制为在管理程序22b上所执行的控制,管理程序22b仿真硬件21。硬件21根据管理程序22b的控制执行处理。
图26是示出要被测量的单元的切换时间的时序图。即,图26中所示的切换时间是,例如要由应用程序29a进行处理的单元的切换、要由OS28a进行处理的单元的切换或者要由管理程序22b进行处理的VM的切换。要由应用程序29进行处理的单元是可被服务(由应用程序26a提供)识别的单元(要被处理的单元,如用户(帐户)或地址)。在图26中,单元通过被称为“CLID”的标识信息来识别。标识信息“CLID”是,例如用户ID或处理请求源的地址。
要被处理的VM由管理程序22b切换。在VM26a的处理被执行的时段中,管理程序22b执行待由OS28a处理的应用程序的处理。
要被处理的应用由OS28a切换。要被处理的应用的切换基本上由如第一实施例中所述的进程或线程的切换来执行。在OS28a的控制下,根据进程或线程的切换(包括停止、终止、激活以及生成进程或线程)来读取时钟计数器的值。此时所读取的时钟计数器的值是由管理程序22b仿真的时钟计数器的值,并且该值可以通过计数在用于VM26a的处理中所包含的时钟周期的数量而获得。
要被处理的单元由应用程序29a切换。在图26中,标识信息CLID为C1的单元被切换到标识信息CLID为C2的单元(X1)。通过所述切换(X1),应用程序29a向OS28a通知所述切换。切换的通知包括切换目的机处的单元的标识信息CLID。根据来自应用程序29a的切换通知,OS28a执行时钟计数处理并且改变计数器值的存储位置。时钟计数处理按照与根据应用的切换的计数类似的方式来执行(参见图7-9)。改变计数器值的存储位置是对存储时钟周期的数量的合并值S的线程上下文或进程上下文进行切换的处理。在第五实施例中,线程上下文和进程上下文被提供给要被处理的各个单元,其将在下面进行描述。
图27A-27C以及图28示出了在第五实施例中用于管理程序、进程以及线程的管理表的示例。在第五实施例中,为各个被处理的对象管理例如程序、进程、以及线程。也就是说,将各个要被处理的对象的标识信息CLID与图5、11和12所示的表中所包含的程序、进程以及线程的ID相加,并且管理所述标识信息CLID和所述ID。
图27A至27C示出了进程与线程之间的关系。在第五实施例中,OS28a将在通知中给出的标识信息CLID增加到进程ID以及线程ID两者中。图28示出了程序和进程之间的关系。在第五实施例中,OS28a将在通知中给出的标识信息CLID增加到程序ID和进程ID两者中。
当OS28a改变存储位置时,如果如图27A至27C和图28所示的信息对于在切换目的地处要被处理的单元来说并不存在,则基于来自应用程序29a的通知中所包含的标识信息CLID来生成管理信息。例如,要被生成的信息包含表示程序与进程之间关系的信息和表示进程与线程之间的关系的信息(如图27A至27C以及图28所示),以及用于各个CLID的线程上下文和进程上下文。
如同第二实施例中的应用程序23c那样,所述应用程序29b是例如管理运行于OS28a上的应用的操作数量的应用程序。图29所示的表T11由应用程序29b管理。图29示出了表11,该表是存储了根据OS28a运行的各个程序的各个处理单元的操作数量的表。
应用程序29b基于图27A-27C以及图28中所示出的关系以及存储于各个线程上下文或各个进程上下文中的合并值S的值来更新图29中所示的表T11。所述更新通过类似于图13和14中所示出的对表T4的更新的处理来执行。因此,应用程序29b测量在各个要被处理的单元中可被识别的处理所包含的处理器301的操作数量。由应用程序29b生成的屏幕信息通过如电子邮件等工具发送到,例如适当的处理目标。所述屏幕信息是例如表示操作数量的测量结果的屏幕信息,例如图15或图10中所示的那样。因此,接收所提供的服务的用户变得能够知晓在提供的服务时所包含的处理器301的操作数量。
例如在上述第一至第五实施例的任意一个中,处理器301可包括多个内核。根据进程或线程控制,OS从分配进程或线程的处理器301的各个内核所设置的时钟计数器中读取值,从而计算在各个内核所执行的处理中所包含的操作数量。
本文所述的所有示例和条件语言都用于教示的目的,以帮助读者理解本发明和发明人所提出的促进本技术领域的发展的概念,并被认为不局限于该具体阐述的示例和条件,同样说明书中的这些示例的组成不表示本发明的优势和劣势。虽然本发明的实施例被详细的描述,但是应当理解,在不脱离本发明的精神和范围的情况下,可以对本发明进行各种修改、替换和变形。

Claims (10)

1.一种计算方法,包括:
通过处理器计算第一值与第二值之间的差值,所述第一值从用于对时钟信号的脉冲进行计数的时钟计数器中读取,所述时钟信号具有多种频率并响应于对要被分配给所述处理器的单元的处理进行启动的控制命令而提供给所述处理器,所述第二值响应于停止处理的控制命令从所述时钟计数器中读取。
2.如权利要求1所述的计算方法,还包括:计算通过将所计算出的差值与表示某类每单位数量的时钟周期的成本值的系数相乘所获得的成本值。
3.如权利要求1或2所述的计算方法,还包括:在存储装置中与用于识别所述单元的标识信息相关联地存储所计算出的差值。
4.如权利要求3所述的计算方法,还包括:
计算第三值和第四值之间的差值,所述第三值响应于在进一步执行所述单元的处理时启动进一步执行的处理的控制命令来从所述时钟计数器中读取,所述第四值响应于停止已经在控制下启动的处理的控制命令来从所述时钟计数器中读取;以及
在所述存储装置中与所述标识信息相关联地存储合并值,所述合并值通过将基于所述第三值和所述第四值所计算出的差值与存储于所述存储装置中的与所述标识信息相关联的差值相加而获得。
5.如权利要求4所述的计算方法,还包括:
计算第五值和第六值之间的差值,所述第五值响应于在要执行其他单元的处理时启动另一个单元的处理的控制命令来从所述时钟计数器中读取,所述第六值响应于停止所述其他单元的处理的控制命令来从所述时钟计数器中读取;以及
当所述其他单元是程序与所述单元的程序相同的单元时,在所述存储装置中与标识所述程序的程序标识信息相关联地存储所述合并值与基于所述第五值和所述第六值所计算出的差值的总和。
6.如权利要求5所述的计算方法,还包括:
当使所述程序的输入控制和输入控制中的至少一个被执行的驱动程序的单元的处理被执行时,计算第七值和第八值之间的差值,所述第七值响应于启动所述驱动程序单元的处理的控制命令从所述时钟计数器中读取,所述第八值响应于停止所述驱动程序单元的处理的控制命令从所述时钟计数器中读取;以及
在所述存储装置中与程序标识信息相关联地存储基于所述第七值和所述第八值的差值与所述合并值和基于所述第五值和所述第六值所计算出的差值的所述总和的总和。
7.如权利要求1至6中任一项所述的计算方法,其中,
所述单元是用作多线程控制对象的线程、用作多任务控制对象的进程以及对访问计算机的访问源执行处理的单元中的一个。
8.一种计算设备,包括:
计算单元,所述计算单元用于计算第一值与第二值之间的差值,所述第一值从对时钟信号的脉冲进行计数的时钟计数器中读取,所述时钟信号具有多种频率并且响应于对要被分配给所述处理器的单元的处理进行启动的控制命令而被提供给所述处理器,所述第二值响应于停止处理的控制命令从所述时钟计数器中读取。
9.如权利要求8所述的计算装置,还包括:
所述单元是用作多线程控制对象的线程、用作多任务控制对象的进程以及对访问计算机的访问源执行处理的单元中的一个。
10.如权利要求8或9所述的计算装置,还包括:
存储单元,所述存储单元与标识所述单元的标识信息相关联地存储所计算出的差值。
CN201210559889.8A 2011-12-21 2012-12-20 计算设备、计算方法及计算程序的记录介质 Active CN103176836B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011280551A JP5799797B2 (ja) 2011-12-21 2011-12-21 算出方法、算出プログラム及びコンピュータ
JP2011-280551 2011-12-21

Publications (2)

Publication Number Publication Date
CN103176836A true CN103176836A (zh) 2013-06-26
CN103176836B CN103176836B (zh) 2016-10-05

Family

ID=47561078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210559889.8A Active CN103176836B (zh) 2011-12-21 2012-12-20 计算设备、计算方法及计算程序的记录介质

Country Status (4)

Country Link
US (1) US9323642B2 (zh)
EP (1) EP2608042B1 (zh)
JP (1) JP5799797B2 (zh)
CN (1) CN103176836B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462437A (zh) * 2014-03-27 2017-02-22 国际商业机器公司 用于管理计算机中的多个线程的控制区

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6670525B2 (ja) * 2013-11-01 2020-03-25 長井 信二 温室効果ガス排出量自動計算装置、倉庫管理システムおよび温室効果ガス排出量自動計算装置用コンピュータソフトウェア
US9558035B2 (en) * 2013-12-18 2017-01-31 Oracle International Corporation System and method for supporting adaptive busy wait in a computing environment
CN110309036B (zh) * 2018-03-27 2023-02-10 华为技术有限公司 一种cpu占用率检测方法及检测设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011018163A (ja) * 2009-07-08 2011-01-27 Renesas Electronics Corp 半導体装置
CN102057356A (zh) * 2008-06-11 2011-05-11 高通股份有限公司 用于测量任务负载的方法和系统
CN102184125A (zh) * 2011-06-02 2011-09-14 首都师范大学 异构多核环境下基于程序行为在线分析的负载均衡方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63170744A (ja) * 1987-01-08 1988-07-14 Mitsubishi Electric Corp 情報処理装置
US5838976A (en) * 1995-11-28 1998-11-17 Hewlett-Packard Co. System and method for profiling code on symmetric multiprocessor architectures
US7242223B1 (en) * 2003-03-10 2007-07-10 National Semiconductor Corporation Clock frequency monitor
US7571338B2 (en) * 2004-05-24 2009-08-04 Telefonaktiebolaget Lm Ericsson (Publ) Determining a time difference between first and second clock domains
JP4661509B2 (ja) * 2005-09-30 2011-03-30 富士通株式会社 伝送装置
KR100741470B1 (ko) * 2006-09-26 2007-07-20 삼성전자주식회사 유에스비 장치를 위한 클럭 발생기
US7788511B2 (en) * 2007-08-16 2010-08-31 Texas Instruments Incorporated Method for measuring utilization of a power managed CPU
US7881895B2 (en) * 2008-05-27 2011-02-01 Sony Ericsson Mobile Communications Ab Methods of calibrating a clock using multiple clock periods with a single counter and related devices and methods
JP5153503B2 (ja) 2008-07-31 2013-02-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 消費電力を推定するシステムおよび方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102057356A (zh) * 2008-06-11 2011-05-11 高通股份有限公司 用于测量任务负载的方法和系统
JP2011018163A (ja) * 2009-07-08 2011-01-27 Renesas Electronics Corp 半導体装置
CN102184125A (zh) * 2011-06-02 2011-09-14 首都师范大学 异构多核环境下基于程序行为在线分析的负载均衡方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462437A (zh) * 2014-03-27 2017-02-22 国际商业机器公司 用于管理计算机中的多个线程的控制区
CN106462437B (zh) * 2014-03-27 2019-11-15 国际商业机器公司 用于管理计算机中的多个线程的控制区

Also Published As

Publication number Publication date
EP2608042A2 (en) 2013-06-26
CN103176836B (zh) 2016-10-05
EP2608042A3 (en) 2017-02-15
JP5799797B2 (ja) 2015-10-28
US9323642B2 (en) 2016-04-26
JP2013131076A (ja) 2013-07-04
US20130166941A1 (en) 2013-06-27
EP2608042B1 (en) 2020-09-16

Similar Documents

Publication Publication Date Title
Gelenbe et al. Analysis and synthesis of computer systems
CN103838668B (zh) 关联能量消耗与虚拟机
CN104838359B (zh) 等待时间敏感的软件中断和线程调度
Huang et al. Cap3: A cloud auto-provisioning framework for parallel processing using on-demand and spot instances
CN102103516A (zh) 基于虚拟cpu的频率和电压调节
CN106662909A (zh) 操作系统中的启发式处理器电力管理
US8683160B2 (en) Method and apparatus for supporting memory usage accounting
Denning Resource allocation in multiprocess computer systems.
CN103176836A (zh) 计算设备、计算方法及计算程序的记录介质
Sigovan et al. Visualizing Large‐scale Parallel Communication Traces Using a Particle Animation Technique
CN105378668A (zh) 多处理器系统中的操作系统管理的中断引导
Noureddine et al. Unit testing of energy consumption of software libraries
EP2551767A1 (en) Method and device for adjusting clock interrupt cycle
CN103677990A (zh) 虚拟机实时任务的调度方法、装置和虚拟机
Gómez-Martín et al. Fattened backfilling: An improved strategy for job scheduling in parallel systems
JP2021168128A (ja) 人材需要予測方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
US20120331231A1 (en) Method and apparatus for supporting memory usage throttling
US20200326766A1 (en) Idle state estimation by scheduler
Lin et al. Backup or not: An online cost optimal algorithm for data analysis jobs using spot instances
Wang et al. Memory scaling of cloud-based big data systems: A hybrid approach
Anderson et al. Value-maximizing deadline scheduling and its application to animation rendering
Zhang et al. An energy-efficient task scheduling heuristic algorithm without virtual machine migration in real-time cloud environments
Akhmetov et al. Adaptive Decision Support System for Scaling University Cloud Applications
CN102063289B (zh) 串行程序线程级推测执行能力评估方法和评估器
Wang et al. Optimal synthesis of communication procedures in real-time synchronous reactive models

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