亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種計算機進程功耗的測量方法及測量裝置、計算機系統(tǒng)的制作方法

文檔序號:6471007閱讀:199來源:國知局
專利名稱:一種計算機進程功耗的測量方法及測量裝置、計算機系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種計算機進程功耗的測量方法及測量裝
置、計算機系統(tǒng)。
背景技術(shù)
隨著計算機硬件制造工藝水平的提高和計算機架構(gòu)的改進,計算機的運算速度得 到大幅度的提升。然而,隨著處理器及相關(guān)部件運行頻率的增加,盡管采用了低功耗的設(shè) 計技術(shù),但是硬件的功耗總體上仍在不斷增大;另一方面,計算機操作系統(tǒng)也變得越來越 復(fù)雜,對硬件資源的占用也越多越大,也導(dǎo)致功耗的增加。在能源變得緊張的今天,人們希 望利用軟、硬件技術(shù),開發(fā)出既能滿足人們使用計算機需求,同時又節(jié)省功耗的綠色計算機 (PC)。 在計算機系統(tǒng)中,由于硬件的使用頻度以及硬件資源的占用,都是由軟件來確定 的,因此,軟件功耗能夠反映出計算機系統(tǒng)真實運行環(huán)境中的功耗。軟件功耗對于開發(fā)者解 決降低計算機功耗的具有十分重要的意義,是開發(fā)者制定降低計算機功耗的方法和策略的 基礎(chǔ)。而在現(xiàn)有技術(shù)中,計算機功耗的測量對象,幾乎都是硬件部件,鮮見對軟件功耗的測

發(fā)明內(nèi)容
本發(fā)明實施例所要解決的技術(shù)問題是提供一種計算機進程功耗的測量方法及測 量裝置、計算機系統(tǒng),實現(xiàn)了對計算機軟件的基本運行單元——進程的功耗測量,獲得了軟 件運行功耗的基礎(chǔ)指標(biāo)。 為解決上述技術(shù)問題,本發(fā)明實施例提供方案如下
—種計算機進程功耗的測量方法,包括以下步驟
監(jiān)視操作系統(tǒng)中的線程調(diào)度; 判斷即將被調(diào)度到的線程是否為待測進程的線程,并輸出判斷結(jié)果;
在所述判斷結(jié)果表明所述即將被調(diào)度到的線程為所述待測進程的線程、并且所述 即將被調(diào)度到的線程占用CPU時間片時,采集所述CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計 算得到所述即將被調(diào)度到的線程的功耗; 重復(fù)上述步驟,直到得到所述待測進程的所有線程的功耗,并根據(jù)所述所有線程 的功耗,統(tǒng)計得到所述待測進程的功耗。 優(yōu)選地,上述測量方法中,所述當(dāng)前運行參數(shù)包括所述CPU的電流值和電壓值,所
述采集所述CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到所述即將被調(diào)度到的線程功耗
包括多次采集所述CPU的電壓值和電流值,并將每次采集的電流值和電壓值相乘,得到多
個乘積值;對所述多個乘積值求平均值,得到所述即將被調(diào)度到的線程的功耗。
優(yōu)選地,上述測量方法中,所述統(tǒng)計得到所述待測進程的功耗包括 根據(jù)所述待測進程中每個線程所占用的CPU時間片在所述所有線程所占用的CPU時間片中的比例,確定每個線程的功耗的權(quán)值; 根據(jù)所述每個線程的功耗的權(quán)值,對所述待測進程的每個線程的功耗進行加權(quán)并 求和,得到所述待測進程的在單位時間內(nèi)的平均功耗。 優(yōu)選地,上述測量方法中,所述統(tǒng)計得到所述待測進程的功耗還包括在所述待測 進程的所有線程的功耗中,確定其中功耗最小的第一功耗和功耗最大的第二功耗,分別作 為所述待測進程的最小功耗和最大功耗。 優(yōu)選地,上述測量方法中,所述監(jiān)視操作系統(tǒng)中的線程調(diào)度包括利用放置在所述 操作系統(tǒng)中的線程調(diào)度監(jiān)視模塊監(jiān)視所述操作系統(tǒng)的線程調(diào)度。 優(yōu)選地,上述測量方法中,所述線程調(diào)度監(jiān)視模塊進一步通過查詢所述CPU的目
的變址寄存器EDI,獲取即將被調(diào)度到的線程的信息,并根據(jù)所獲取的即將被調(diào)度到的信
息,判斷所述即將被調(diào)度到的線程是否為待測進程的線程。
本發(fā)明實施例還提供了一種計算機進程功耗的測量裝置,包括 采集模塊,用于采集CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到CPU的功耗; 線程調(diào)度監(jiān)視模塊,用于監(jiān)視操作系統(tǒng)中的線程調(diào)度,并判斷即將被調(diào)度到的線
程是否為待測進程的線程如果是,則在所述即將被調(diào)度到的線程占用CPU時間片時,獲取
所述CPU的功耗作為所述即將被調(diào)度到的線程的功耗; 功率測量模塊,與所述線程調(diào)度監(jiān)視模塊連接,用于獲取所述即將被調(diào)度到的線 程的功耗,并判斷所述待測進程的所有線程的功耗是否都已得到,如果是,則根據(jù)所述所有 線程的功耗,統(tǒng)計得到所述待測進程的功耗。
優(yōu)選地,上述測量裝置中,還包括 驅(qū)動接口模塊,分別與所述采集模塊和線程調(diào)度監(jiān)視模塊連接,用于提供所述采
集模塊與所述線程調(diào)度監(jiān)視模塊之間的通訊接口。
優(yōu)選地,上述測量裝置中,所述采集模塊包括 傳感器子模塊,用于多次采集所述CPU的電壓值和電流值; 計算子模塊,用于將所述傳感器子模塊每次采集到的電壓值和電流值相乘,得到 多個乘積值,并對所述多個乘積值求平均值,得到所述CPU的功耗。
優(yōu)選地,上述測量裝置中,所述功率測量模塊包括
獲取子模塊,用于獲取所述即將被調(diào)度到的線程的功耗; 平均功耗子模塊,用于根據(jù)所述待測進程中每個線程所占用的CPU時間片在所述 所有線程所占用的CPU時間片中的比例,確定每個線程的功耗的權(quán)值;并根據(jù)所述每個線 程的功耗的權(quán)值,對所述待測進程的每個線程的功耗進行加權(quán)并求和,得到所述待測進程 的在單位時間內(nèi)的平均功耗。
優(yōu)選地,上述測量裝置中,所述功率測量模塊還包括 極值功耗子模塊,用于在所述待測進程的所有線程的功耗中,確定其中功耗最小 的第一功耗和功耗最大的第二功耗,分別作為所述待測進程的最小功耗和最大功耗。
優(yōu)選地,上述測量裝置中,所述線程調(diào)度監(jiān)視模塊包括 監(jiān)視子模塊,用于在所述線程調(diào)度監(jiān)視模塊占用CPU時間片后,通過查詢所述CPU 的目的變址寄存器EDI,獲取即將被調(diào)度到的線程信息,并根據(jù)所獲取的即將被調(diào)度到的線 程的信息,判斷所述即將被調(diào)度到的線程是否為待測進程的線程,并輸出判斷結(jié)果;
測量控制子模塊,用于在所述判斷結(jié)果表明所述即將被調(diào)度到的線程為待測進程 的線程、并且所述線程調(diào)度監(jiān)視模塊被剝奪CPU時間片的同時,啟動所述傳感器子模塊采 集所述CPU的電壓值和電流值;以及在所述線程調(diào)度監(jiān)視模塊重新占用CPU時間片時,通過 所述驅(qū)動接口模塊,獲取所述計算子模塊計算得到的CPU的功耗作為所述即將被調(diào)度到的 線程的功耗。 本發(fā)明實施例還提供了一種計算機系統(tǒng),包括
包括底層硬件,所述底層硬件包括CPU ; 運行在所述底層硬件之上的操作系統(tǒng),其特征在于,還包括 采集模塊,用于采集CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到CPU的功耗;
線程調(diào)度監(jiān)視模塊,用于監(jiān)視操作系統(tǒng)中的線程調(diào)度,并判斷即將被調(diào)度到的線 程是否為待測進程的線程如果是,則在所述即將被調(diào)度到的線程占用CPU時間片時,獲取 所述CPU的功耗作為所述即將被調(diào)度到的線程的功耗; 功率測量模塊,與所述線程調(diào)度監(jiān)視模塊連接,用于獲取所述即將被調(diào)度到的線 程的功耗,并判斷所述待測進程的所有線程的功耗是否都已得到,如果是,則根據(jù)所述所有 線程的功耗,統(tǒng)計得到所述待測進程的功耗。
優(yōu)選地,上述計算機系統(tǒng)中,還包括 驅(qū)動接口模塊,分別與所述采集模塊和線程調(diào)度監(jiān)視模塊連接,用于提供所述采
集模塊與所述線程調(diào)度監(jiān)視模塊之間的通訊接口。
優(yōu)選地,上述計算機系統(tǒng)中,所述采集模塊包括 傳感器子模塊,用于多次采集所述CPU的電壓值和電流值; 計算子模塊,用于將所述傳感器子模塊每次采集到的電壓值和電流值相乘,得到 多個乘積值,并對所述多個乘積值求平均值,得到所述CPU的功耗。
優(yōu)選地,上述計算機系統(tǒng)中,所述功率測量模塊包括
獲取子模塊,用于獲取所述即將被調(diào)度到的線程的功耗; 平均功耗子模塊,用于根據(jù)所述待測進程中每個線程所占用的CPU時間片在所述 所有線程所占用的CPU時間片中的比例,確定每個線程的功耗的權(quán)值;并根據(jù)所述每個線 程的功耗的權(quán)值,對所述待測進程的每個線程的功耗進行加權(quán)并求和,得到所述待測進程 的在單位時間內(nèi)的平均功耗。
優(yōu)選地,上述計算機系統(tǒng)中,所述功率測量模塊還包括 極值功耗子模塊,用于在所述待測進程的所有線程的功耗中,確定其中功耗最小 的第一功耗和功耗最大的第二功耗,分別作為所述待測進程的最小功耗和最大功耗。
優(yōu)選地,上述計算機系統(tǒng)中,所述線程調(diào)度監(jiān)視模塊包括 監(jiān)視子模塊,用于在所述線程調(diào)度監(jiān)視模塊占用CPU時間片后,通過查詢所述CPU 的目的變址寄存器EDI,獲取即將被調(diào)度到的線程的信息,并根據(jù)所獲取的即將被調(diào)度到的 線程的信息,判斷所述即將被調(diào)度到的線程是否為待測進程的線程,并輸出判斷結(jié)果;
測量控制子模塊,用于在所述判斷結(jié)果表明所述即將被調(diào)度到的線程為待測進程 的線程、并且所述線程調(diào)度監(jiān)視模塊被剝奪CPU時間片的同時,啟動所述傳感器子模塊采 集所述CPU的電壓值和電流值;以及在所述線程調(diào)度監(jiān)視模塊重新占用CPU時間片時,通過 所述驅(qū)動接口模塊,獲取所述計算子模塊計算得到的CPU的功耗作為所述即將被調(diào)度到的線程的功耗。 優(yōu)選地,上述計算機系統(tǒng)中,所述操作系統(tǒng)包括一用于調(diào)度線程的線程調(diào)度處理 模塊,所述線程調(diào)度監(jiān)視模塊設(shè)置在所述線程調(diào)度處理模塊中。 從以上所述可以看出,本發(fā)明實施例提供的一種計算機進程功耗的測量方法及測 量裝置、計算機系統(tǒng),實現(xiàn)了對計算機軟件的基本運行單元——進程的功耗測量,獲得了軟 件運行功耗的基礎(chǔ)指標(biāo),為制定降低計算機功耗的方法和策略奠定了基礎(chǔ),便于人們在用 戶的應(yīng)用系統(tǒng)中,找到降低功耗的關(guān)鍵環(huán)節(jié)。并且,本發(fā)明實施例所述測量方法及測量裝 置,是直接測量用戶真實運行環(huán)境中的進程功耗,比任何仿真或特意搭建的測試環(huán)境,更具 備真實性,更能反映出操作系統(tǒng)的軟件的真實功耗。


圖1為本發(fā)明實施例所述計算機進程功耗的測量方法的流程圖;
圖2為本發(fā)明實施例所述計算機進程功耗的測量裝置的示意圖;
圖3為本發(fā)明實施例所述測量方法的應(yīng)用舉例示意圖。
具體實施例方式
在計算機操作系統(tǒng)中,軟件的基本運行單元是進程?,F(xiàn)代個人計算機上的操作系 統(tǒng)是基于優(yōu)先級的搶先式多處理器調(diào)度系統(tǒng)。調(diào)度系統(tǒng)總是運行優(yōu)先級最高的(Ready)線 程。在一個處理器(CPU)核心上同時只能有一個線程得到調(diào)度獲得CPU時間片,即獲得CPU 的控制權(quán),從而得到執(zhí)行本線程。操作系統(tǒng)中的一個進程是由若干線程的組成的,一個進程 的功耗等于該進程的每個線程耗電量的累加。本發(fā)明實施例的主要思想在于,利用進程調(diào) 度的特點,以線程為單位進行功耗測量,在得到進程的所有線程的功耗后,再統(tǒng)計得到該進 程的功耗。以下結(jié)合附圖通過具體實施例作進一步說明。 請參見圖l,為本發(fā)明實施例所述計算機進程功耗的測量方法的流程圖,包括以下 步驟 步驟ll,監(jiān)視操作系統(tǒng)中的線程調(diào)度。 這里,可以通過Detour的方法,插入一個線程調(diào)度監(jiān)視模塊到操作系統(tǒng)線程調(diào)度 處理程序中,用以監(jiān)視操作系統(tǒng)中的線程調(diào)度。具體的,線程調(diào)度監(jiān)視模塊在其占用CPU時 間片(即獲得CPU的控制權(quán))的時候,可以通過查詢CPU內(nèi)部寄存器獲取線程調(diào)度信息,例 如,目的變址寄存器(EDI, Destinationindex register)中保存的是下一個即將被調(diào)度到 的線程的信息,而源變址寄存器(ESI, Source index register)寄存器中保存的是當(dāng)前要 調(diào)度出的線程。因此,通過線程調(diào)度監(jiān)視模塊查詢相關(guān)寄存器,可以很容易監(jiān)控到線程調(diào)度 切換事件,并且,根據(jù)操作系統(tǒng)的線程數(shù)據(jù)結(jié)構(gòu),很容易分析出線程信息及其所屬的進程。
步驟12,判斷即將被調(diào)度到的線程(這里清晰起見,這里稱呼該線程為第一線程) 是否為待測進程的線程,并輸出判斷結(jié)果。 這里,線程調(diào)度監(jiān)視模塊在其占用CPU時間片(即獲得CPU的控制權(quán))的時候,可 以根據(jù)線程數(shù)據(jù)結(jié)構(gòu),分析出第一線程所屬的進程,從而能夠判斷該第一線程是否為待測 進程的一個線程。 步驟13,在所述第一線程占用CPU時間片、并且所述判斷結(jié)果表明所述第一線程為所述待測進程的線程時,采集所述CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到所述 第一線程的功耗。 這里,由于線程調(diào)度監(jiān)視模塊在其占用CPU時間片(即獲得CPU的控制權(quán))的時 候,判斷出即將被調(diào)度到的第一線程為待測進程的線程,因此,在線程調(diào)度監(jiān)視模塊被剝奪 CPU時間片(即交出CPU控制權(quán))的同時,通過與底層傳感器子模塊連接的驅(qū)動接口模塊, 啟動傳感器子模塊采集CPU的運行參數(shù),例如,CPU當(dāng)前的電壓值和電流值。在線程調(diào)度監(jiān) 視模塊交出CPU控制權(quán)的同時,第一線程開始占用CPU的時間片,因此,此時傳感器子模塊 是針對第一線程進行功耗測量。在線程調(diào)度監(jiān)視模塊重新獲得CPU的控制權(quán)時(這時第一 線程被剝奪占用CPU時間片),線程調(diào)度監(jiān)視模塊通過驅(qū)動接口模塊,來讀取計算子模塊根
據(jù)所述傳感器子模塊采集到的電壓值和電流值計算得到的第一線程的功耗。 這里,由傳感器子模塊完成對CPU電功率參數(shù)的感知和測量,例如,測量CPU的
電壓以及電流值,可以使用電壓傳感器和電流傳感器芯片,其中電流的測量通??梢圆捎?br> 霍爾感應(yīng)器件,或者將電流轉(zhuǎn)換成電壓,再由電壓傳感器芯片完成測量。具體的,在所述
第一線程占用CPU時間片期間,可以多次采集CPU的電壓值和電流值(例如,每1ms —
次),并將每次采集的電流值和電壓值相乘,得到多個乘積值;再對所述多個乘積值求平
均值,得到所述第一線程的功耗;最后,將計算得到的功耗轉(zhuǎn)換為系統(tǒng)管理總線(SMBus,
SystemManagement Bus)信號,并等待線程調(diào)度監(jiān)視模塊通過驅(qū)動接口模塊讀取。 這里,所述運行參數(shù)還可以是CPU的電流值和電阻值,通過采集CPU的電流值和電
阻值,并根據(jù)采集到的電流值和電阻值,按照功率計算公式,同樣也可以計算得到所述第一
線程的功耗。 步驟14,重復(fù)上述步驟11 13,直到得到所述待測進程的所有線程的功耗,并根 據(jù)所述所有線程的功耗,統(tǒng)計得到所述待測進程的功耗。 這里,在按照步驟11 13得到待測進程的所有線程的功耗后,就可以計算待測進 程的功耗,具體的計算方式有多種,例如,對所有線程的功耗直接求平均值,將得到的結(jié)果 作為待測進程的平均功耗。這種計算方法在各線程所占用的CPU時間片都相等的時候比較 準(zhǔn)確。 當(dāng)然,還可以根據(jù)每個線程所占用的CPU時間片在待測進程的所有線程所占用的 CPU時間片中的比例,確定每個線程的功耗的權(quán)值;進而根據(jù)每個線程的功耗的權(quán)值,對所 述待測進程的每個線程的功耗進行加權(quán)并求和,從而得到所述待測進程的在單位時間內(nèi)的 平均功耗。按照這種計算方法得到的計算結(jié)果更為準(zhǔn)確。 這里,還可以從待測進程的所有線程的功耗中,確定其中功耗最小的功耗和功耗 最大的功耗,分別作為待測進程的瞬時的最小功耗和最大功耗。 本發(fā)明實施例還提供了一種計算機進程功耗的測量裝置,如圖2所示,該裝置包 括 采集模塊,用于采集CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到CPU的功耗;
線程調(diào)度監(jiān)視模塊,用于監(jiān)視操作系統(tǒng)中的線程調(diào)度,并判斷即將被調(diào)度到的線 程是否為待測進程的線程如果是,則在所述即將被調(diào)度到的線程占用CPU時間片時,獲取 所述CPU的功耗作為所述即將被調(diào)度到的線程的功耗; 驅(qū)動接口模塊,分別與所述采集模塊和線程調(diào)度監(jiān)視模塊連接,用于提供所述采集模塊與所述線程調(diào)度監(jiān)視模塊之間的通訊接口; 功率測量模塊,與所述線程調(diào)度監(jiān)視模塊連接,用于獲取所述即將被調(diào)度到的線 程的功耗,并判斷所述待測進程的所有線程的功耗是否都已得到,如果是,則根據(jù)所述所有 線程的功耗,統(tǒng)計得到所述待測進程的功耗。
這里,所述采集具體包括 傳感器子模塊,用于多次采集所述CPU的電壓值和電流值; 計算子模塊,用于將所述傳感器子模塊每次采集到的電壓值和電流值相乘,得到 多個乘積值,并對所述多個乘積值求平均值,得到所述CPU的功耗。
所述功率測量模塊具體可以包括 獲取子模塊,用于獲取所述即將被調(diào)度到的線程的功耗; 平均功耗子模塊,用于根據(jù)所述待測進程中每個線程所占用的CPU時間片在所述 所有線程所占用的CPU時間片中的比例,確定每個線程的功耗的權(quán)值;并根據(jù)所述每個線 程的功耗的權(quán)值,對所述待測進程的每個線程的功耗進行加權(quán)并求和,得到所述待測進程 的在單位時間內(nèi)的平均功耗; 極值功耗子模塊,用于在所述待測進程的所有線程的功耗中,確定其中功耗最小 的第一功耗和功耗最大的第二功耗,分別作為所述待測進程的最小功耗和最大功耗。
這里,所述線程調(diào)度監(jiān)視模塊具體可以包括 監(jiān)視子模塊,用于在所述線程調(diào)度監(jiān)視模塊占用CPU時間片后,通過查詢所述CPU 的目的變址寄存器EDI,獲取即將被調(diào)度到的線程信息,并根據(jù)所獲取的即將被調(diào)度到的線 程的信息,判斷所述即將被調(diào)度到的線程是否為待測進程的線程,并輸出判斷結(jié)果;
測量控制子模塊,用于在所述判斷結(jié)果表明所述即將被調(diào)度到的線程為待測進程 的線程、并且所述線程調(diào)度監(jiān)視模塊被剝奪CPU時間片的同時,啟動所述傳感器子模塊采 集所述CPU的電壓值和電流值;以及在所述線程調(diào)度監(jiān)視模塊重新占用CPU時間片時,通過 所述驅(qū)動接口模塊,獲取所述計算子模塊計算得到的CPU的功耗作為所述即將被調(diào)度到的 線程的功耗。 通過上述進程的測量方法及測量裝置,本發(fā)明實施例實現(xiàn)了對計算機軟件的基本 運行單元——進程的功耗測量,獲得了軟件運行功耗的基礎(chǔ)指標(biāo),為制定降低計算機功耗 的方法和策略奠定了基礎(chǔ),便于人們在用戶的應(yīng)用系統(tǒng)中,找到降低功耗的關(guān)鍵環(huán)節(jié)。本實 施例所述測量方法及測量裝置,是直接測量用戶真實運行環(huán)境中的進程功耗,比任何仿真 或特意搭建的測試環(huán)境,更具備真實性,更能反映出操作系統(tǒng)的軟件的真實功耗。
本發(fā)明實施例還提供了一種計算機系統(tǒng),該計算機系統(tǒng)包括
包括底層硬件,所述底層硬件包括CPU ;
運行在所述底層硬件之上的操作系統(tǒng); 采集模塊,與所述CPU連接,用于采集CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算 得到CPU的功耗; 線程調(diào)度監(jiān)視模塊,用于監(jiān)視操作系統(tǒng)中的線程調(diào)度,并判斷即將被調(diào)度到的線 程是否為待測進程的線程如果是,則在所述即將被調(diào)度到的線程占用CPU時間片時,獲取 所述CPU的功耗作為所述即將被調(diào)度到的線程的功耗; 驅(qū)動接口模塊,分別與所述采集模塊和線程調(diào)度監(jiān)視模塊連接,用于提供所述采集與所述線程調(diào)度監(jiān)視模塊之間的通訊接口; 功率測量模塊,與所述線程調(diào)度監(jiān)視模塊連接,用于獲取所述即將被調(diào)度到的線 程的功耗,并判斷所述待測進程的所有線程的功耗是否都已得到,如果是,則根據(jù)所述所有 線程的功耗,統(tǒng)計得到所述待測進程的功耗。 這里,所述操作系統(tǒng)包括一用于調(diào)度線程的線程調(diào)度處理模塊,所述線程調(diào)度監(jiān) 視模塊設(shè)置在所述線程調(diào)度處理模塊中。
所述采集模塊具體包括 傳感器子模塊,用于多次采集所述CPU的電壓值和電流值; 計算子模塊,用于將所述傳感器子模塊每次采集到的電壓值和電流值相乘,得到 多個乘積值,并對所述多個乘積值求平均值,得到所述CPU的功耗。
所述功率測量模塊具體可以包括 獲取子模塊,用于獲取所述即將被調(diào)度到的線程的功耗; 平均功耗子模塊,用于根據(jù)所述待測進程中每個線程所占用的CPU時間片在所述 所有線程所占用的CPU時間片中的比例,確定每個線程的功耗的權(quán)值;并根據(jù)所述每個線 程的功耗的權(quán)值,對所述待測進程的每個線程的功耗進行加權(quán)并求和,得到所述待測進程 的在單位時間內(nèi)的平均功耗; 極值功耗子模塊,用于在所述待測進程的所有線程的功耗中,確定其中功耗最小 的第一功耗和功耗最大的第二功耗,分別作為所述待測進程的最小功耗和最大功耗。
這里,所述線程調(diào)度監(jiān)視模塊具體可以包括 監(jiān)視子模塊,用于在所述線程調(diào)度監(jiān)視模塊占用CPU時間片后,通過查詢所述CPU 的目的變址寄存器EDI,獲取即將被調(diào)度到的線程的信息,并根據(jù)所獲取的即將被調(diào)度到的 線程的信息,判斷所述即將被調(diào)度到的線程是否為待測進程的線程,并輸出判斷結(jié)果;
測量控制子模塊,用于在所述判斷結(jié)果表明所述即將被調(diào)度到的線程為待測進程 的線程、并且所述線程調(diào)度監(jiān)視模塊被剝奪CPU時間片的同時,啟動所述傳感器子模塊采 集所述CPU的電壓值和電流值;以及在所述線程調(diào)度監(jiān)視模塊重新占用CPU時間片時,通過 所述驅(qū)動接口模塊,獲取所述計算子模塊計算得到的CPU的功耗作為所述即將被調(diào)度到的 線程的功耗。 最后,以現(xiàn)有X86架構(gòu)的ATX電源的計算機,以及運行視窗(Windows)操作系統(tǒng)為 例,說明本發(fā)明實施例實現(xiàn)的具體方法和步驟,但本發(fā)明實施例并不限于這種硬件架構(gòu)和 操作系統(tǒng)類型。 如圖3所示,傳感器IC連接到ATX4針的+12V引腳處,作為驅(qū)動接口模塊的嵌入 式控制器(Embedded Controller)連接在傳感器IC和芯片組之間。在現(xiàn)有X86架構(gòu)的ATX 電源的計算機上,要測量CPU的功率,不必也不能直接在處理器的針腳處測量(因為有多個 電源引腳分散在CPU芯片不同位置),而只要通過測量ATX4針的+12V引腳處的電壓值和電 流值,再通過電流和電壓計算其功率就行了 。 ATX4的電源的電壓和電流被采集后,進入傳感器集成芯片(IC),傳感器IC對電平 信號進行整流、濾波等處理,并計算得到CPU的功耗,并將功耗便換成SMBUS總線信號,通過 傳感器IC與嵌入式控制器(EmbeddedController)之間的SMBus總線(對筆記本電腦),傳 遞到嵌入式控制器,最后,由嵌入式控制器通過短管腳計數(shù)總線(LPC,Low Pin Count)傳遞到計算機的芯片組上。對于臺式機,則可以由SUPER 1/0代替嵌入式控制器。其中,驅(qū)動程序的設(shè)計可以按照SMBus硬件設(shè)備驅(qū)動程序設(shè)計去實現(xiàn)。 對于線程調(diào)度的監(jiān)視,可以利用"Detour"方法,插入線程調(diào)度監(jiān)視模塊到Windows操作系統(tǒng)的Sw即Context核心處理函數(shù)中。這個函數(shù)負(fù)責(zé)執(zhí)行線程間的上下文(context)切換。
具體的測量流程包括 步驟41,線程調(diào)度監(jiān)視模塊在獲得CPU控制權(quán)后,監(jiān)視操作系統(tǒng)的進程調(diào)度,這里假設(shè)線程調(diào)度監(jiān)視模塊通過查詢EDI寄存器發(fā)現(xiàn)下一個即將調(diào)度到的線程(假設(shè)為線程T)是待測進程的一個線程; 步驟42,線程調(diào)度監(jiān)視模塊交出CPU控制權(quán)的同時,通知傳感器IC開始進行功耗
度量,并在重新獲得CPU控制權(quán)后,讀取傳感器IC計算得到的功耗數(shù)值; 步驟43,功率測量模塊每秒鐘對待測進程相關(guān)的所有線程功耗進行統(tǒng)計,將統(tǒng)計
結(jié)果存儲功到線程信息記錄中,并實時顯示給用戶。 綜上所述,本發(fā)明實施例所提供的計算機進程功耗的測量方法及測量裝置、計算機系統(tǒng),實現(xiàn)了對計算機軟件的基本運行單元——進程的功耗測量,獲得了軟件運行功耗的基礎(chǔ)指標(biāo),為降低計算機系統(tǒng)功耗提供了技術(shù)支持。 以上所述僅是本發(fā)明的實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
一種計算機進程功耗的測量方法,其特征在于,包括以下步驟監(jiān)視操作系統(tǒng)中的線程調(diào)度;判斷即將被調(diào)度到的線程是否為待測進程的線程,并輸出判斷結(jié)果;在所述判斷結(jié)果表明所述即將被調(diào)度到的線程為所述待測進程的線程、并且所述即將被調(diào)度到的線程占用CPU時間片時,采集所述CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到所述即將被調(diào)度到的線程的功耗;重復(fù)上述步驟,直到得到所述待測進程的所有線程的功耗,并根據(jù)所述所有線程的功耗,統(tǒng)計得到所述待測進程的功耗。
2. 如權(quán)利要求1所述的測量方法,其特征在于,所述當(dāng)前運行參數(shù)包括所述CPU的電流 值和電壓值,所述采集所述CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到所述即將被調(diào) 度到的線程功耗包括多次采集所述CPU的電壓值和電流值,并將每次采集的電流值和電 壓值相乘,得到多個乘積值;對所述多個乘積值求平均值,得到所述即將被調(diào)度到的線程的 功耗。
3. 如權(quán)利要求1所述的測量方法,其特征在于,所述統(tǒng)計得到所述待測進程的功耗包括根據(jù)所述待測進程中每個線程所占用的CPU時間片在所述所有線程所占用的CPU時間 片中的比例,確定每個線程的功耗的權(quán)值;根據(jù)所述每個線程的功耗的權(quán)值,對所述待測進程的每個線程的功耗進行加權(quán)并求 和,得到所述待測進程的在單位時間內(nèi)的平均功耗。
4. 如權(quán)利要求3所述的測量方法,其特征在于,所述統(tǒng)計得到所述待測進程的功耗還 包括在所述待測進程的所有線程的功耗中,確定其中功耗最小的第一功耗和功耗最大的 第二功耗,分別作為所述待測進程的最小功耗和最大功耗。
5. 如權(quán)利要求1所述的測量方法,其特征在于,所述監(jiān)視操作系統(tǒng)中的線程調(diào)度包括 利用放置在所述操作系統(tǒng)中的線程調(diào)度監(jiān)視模塊監(jiān)視所述操作系統(tǒng)的線程調(diào)度。
6. 如權(quán)利要求5所述的測量方法,其特征在于,所述線程調(diào)度監(jiān)視模塊進一步通過查 詢所述CPU的目的變址寄存器EDI,獲取即將被調(diào)度到的線程的信息,并根據(jù)所獲取的即將 被調(diào)度到的信息,判斷所述即將被調(diào)度到的線程是否為待測進程的線程。
7. —種計算機進程功耗的測量裝置,其特征在于,包括采集模塊,用于采集CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到CPU的功耗; 線程調(diào)度監(jiān)視模塊,用于監(jiān)視操作系統(tǒng)中的線程調(diào)度,并判斷即將被調(diào)度到的線程是 否為待測進程的線程如果是,則在所述即將被調(diào)度到的線程占用CPU時間片時,獲取所述CPU的功耗作為所述即將被調(diào)度到的線程的功耗;功率測量模塊,與所述線程調(diào)度監(jiān)視模塊連接,用于獲取所述即將被調(diào)度到的線程的 功耗,并判斷所述待測進程的所有線程的功耗是否都已得到,如果是,則根據(jù)所述所有線程 的功耗,統(tǒng)計得到所述待測進程的功耗。
8. 如權(quán)利要求7所述的測量裝置,其特征在于,還包括驅(qū)動接口模塊,分別與所述采集模塊和線程調(diào)度監(jiān)視模塊連接,用于提供所述采集模 塊與所述線程調(diào)度監(jiān)視模塊之間的通訊接口。
9. 如權(quán)利要求7所述的測量裝置,其特征在于,所述采集模塊包括傳感器子模塊,用于多次采集所述CPU的電壓值和電流值;計算子模塊,用于將所述傳感器子模塊每次采集到的電壓值和電流值相乘,得到多個 乘積值,并對所述多個乘積值求平均值,得到所述CPU的功耗。
10. 如權(quán)利要求7所述的測量裝置,其特征在于,所述功率測量模塊包括 獲取子模塊,用于獲取所述即將被調(diào)度到的線程的功耗;平均功耗子模塊,用于根據(jù)所述待測進程中每個線程所占用的CPU時間片在所述所有 線程所占用的CPU時間片中的比例,確定每個線程的功耗的權(quán)值;并根據(jù)所述每個線程的 功耗的權(quán)值,對所述待測進程的每個線程的功耗進行加權(quán)并求和,得到所述待測進程的在 單位時間內(nèi)的平均功耗。
11. 如權(quán)利要求7所述的測量裝置,其特征在于,所述功率測量模塊還包括 極值功耗子模塊,用于在所述待測進程的所有線程的功耗中,確定其中功耗最小的第一功耗和功耗最大的第二功耗,分別作為所述待測進程的最小功耗和最大功耗。
12. 如權(quán)利要求9所述的測量裝置,其特征在于,所述線程調(diào)度監(jiān)視模塊包括 監(jiān)視子模塊,用于在所述線程調(diào)度監(jiān)視模塊占用CPU時間片后,通過查詢所述CPU的目的變址寄存器EDI,獲取即將被調(diào)度到的線程信息,并根據(jù)所獲取的即將被調(diào)度到的線程的 信息,判斷所述即將被調(diào)度到的線程是否為待測進程的線程,并輸出判斷結(jié)果;測量控制子模塊,用于在所述判斷結(jié)果表明所述即將被調(diào)度到的線程為待測進程的線 程、并且所述線程調(diào)度監(jiān)視模塊被剝奪CPU時間片的同時,啟動所述傳感器子模塊采集所 述CPU的電壓值和電流值;以及在所述線程調(diào)度監(jiān)視模塊重新占用CPU時間片時,通過所述 驅(qū)動接口模塊,獲取所述計算子模塊計算得到的CPU的功耗作為所述即將被調(diào)度到的線程 的功耗。
13. —種計算機系統(tǒng),其特征在于,包括包括底層硬件,所述底層硬件包括CPU ;運行在所述底層硬件之上的操作系統(tǒng),其特征在于,還包括采集模塊,用于采集CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到CPU的功耗; 線程調(diào)度監(jiān)視模塊,用于監(jiān)視操作系統(tǒng)中的線程調(diào)度,并判斷即將被調(diào)度到的線程是否為待測進程的線程如果是,則在所述即將被調(diào)度到的線程占用CPU時間片時,獲取所述CPU的功耗作為所述即將被調(diào)度到的線程的功耗;功率測量模塊,與所述線程調(diào)度監(jiān)視模塊連接,用于獲取所述即將被調(diào)度到的線程的功耗,并判斷所述待測進程的所有線程的功耗是否都已得到,如果是,則根據(jù)所述所有線程的功耗,統(tǒng)計得到所述待測進程的功耗。
14. 如權(quán)利要求13所述的計算機系統(tǒng),其特征在于,還包括驅(qū)動接口模塊,分別與所述采集模塊和線程調(diào)度監(jiān)視模塊連接,用于提供所述采集模 塊與所述線程調(diào)度監(jiān)視模塊之間的通訊接口。
15. 如權(quán)利要求13所述的計算機系統(tǒng),其特征在于,所述采集模塊包括 傳感器子模塊,用于多次采集所述CPU的電壓值和電流值;計算子模塊,用于將所述傳感器子模塊每次采集到的電壓值和電流值相乘,得到多個 乘積值,并對所述多個乘積值求平均值,得到所述CPU的功耗。
16. 如權(quán)利要求13所述的計算機系統(tǒng),其特征在于,所述功率測量模塊包括獲取子模塊,用于獲取所述即將被調(diào)度到的線程的功耗;平均功耗子模塊,用于根據(jù)所述待測進程中每個線程所占用的CPU時間片在所述所有 線程所占用的CPU時間片中的比例,確定每個線程的功耗的權(quán)值;并根據(jù)所述每個線程的 功耗的權(quán)值,對所述待測進程的每個線程的功耗進行加權(quán)并求和,得到所述待測進程的在 單位時間內(nèi)的平均功耗。
17. 如權(quán)利要求13所述的計算機系統(tǒng),其特征在于,所述功率測量模塊還包括 極值功耗子模塊,用于在所述待測進程的所有線程的功耗中,確定其中功耗最小的第一功耗和功耗最大的第二功耗,分別作為所述待測進程的最小功耗和最大功耗。
18. 如權(quán)利要求15所述的計算機系統(tǒng),其特征在于,所述線程調(diào)度監(jiān)視模塊包括 監(jiān)視子模塊,用于在所述線程調(diào)度監(jiān)視模塊占用CPU時間片后,通過查詢所 述CPU的目的變址寄存器EDI,獲取即將被調(diào)度到的線程的信息,并根據(jù)所獲取的即將被調(diào)度到的線程 的信息,判斷所述即將被調(diào)度到的線程是否為待測進程的線程,并輸出判斷結(jié)果;測量控制子模塊,用于在所述判斷結(jié)果表明所述即將被調(diào)度到的線程為待測進程的線 程、并且所述線程調(diào)度監(jiān)視模塊被剝奪CPU時間片的同時,啟動所述傳感器子模塊采集所 述CPU的電壓值和電流值;以及在所述線程調(diào)度監(jiān)視模塊重新占用CPU時間片時,通過所述 驅(qū)動接口模塊,獲取所述計算子模塊計算得到的CPU的功耗作為所述即將被調(diào)度到的線程 的功耗。
19. 如權(quán)利要求13所述的計算機系統(tǒng),其特征在于,所述操作系統(tǒng)包括一用于調(diào)度線 程的線程調(diào)度處理模塊,所述線程調(diào)度監(jiān)視模塊設(shè)置在所述線程調(diào)度處理模塊中。
全文摘要
本發(fā)明提供了一種計算機進程功耗的測量方法及測量裝置、計算機系統(tǒng)。所述方法包括監(jiān)視操作系統(tǒng)中的線程調(diào)度;判斷即將被調(diào)度到的線程是否為待測進程的線程,并輸出判斷結(jié)果;在所述判斷結(jié)果表明所述即將被調(diào)度到的線程為所述待測進程的線程、并且所述即將被調(diào)度到的線程占用CPU時間片時,采集所述CPU的當(dāng)前運行參數(shù),并利用所述參數(shù)計算得到所述即將被調(diào)度到的線程的功耗;重復(fù)上述步驟,直到得到所述待測進程的所有線程的功耗,并根據(jù)所述所有線程的功耗,統(tǒng)計得到所述待測進程的功耗。按照本發(fā)明,可以實現(xiàn)對進程的功耗測量,獲得了軟件運行功耗的基礎(chǔ)指標(biāo)。
文檔編號G06F1/32GK101727172SQ20081022493
公開日2010年6月9日 申請日期2008年10月27日 優(yōu)先權(quán)日2008年10月27日
發(fā)明者宋春雨, 李志剛, 王凱 申請人:聯(lián)想(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1