本發明涉及電子技術領域,尤其涉及一種調度任務的方法及終端。
背景技術:
目前,由于單核處理器性能的提升已遇到瓶頸,從既滿足性能提升要求又要顧及功耗降低的需求的角度考慮,處理器的設計已經從單純的單核性能優化轉向多核架構的優化。
例如,芯片廠家在片上系統(system-on-a-chip,soc)中集成多個不同簇的中央處理器(centralprocessingunit,cpu),不同簇中的cpu之間設計的架構不同。工作頻率、工作電壓不同。
現有技術中,多簇的cpu在調度任務時,通常是將待處理的任務交給工作在低頻,重功耗的cpu簇進行處理,通過判斷重功耗的cpu簇中各cpu的負載是否達到預設閾值,當各cpu的負載都達到預設閾值時,將該待處理的任務識別為計算負荷較重的任務,并將重性能的cpu簇中的cpu拉起來處理該待處理的任務。
然而,現有的任務調度方法,由于待處理任務均先由重功耗的簇內的cpu處理進行處理,只有當重功耗的簇內所有的cpu都無法處理待處理任務時,將該待處理任務識別為計算負荷較重的大任務,此時終端才會開啟重性能的cpu簇中的cpu,此時,通過重性能的cpu簇中的cpu重新處理該待處理任務,這樣導致:當需要處理計算負荷較重的任務時,終端無法及時處理負荷較重的任務。
技術實現要素:
本發明實施例提供一種調度任務的方法及終端,能夠及時處理計算負荷較重的大任務,提高大任務的處理效率。
第一方面,本發明實施例提供了一種調度任務的方法,該方法包括:
若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值;
根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件;
若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;
若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。
另一方面,本發明實施例提供了一種終端,該終端包括:
獲取單元,用于若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值;
確定單元,用于根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件;
第一處理單元,用于若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;
第二處理單元,用于若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。
本發明實施例通過若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值;根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件;若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。現有技術中,在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,逐一開啟終端內的小核處理器,當終端內所有小核處理器都無法滿足第一進程的計算負荷要求時才開啟大核處理器;而本實施例中,終端在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,立即開始大核處理器,能夠即時處理第一進程,加快第一進程的響應速度,提高第一進程的處理效率。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明實施例提供的一種調度任務的方法的示意流程圖;
圖2是本發明另一實施例提供的一種調度任務的方法的示意流程圖;
圖3是本發明實施例提供的一種終端的示意性框圖;
圖4是本發明另一實施例提供的一種終端示意性框圖;
圖5是本發明再一實施例提供的一種終端示意性框圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
應當理解,當在本說明書和所附權利要求書中使用時,術語“包括”和“包含”指示所描述特征、整體、步驟、操作、元素和/或組件的存在,但并不排除一個或多個其它特征、整體、步驟、操作、元素、組件和/或其集合的存在或添加。
還應當理解,在此本發明說明書中所使用的術語僅僅是出于描述特定實施例的目的而并不意在限制本發明。如在本發明說明書和所附權利要求書中所使用的那樣,除非上下文清楚地指明其它情況,否則單數形式的“一”、“一個”及“該”意在包括復數形式。
還應當進一步理解,在本發明說明書和所附權利要求書中使用的術語“和/或”是指相關聯列出的項中的一個或多個的任何組合以及所有可能組合,并且包括這些組合。
如在本說明書和所附權利要求書中所使用的那樣,術語“如果”可以依據上下文被解釋為“當...時”或“一旦”或“響應于確定”或“響應于檢測到”。類似地,短語“如果確定”或“如果檢測到[所描述條件或事件]”可以依據上下文被解釋為意指“一旦確定”或“響應于確定”或“一旦檢測到[所描述條件或事件]”或“響應于檢測到[所描述條件或事件]”。
具體實現中,本發明實施例中描述的終端包括但不限于諸如具有觸摸敏感表面(例如,觸摸屏顯示器和/或觸摸板)的移動電話、膝上型計算機或平板計算機之類的其它便攜式設備。還應當理解的是,在某些實施例中,所述設備并非便攜式通信設備,而是具有觸摸敏感表面(例如,觸摸屏顯示器和/或觸摸板)的臺式計算機。
在接下來的討論中,描述了包括顯示器和觸摸敏感表面的終端。然而,應當理解的是,終端可以包括諸如物理鍵盤、鼠標和/或控制桿的一個或多個其它物理用戶接口設備。
終端支持各種應用程序,例如以下中的一個或多個:繪圖應用程序、演示應用程序、文字處理應用程序、網站創建應用程序、盤刻錄應用程序、電子表格應用程序、游戲應用程序、電話應用程序、視頻會議應用程序、電子郵件應用程序、即時消息收發應用程序、鍛煉支持應用程序、照片管理應用程序、數碼相機應用程序、數字攝影機應用程序、web瀏覽應用程序、數字音樂播放器應用程序和/或數字視頻播放器應用程序。
可以在終端上執行的各種應用程序可以使用諸如觸摸敏感表面的至少一個公共物理用戶接口設備。可以在應用程序之間和/或相應應用程序內調整和/或改變觸摸敏感表面的一個或多個功能以及終端上顯示的相應信息。這樣,終端的公共物理架構(例如,觸摸敏感表面)可以支持具有對用戶而言直觀且透明的用戶界面的各種應用程序。
請參見圖1,圖1是本發明實施例提供的一種調度任務的方法的示意流程圖。本實施例中調度任務的方法的執行主體為終端,終端內包含至少一片上系統(system-on-a-chip,soc),soc中集成有不同簇的處理器,每個簇中包括至少兩個獨立的處理器。處理器可以為中央處理器(centralprocessingunit,cpu),也可以為圖像處理器(graphicsprocessingunit,gpu)。終端可以為手機、平板電腦等移動終端。如圖1所示的調度任務的方法可包括以下步驟:
s101:若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值。
終端在開機啟動時,終端運行的進程所對應的計算負荷一般較輕,終端通過第一處理器運行計算負荷較輕的進程,或通過第一處理器執行計算負荷較輕的任務。第一處理器為小核處理器,第一處理器可以包括一個或至少兩個小核處理器。其中,計算負荷較重的任務或進程為大任務,計算負荷較輕的任務或進程為小任務。小核處理器的功耗低于大核處理器的功耗,大核處理器的性能優于小核處理器。大核處理器的工作頻率高于小核處理器的工作頻率。
終端在檢測到用戶觸發開啟某應用程序(application,app)的預設操作,啟動新增的第一進程時,終端通過當前正運行的第一處理器運行第一進程,并獲取該第一處理器的第一負載值。當前正運行第一處理器可以是一個小核處理器,也可以是至少兩個小核處理器,此處不做限制。
例如,當終端的片上系統soc集成的不同簇的處理器為中央處理器cpu時,終端開機,正常工作時,如果檢測到用戶開啟音樂播放器播放mp3音頻文件,此時,該播放mp3音頻文件這一進程的計算負荷較輕,終端cpu負載不大,終端當前已開啟的小核cpu0(也可以同時開啟小核cpu0、小核cpu1,此處不做限制)已經能夠處理滿足播放mp3音頻文件這一進程的計算負荷要求。
當終端檢測到用戶啟動相機應用進行拍照或攝像時,終端通過當前已運行的cpu運行第一進程(拍照進程或攝像進程)。
如果當前正運行的cpu只有小核cpu0時,終端獲取當前正運行的小核cpu0的第一負載值。
如果當前正運行的cpu為小核cpu0以及小核cpu1,終端獲取當前已運行的小核cpu0以及小核cpu1各自對應的負載值,并將獲取到的各負載值的總和識別為第一負載值。
再例如,當終端的片上系統soc集成的不同簇的處理器為圖形處理器gpu,終端通過gpu進行圖形計算、渲染時,如果終端檢測到用戶啟動圖形計算負荷較輕的進程或應用(例如,小型游戲應用),終端當前已開啟的小核gpu0(也可以同時開啟小核gpu0、小核gpu1,此處不做限制)已經能夠處理滿足計算渲染該進程或應用的計算負荷要求。
當終端檢測到用戶啟動圖形計算負荷較重的大型游戲應用時,終端通過當前已運行的gpu運行第一進程(第一進程是指,該圖形計算負荷較重的大型游戲應用的進程)。
如果當前正運行的gpu只有小核gpu0時,終端獲取當前正運行的小核gpu0的第一負載值。
如果當前正運行的gpu為小核gpu0以及小核gpu1,終端獲取當前已運行的小核gpu0以及小核gpu1各自對應的負載值,并將獲取到的各負載值的總和識別為第一負載值。s102:根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件。
開啟第二處理器的預設條件用于標識當前已運行的第一處理器無法滿足第一進程的計算負荷要求。開啟第二處理器的預設條件可以是第一負載值大于或等于第一預設負載閾值。第一預設負載閾值可以根據當前已運行的第一處理器的最大負載值進行設置。其中,當第一負載值小于第一預設負載閾值時,不滿足開啟第二處理器的預設條件。
開啟第二處理器的預設條件也可以是第一處理器的負載增量大于或等于第二預設負載閾值,第一處理器的負載增量由第一負載值與啟動第一進程前的負載值計算得到。具體地,第一處理器的負載增量為第一處理器啟動第一進程時的第一負載值與啟動第一進程前的負載值之間的差值。
其中,當第一處理器的負載增量小于第二預設負載閾值時,不滿足開啟第二處理器的預設條件。
處理器的負載能力與處理器的工作電壓、工作頻率有關。
終端在確認當前滿足開啟第二處理器的預設條件時,執行s103;終端在確認當前不滿足開啟第二處理器的預設條件時,執行s104。
s103:若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行。
終端在確認當前滿足開啟第二處理器的預設條件時,開啟第二處理器,第二處理器可以為一個大核處理器,也可以為至少兩個大核處理器。
終端控制第一處理器停止運行第一進程,并通過第二處理器加載第一進程,從而將第一進程遷移至第二處理器,控制第二處理器運行第一進程。
s104:若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。
終端繼續通過第一處理器運行第一進行。
上述方案,終端若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值;根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件;若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。相對于現有技術中,在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,逐一開啟終端內的小核處理器,當終端內所有小核處理器都無法滿足第一進程的計算負荷要求時才開啟大核處理器。本實施例中,終端在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,立即開始大核處理器,能夠即時處理第一進程,加快第一進程的響應速度,提高第一進程的處理效率。
請參見圖2,圖2是本發明另一實施例提供的一種調度任務的方法的示意流程圖。本實施例中調度任務的方法的執行主體為終端,終端內包含至少一片上系統(system-on-a-chip,soc),soc中集成有不同簇的處理器,每個簇中包括至少兩個獨立的處理器。處理器可以為中央處理器(centralprocessingunit,cpu),也可以為圖像處理器(graphicsprocessingunit,gpu)。終端可以為手機、平板電腦等移動終端。如圖2所示的調度任務的方法可包括以下步驟:
s201:若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值。
終端在開機啟動時,終端運行的進程所對應的計算負荷一般較輕,終端通過第一處理器運行計算負荷較輕的進程,或通過第一處理器執行計算負荷較輕的任務。第一處理器為小核處理器,第一處理器可以包括一個或至少兩個小核處理器。其中,計算負荷較重的任務或進程為大任務,計算負荷較輕的任務或進程為小任務。小核處理器的功耗低于大核處理器的功耗,大核處理器的性能優于小核處理器。大核處理器的工作頻率高于小核處理器的工作頻率。
終端在檢測到用戶觸發開啟某應用程序(application,app)的預設操作,啟動新增的第一進程時,終端通過當前正運行的第一處理器運行第一進程,并獲取該第一處理器的第一負載值。當前正運行第一處理器可以是一個小核處理器,也可以是至少兩個小核處理器,此處不做限制。
例如,當終端的片上系統soc集成的不同簇的處理器為中央處理器cpu時,終端開機,正常工作時,如果檢測到用戶開啟音樂播放器播放mp3音頻文件,此時,該播放mp3音頻文件這一進程的計算負荷較輕,終端cpu負載不大,終端當前已開啟的小核cpu0(也可以同時開啟小核cpu0、小核cpu1,此處不做限制)已經能夠處理滿足播放mp3音頻文件這一進程的計算負荷要求。
當終端檢測到用戶啟動相機應用進行拍照或攝像時,終端通過當前已運行的cpu運行第一進程(拍照進程或攝像進程)。
如果當前正運行的cpu只有小核cpu0時,終端獲取當前正運行的小核cpu0的第一負載值。
如果當前正運行的cpu為小核cpu0以及小核cpu1,終端獲取當前已運行的小核cpu0以及小核cpu1各自對應的負載值,并將獲取到的各負載值的總和識別為第一負載值。
再例如,當終端的片上系統soc集成的不同簇的處理器為圖形處理器gpu,終端通過gpu進行圖形計算、渲染時,如果終端檢測到用戶啟動圖形計算負荷較輕的進程或應用(例如,小型游戲應用),終端當前已開啟的小核gpu0(也可以同時開啟小核gpu0、小核gpu1,此處不做限制)已經能夠處理滿足計算渲染該進程或應用這一進程或應用的計算負荷要求。
當終端檢測到用戶啟動圖形計算負荷較重的大型游戲應用時,終端通過當前已運行的gpu運行第一進程(第一進程是指,該圖形計算負荷較重的大型游戲應用的進程)。
如果當前正運行的gpu只有小核gpu0時,終端獲取當前正運行的小核gpu0的第一負載值。
如果當前正運行的gpu為小核gpu0以及小核gpu1,終端獲取當前已運行的小核gpu0以及小核gpu1各自對應的負載值,并將獲取到的各負載值的總和識別為第一負載值。
s202:根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件。
開啟第二處理器的預設條件用于標識當前已運行的第一處理器無法滿足第一進程的計算負荷要求。
進一步地,s202可以包括s2021:比較所述第一負載值與第一預設負載閾值,并根據比較結果確定當前是否滿足開啟第二處理器的預設條件。
其中,若所述第一負載值大于或等于第一預設負載閾值,則識別為當前滿足開啟第二處理器的預設條件;若所述第一負載值小于第一預設負載閾值,則識別為當前不滿足開啟第二處理器的預設條件。
第一預設負載閾值具體可根據第一處理器的負載能力進行設置,此處不做限制。
或者,s202可以包括s2022~s2024:
s2022:獲取啟動所述第一進程前,所述第一處理器對應的初始負載值。
s2023:根據所述第一負載值與所述初始負載值計算負載增量或負載增幅。
終端計算第一負載值與初始負載值之間的差值,得到終端啟動第一進程前后第一處理器的負載增量。
或者,終端計算第一負載值與初始負載值之間的差值,并計算該差值與初始負載值之商,從而得到終端在啟動第一進程前后第一處理器的負載增幅。
s2024:根據所述負載增量或所述負載增幅確定當前是否滿足開啟第二處理器的預設條件。
終端在計算得到負載增量時,確定當前是否滿足開啟第二處理器的預設條件時,將計算得到的負載增量與第二預設負載閾值進行比較,根據比較結果確定當前是否滿足開啟第二處理器的預設條件。其中,若第一負載值與初始負載值之差大于或等于第二預設負載閾值,則識別為當前滿足開啟第二處理器的預設條件;若第一負載值與初始負載值之差小于第二預設負載閾值,則識別為當前不滿足開啟第二處理器的預設條件。第二預設負載閾值具體可根據第一處理器的負載能力進行設置,此處不做限制。
終端在計算得到負載增幅時,將計算得到的負載增幅與預設負載增幅進行比較,并根據比較結果確定當前是否滿足開啟第二處理器的預設條件。當該負載增幅大于或等于預設負載增幅時,識別為當前滿足開啟第二處理器的預設條件,當前正運行的第一處理器無法滿足第一進行的計算負荷要求。當該負載增幅小于預設負載增幅時,識別為當前不滿足開啟第二處理器的預設條件,當前正運行的第一處理器能夠滿足第一進行的計算負荷要求。
其中,預設負載增幅可以為40%,但并不限于此,具體可根據實際情況進行設置,此處不做限制。
終端在確認當前滿足開啟第二處理器的預設條件時,執行s203;終端在確認當前不滿足開啟第二處理器的預設條件時,執行s204。
s203:若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行。
終端在確認當前滿足開啟第二處理器的預設條件時,開啟第二處理器,第二處理器可以為一個大核處理器,也可以為至少兩個大核處理器。
終端控制第一處理器停止運行第一進程,并通過第二處理器加載第一進程,從而將第一進程遷移至第二處理器,控制第二處理器運行第一進程。
s204:若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。
終端繼續通過第一處理器運行第一進行。
進一步地,s204可以包括:
s2041:獲取在啟動所述第一進程前,所述第一處理器的第一工作頻率。
s2042:將所述第一處理器的工作頻率從所述第一工作頻率增加至第二工作頻率。
進一步地,s2042包括:根據啟動所述第一進程前,所述第一處理器對應的初始負載值,將所述第一處理器的工作頻率從所述第一工作頻率增加至第二工作頻率;其中,所述第一處理器工作在所述第二工作頻率對應的第二負載值與所述初始負載值之差小于或等于第二預設負載閾值。
終端獲取啟動第一進程前,第一處理器對應的初始負載值,并根據該初始負載值將第一處理器的工作頻率從第一工作頻率增加至第二工作頻率,以使得第一處理器工作在第二工作頻率下的第二負載值與工作在第一工作頻率下的第一負載值相同或近似相同。本實施方式中所說的相同或近似相同是指:第二負載值與第一負載值之差為零,或兩者之差小于或等于可接受的預設的允許誤差負載閾值。
s2043:控制所述第一處理器在所述第二工作頻率下運行所述第一進程。
終端的第一處理器在第二工作頻率下運行第一進程的負載值小于第一處理器在第一工作頻率下運行第一進程的負載值。終端通過增大第一處理器處理第一進程的工作頻率,降低其運行第一進程的負載值。
上述方案,終端若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值;根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件;若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。現有技術中,在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,逐一開啟終端內的小核處理器,當終端內所有小核處理器都無法滿足第一進程的計算負荷要求時才開啟大核處理器;而本實施例中,終端在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,立即開始大核處理器,能夠即時處理第一進程,加快第一進程的響應速度,提高第一進程的處理效率。
終端檢測到第一負載值達到第一預設負載閾值,或者根據第一負載值與初始負載值計算得到負載增量或負載增幅達到預設閾值時,終端識別為突然開啟處理器負載需求很大的任務(第一進程),終端直接將該任務交給大核處理器處理,省去了中間小核調頻、開啟增加小核的過程,能夠最及時的響應相關任務需求。
參見圖3,圖3是本發明實施例提供的一種終端的示意性框圖。終端可以為手機、平板電腦等移動終端,但并不限于此,還可以為其他終端,此處不做限制。本實施例的終端包括的各單元用于執行圖1對應的實施例中的各步驟,具體請參閱圖1以及圖1對應的實施例中的相關描述,此處不贅述。本實施例的終端300包括:獲取單元310、確定單元320、第一處理單元330以及第二處理單元340。
獲取單元310用于若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值。
確定單元320用于根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件。
第一處理單元330用于若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;
第二處理單元340用于若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。
上述方案,終端若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值;根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件;若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。現有技術中,在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,逐一開啟終端內的小核處理器,當終端內所有小核處理器都無法滿足第一進程的計算負荷要求時才開啟大核處理器;而本實施例中,終端在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,立即開始大核處理器,能夠即時處理第一進程,加快第一進程的響應速度,提高第一進程的處理效率。
參見圖4,圖4是本發明另一實施例提供的一種終端的示意性框圖。終端可以為手機、平板電腦等移動終端,但并不限于此,還可以為其他終端,此處不做限制。本實施例的終端包括的各單元用于執行圖2對應的實施例中的各步驟,具體請參閱圖2以及圖2對應的實施例中的相關描述,此處不贅述。本實施例的終端400包括:獲取單元410、確定單元420、第一處理單元430以及第二處理單元440。其中,確定單元420可以包括第一判斷單元421,或者確定單元420包括初始負載值獲取單元422、計算單元423以及第二判斷單元424。第二處理單元440可以包括工作頻率獲取單元441、工作頻率調節單元442以及控制單元443。
獲取單元410用于若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值。
確定單元420用于根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件。
進一步地,當確定單元420可以包括比較單元421時,第一判斷單元421用于比較所述第一負載值與第一預設負載閾值,并根據比較結果確定當前是否滿足開啟第二處理器的預設條件。
進一步地,當確定單元420包括初始負載值獲取單元422、計算單元423以及第二判斷單元424時,初始負載值獲取單元422用于獲取啟動所述第一進程前,所述第一處理器對應的初始負載值;計算單元423用于根據所述第一負載值與所述初始負載值計算負載增量或負載增幅;第二判斷單元424用于根據所述負載增量或所述負載增幅確定當前是否滿足開啟第二處理器的預設條件。
第一處理單元430用于若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;
第二處理單元440用于若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。
進一步地,第二處理單元440可以包括工作頻率獲取單元441、工作頻率調節單元442以及控制單元443時,工作頻率獲取單元441用于獲取在啟動所述第一進程前,所述第一處理器的第一工作頻率;工作頻率調節單元442用于將所述第一處理器的工作頻率從所述第一工作頻率增加至第二工作頻率;
控制單元443用于控制所述第一處理器在所述第二工作頻率下運行所述第一進程。
進一步地,工作頻率調節單元442具體用于:根據啟動所述第一進程前,所述第一處理器對應的初始負載值,將所述第一處理器的工作頻率從所述第一工作頻率增加至第二工作頻率;其中,所述第一處理器工作在所述第二工作頻率對應的第二負載值與所述初始負載值之差小于或等于預設的允許誤差負載閾值。
上述方案,終端若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值;根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件;若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。現有技術中,在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,逐一開啟終端內的小核處理器,當終端內所有小核處理器都無法滿足第一進程的計算負荷要求時才開啟大核處理器;而本實施例中,終端在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,立即開始大核處理器,能夠即時處理第一進程,加快第一進程的響應速度,提高第一進程的處理效率。
終端檢測到第一負載值達到第一預設負載閾值,或者根據第一負載值與初始負載值計算得到負載增量或負載增幅達到預設閾值時,終端識別為突然開啟處理器負載需求很大的任務(第一進程),終端直接將該任務交給大核處理器處理,省去了中間小核調頻、開啟增加小核的過程,能夠最及時的響應相關任務需求。
參見圖5,圖5是本發明再一實施例提供的一種終端示意性框圖。如圖所示的本實施例中的終端500可以包括:一個或多個處理器510;一個或多個輸入設備520,一個或多個輸出設備530和存儲器540。上述處理器510、輸入設備520、輸出設備530和存儲器540通過總線550連接。
存儲器540用于存儲程序指令。
處理器510用于根據存儲器540存儲的程序指令執行以下操作:
處理器510用于若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值。
處理器510還用于根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件。
處理器510還用于若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行。
處理器510還用于若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。
可選地,處理器510具體用于比較所述第一負載值與第一預設負載閾值,并根據比較結果確定當前是否滿足開啟第二處理器的預設條件;其中,若所述比較結果為所述第一負載值大于或等于第一預設負載閾值,則識別為當前滿足開啟第二處理器的預設條件;若所述比較結果為所述第一負載值小于第一預設負載閾值,則識別為當前不滿足開啟第二處理器的預設條件。
可選地,處理器510具體用于獲取啟動所述第一進程前,所述第一處理器對應的初始負載值;用于根據所述第一負載值與所述初始負載值計算負載增量或負載增幅;用于根據所述負載增量或所述負載增幅確定當前是否滿足開啟第二處理器的預設條件。
可選地,處理器510具體用于獲取在啟動所述第一進程前,所述第一處理器的第一工作頻率;以及用于將所述第一處理器的工作頻率從所述第一工作頻率增加至第二工作頻率;以及用于控制所述第一處理器在所述第二工作頻率下運行所述第一進程。
可選地,處理器510具體用于根據啟動所述第一進程前,所述第一處理器對應的初始負載值,將所述第一處理器的工作頻率從所述第一工作頻率增加至第二工作頻率;其中,所述第一處理器工作在所述第二工作頻率對應的第二負載值與所述初始負載值之差小于或等于預設的允許誤差負載閾值。
上述方案,終端若檢測到啟動新增的第一進程,則獲取當前正運行的第一處理器的第一負載值;根據所述第一負載值確定當前是否滿足開啟第二處理器的預設條件;若當前滿足開啟第二處理器的預設條件,則開啟第二處理器,將所述第一進程遷移至所述第二處理器運行;若當前不滿足開啟第二處理器的預設條件,則通過所述第一處理器運行所述第一進程。現有技術中,在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,逐一開啟終端內的小核處理器,當終端內所有小核處理器都無法滿足第一進程的計算負荷要求時才開啟大核處理器;而本實施例中,終端在確定當前正運行的小核處理器無法滿足第一進程的計算負荷要求時,立即開始大核處理器能夠即時處理第一進程,加快第一進程的響應速度,提高第一進程的處理效率。
終端檢測到第一負載值達到第一預設負載閾值,或者根據第一負載值與初始負載值計算得到負載增量或負載增幅達到預設閾值時,終端識別為突然開啟處理器負載需求很大的任務(第一進程),終端直接將該任務交給大核處理器處理,省去了中間小核調頻、開啟增加小核的過程,能夠最及時的響應相關任務需求。
應當理解,在本發明實施例中,所稱處理器510可以是中央處理單元(centralprocessingunit,cpu),該處理器還可以是其他通用處理器、數字信號處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現成可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。
輸入設備520可以包括觸控板、指紋采傳感器(用于采集用戶的指紋信息和指紋的方向信息)、麥克風等,輸出設備530可以包括顯示器(lcd等)、揚聲器等。
該存儲器540可以包括只讀存儲器和隨機存取存儲器,并向處理器510提供指令和數據。存儲器540的一部分還可以包括非易失性隨機存取存儲器。例如,存儲器540還可以存儲設備類型的信息。
具體實現中,本發明實施例中所描述的處理器510、輸入設備520、輸出設備530可執行本發明實施例提供的調度任務的方法的第一實施例和第二實施例中所描述的實現方式,也可執行本發明實施例所描述的終端的實現方式,在此不再贅述。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
所屬領域的技術人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的終端和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的終端和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另外,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口、裝置或單元的間接耦合或通信連接,也可以是電的,機械的或其它的形式連接。
本發明實施例方法中的步驟可以根據實際需要進行順序調整、合并和刪減。
本發明實施例終端中的單元可以根據實際需要進行合并、劃分和刪減。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本發明實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以是兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分,或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到各種等效的修改或替換,這些修改或替換都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以權利要求的保護范圍為準。