TW201512836A - 節流應用程式對資源之存取 - Google Patents
節流應用程式對資源之存取 Download PDFInfo
- Publication number
- TW201512836A TW201512836A TW103119274A TW103119274A TW201512836A TW 201512836 A TW201512836 A TW 201512836A TW 103119274 A TW103119274 A TW 103119274A TW 103119274 A TW103119274 A TW 103119274A TW 201512836 A TW201512836 A TW 201512836A
- Authority
- TW
- Taiwan
- Prior art keywords
- application
- sleep state
- executing
- execution
- state
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Power Sources (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
Abstract
本發明描述一種修改一執行中應用程式之一應用程式睡眠狀態之器件。在一例示性實施例中,該器件偵測與該執行中應用程式相關聯之一事件。另外,該器件評估該執行中應用程式之一或多個執行階段特性。該器件進一步基於該執行中應用程式之該經監視的一或多個執行階段特性及經該偵測的事件判定該執行中應用程式是否為應修改此執行中應用程式之該應用程式睡眠狀態的一候選者。若該執行中應用程式為應修改此執行中應用程式之該應用程式睡眠狀態的一候選者,則該器件將指示將如何修改該執行中應用程式之該應用程式睡眠狀態的一訊息發送至該器件之該作業系統,其中該器件包括一虛擬記憶體子系統,該虛擬記憶體子系統將該執行中應用程式之資料在揮發性儲存器與非揮發性儲存器之間分頁傳送。
Description
本發明大體係關於應用程式管理且,更特定而言,係關於節流應用程式對器件資源之存取。
器件上之執行中應用程式可在應用程式執行階段期間存取一或多個器件資源。舉例而言,應用程式可使用中央處理單元(CPU)處理該應用程式之指令、寫入至輸入/輸出(I/O)資源或自I/O資源讀取、使用作業系統計時器、播放音訊、存取連接之器件(例如,攝影機、麥克風)及/或使用器件之圖形資源。應用程式可存取之資源量由作業系統設定。舉例而言,作業系統可設定I/O優先權及針對CPU之使用百分數及CPU頻率兩者設定CPU優先權。
由於隨著應用程式繼續執行,應用程式可能使用資源以執行但並不與使用者互動,故可能產生問題。舉例而言,藉由選擇另一應用程式作為前景應用程式或藉由部分或完全閉塞(occlude)此應用程式視窗,可將在繪示更新(例如,動畫或其他更新)之前景執行視窗中執行之應用程式置於背景中。然而,應用程式將仍以相同速率消耗相同器件資源。舉例而言,即使視窗經部分或完全閉塞以使得此等更新不被使用者看見或僅部分被使用者看見,應用程式仍可以相同速率更新視窗。若應用程式當前未正進行對使用者重要之工作,則限制正使用之器件資源量可能有用。
描述一種修改執行中應用程式之應用程式睡眠狀態之器件的方法及裝置。在例示性實施例中,該器件偵測與執行中應用程式相關聯之事件。另外,該器件評估該執行中應用程式之一或多個執行階段特性。該器件進一步基於執行中應用程式之經監視的一或多個執行階段特性及經偵測之事件判定執行中應用程式是否為應修改此執行中應用程式之應用程式睡眠狀態的候選者。若執行中應用程式為應修改此執行中應用程式之應用程式睡眠狀態的候選者,則該器件發送指示將如何修改執行中應用程式之應用程式睡眠狀態的訊息至器件之作業系統,其中該器件包括虛擬記憶體子系統,該虛擬記憶體子系統將該執行中應用程式之資料在揮發性儲存器與非揮發性儲存器之間分頁傳送。
在另一實施例中,該器件自執行中應用程式接收應用程式睡眠狀態訊息,其中應用程式睡眠狀態訊息包括關於如何修改應用程式睡眠狀態之指示詞。另外,該器件基於該指示詞修改執行中應用程式之應用程式睡眠狀態。
亦描述其他方法及裝置。
100‧‧‧器件
102‧‧‧作業系統
104‧‧‧核心程式
106‧‧‧應用程式睡眠狀態管理模組
108A-N‧‧‧應用程式
110A-N‧‧‧應用程式睡眠管理模組
202‧‧‧預設應用程式睡眠狀態
204A‧‧‧應用程式睡眠狀態
204B‧‧‧應用程式睡眠狀態
206‧‧‧預設狀態
300‧‧‧偵測引起應用程式之睡眠狀態之修改的事件之處理程序
400‧‧‧修改應用程式之睡眠狀態之處理程序
500‧‧‧應用程式睡眠管理模組
502‧‧‧監視應用程式事件模組
504‧‧‧偵測事件模組
506‧‧‧事件改變應用程式睡眠模組
508‧‧‧應用程式特性模組
510‧‧‧判定應用程式睡眠改變模組
512‧‧‧發送應用程式睡眠改變訊息模組
602‧‧‧接收應用程式睡眠狀態訊息模組
604‧‧‧處理應用程式睡眠狀態訊息模組
700‧‧‧資料處理系統
703‧‧‧匯流排
705‧‧‧微處理器
707‧‧‧唯讀記憶體(ROM)
709‧‧‧揮發性隨機存取記憶體
711‧‧‧非揮發性記憶體/大容量儲存器
713‧‧‧顯示控制器及顯示器件
715‧‧‧輸入/輸出器件
800‧‧‧資料處理系統
801‧‧‧記憶體
803‧‧‧無線收發器
805‧‧‧音訊輸入/輸出子系統
809‧‧‧顯示控制器及顯示器件
811‧‧‧處理系統
813‧‧‧輸入器件
815‧‧‧輸入/輸出器件
817‧‧‧通信埠
在隨附圖式之圖中藉由實例且無限制地說明本發明,在該等圖中,類似參考指示類似元件。
圖1為具有多個執行中應用程式的器件之一項實施例之方塊圖。
圖2為應用程式睡眠狀態之一項實施例之說明。
圖3為偵測引起應用程式之睡眠狀態之修改的事件之處理程序之一項實施例之流程圖。
圖4為用以修改應用程式之睡眠狀態的處理程序之一項實施例之流程圖。
圖5為偵測引起應用程式之睡眠狀態之修改的事件之應用程式睡眠管理模組之一項實施例之方塊圖。
圖6為修改應用程式之睡眠狀態的應用程式睡眠狀態管理模組之一項實施例之方塊圖。
圖7說明典型電腦系統之一實例,該系統可連同本文描述之實施例使用。
圖8展示資料處理系統之一實例,該系統可供本發明之一項實施例使用。
本文描述修改執行中應用程式之應用程式睡眠狀態之器件的方法及裝置。在以下描述中,闡述眾多特定細節以提供對本發明之實施例之透徹說明。然而,熟習此項技術者將顯而易見,可在無此等特定細節的情況下實踐本發明之實施例。在其他實例中,尚未詳細展示熟知組件、結構及技術,以免模糊對此描述之理解。
在本說明書中對「一項實施例」或「一實施例」之提及意謂結合實施例描述之特定特徵、結構或特性可包括在本發明之至少一項實施例中。片語「在一項實施例中」在本說明書中各處的出現未必全部指代同一實施例。
在以下描述和申請專利範圍中,可使用術語「經耦接」及「經連接」以及其衍生詞。應理解,此等術語並不意欲作為相互之同義詞。「經耦接」用以指示可或可不彼此直接實體或電接觸兩個或兩個以上元件彼此協作或互動。「經連接」用以指示彼此耦接之兩個或兩個以上元件之間的通信之建立。
在以下諸圖中描繪之處理程序由處理邏輯執行,該處理邏輯包含硬體(例如,電路、專用邏輯等)、軟體(諸如在通用電腦系統或專用機器上執行之軟體)或兩者之組合。儘管下文以一些依序操作描述處
理程序,但應瞭解,所描述之操作中之一些可以不同次序執行。此外,一些操作可並行而非依序地執行。
術語「伺服器」、「用戶端」及「器件」意欲大體指資料處理系統,而非特定指伺服器、用戶端及/或器件之特定形式因數。
描述修改執行中應用程式之應用程式睡眠狀態的器件之方法及裝置。在一項實施例中,器件藉由使用一組試探法判定應用程式是否「重要」及是否控制應用程式對系統資源(例如,CPU百分數及/或頻率、圖形處理單元(GPU)存取及/或頻率、I/O存取之比率、計時器存取等)之存取來減少器件之功率消耗。舉例而言,針對視窗對使用者不可見(例如,隱藏在一視窗後)之應用程式,應用程式可請求一秒計時器,因此應用程式可每秒更新其使用者介面(UI)。然而,由於應用程式不對使用者可見,故允許應用程式每秒更新其UI可能無意義。在此實施例中,器件可限制應用程式存取一秒計時器之能力。
在一項實施例中,應用程式可使用一列應用程式執行階段特性基於一組試探法限制對器件資源之存取。在此實施例中,該執行階段特性集合可包括:應用程式為前景應用程式或是背景應用程式,處理程序是否為一應用程式(例如,搜尋索引不被看作應用程式),應用程式是否在螢幕上具有部分或完全可見的視窗,應用程式是否正繪示於顯示器上,應用程式是否正播放音訊,應用程式是否正使用附接至器件之攝影機或是麥克風,顯示器為開啟的或是關閉的,及/或使用者是否正與應用程式互動。
在一項實施例中,應用程式判定是否限制對器件資源之存取、是否改變此限制及/或是否移除資源限制。在一項實施例中,對器件資源之限制集合被稱為應用程式睡眠狀態。在此實施例中,應用程式監視應用程式事件以判定應用程式是否應修改應用程式睡眠狀態。若應用程式偵測到該事件,則應用程式評估應用程式之執行階段特性,
以判定應用程式是否應對核心程式指示應修改應用程式之應用程式睡眠狀態。若應用程式確實判定應修改應用程式睡眠狀態,則應用程式發送應用程式睡眠狀態訊息至核心程式。在一項實施例中,應用程式睡眠狀態訊息包括關於應如何修改應用程式睡眠狀態之指示詞。核心程式接收訊息且相應地修改應用程式之應用程式睡眠狀態。
圖1為具有多個作用中應用程式之器件100之一項實施例之方塊圖。在一項實施例中,器件100可為個人電腦、膝上型電腦、伺服器、行動器件(例如,智慧型手機、膝上型電腦、個人數位助理、音樂播放器件、遊戲器件等)、網路元件(例如,路由器、交換機、閘道器等)及/或能夠執行多個應用程式之任何器件。在一項實施例中,器件100可為實體或虛擬器件。在圖1中,器件100包括作業系統102,該作業系統為一組用以管理器件之硬體資源之軟體且提供共用服務以供其他器件執行器件之程式,諸如,執行應用程式108A-N。在一項實施例中,作業系統102藉由在器件100之處理器執行執行中應用程式108A-N之各者時之時間排程來管理不同執行中應用程式108A-N。在一項實施例中,一執行中應用程式為正執行之電腦程式之一實例。在此實施例中,執行中應用程式108A-N可為由於使用者輸入而執行之使用者應用程式。使用者應用程式之實例為網頁漫遊、文書處理、電子郵件、社交媒體、媒體處理等。執行中應用程式之另一實例為向使用者應用程式、其他應用程式等提供一或多種服務之系統處理程序。在一項實施例中,執行中應用程式108A-N為安裝在使用者之應用程式啟動程式(例如,應用程式駐區(dock))上的應用程式中之一者。在一項實施例中,應用程式108A-N同時將多個視窗顯示於器件之顯示器上。在此實施例中,應用程式108A-N中之一者可同時顯示多個視窗,及/或多個應用程式108A-N可同時顯示一或多個視窗。在一項實施例中,顯示之一視窗可為未閉塞視窗、部分閉塞視窗或最小化視
窗。在另一實施例中,器件100包括一虛擬記憶體子系統,其將資料在揮發性儲存器與非揮發性儲存器之間分頁傳送。舉例而言,且在一項實施例中,虛擬記憶體子系統將應用程式108A-N中之一或多者之資料在器件100之揮發性儲存器與非揮發性儲存器之間分頁傳送。
在一項實施例中,作業系統102包括一核心程式104,該核心程式為作業系統102之基本組件且提供對器件資源(例如,處理器、輸入/輸出系統、網路資源等)之一抽象化級別。另外,核心程式104可修改執行中應用程式108A-N中之一或多者之睡眠狀態。在一項實施例中,核心程式104回應於來自彼應用程式108A-N之請求而修改應用程式睡眠狀態。在此實施例中,應用程式108A-N監視此應用程式108A-N之活動且判定是否可修改應用程式108A-N之睡眠狀態。在一項實施例中,應用程式睡眠狀態為特性化應用程式對器件之一或多個資源之存取的狀態。在此實施例中,一應用程式睡眠狀態可為對器件資源之一預設存取,該預設存取在作業系統啟動應用程式時設定。在另一實施例中,一應用程式睡眠狀態可為對器件資源中之一或多者之一受限存取。另外,應用程式108A-N可存取之資源包括:對中央處理單元(CPU)之存取、CPU消耗時間量、輸入/輸出(I/O)優先順序、CPU頻率、GPU存取、GPU消耗時間量、GPU頻率、計時器存取、最大記憶體消耗、對真實記憶體及/或虛擬記憶體之存取的優先順序及/或網路I/O優先順序。在一項實施例中,應用程式108A-N可存取非記憶體資源(例如,對CPU之存取、CPU消耗時間量、輸入/輸出(I/O)優先順序、CPU頻率、GPU存取、GPU消耗時間量、GPU頻率、計時器存取、網路I/O優先順序及/或器件100之其他非記憶體資源)。在此實施例中,應用程式睡眠狀態特性化應用程式對器件100之一或更多個非記憶體資源的存取。不同應用程式睡眠狀態給定對該等器件資源之不同級別之存取。
在一項實施例中,正在預設狀態中執行之應用程式具有對器件資源之預設存取,該預設存取為資源存取之一級別。在一項實施例中,預設狀態為器件尚未將應用程式設定於應用程式睡眠狀態中時的資源存取之級別。在另一實施例中,預設狀態為作業系統在應用程式之啟動時間設定的器件資源存取。在再一實施例中,預設狀態為使用者與應用程式互動時使用之資源存取狀態。並非處於預設狀態之應用程式睡眠狀態具有對器件資源中之一或多者的進一步受限存取。舉例而言,且在一項實施例中,應用程式睡眠狀態可為將軟體時間限制為最小一秒(針對具有部分閉塞視窗之應用程式)或最小五秒(針對具有完全閉塞視窗之應用程式)的狀態。在一項實施例中,此應用程式睡眠狀態可用於不在前景中且正反覆更新視窗動畫之應用程式。在此實施例中,應用程式將使用極少資源更新應用程式動畫(例如,不太頻繁地使用CPU或圖形資源)且可節省器件資源。作為另一實例,應用程式睡眠狀態可為應用程式不能夠存取CPU時間、使用較少CPU時間或對CPU時間具有不太頻繁之存取的狀態。在此實例中,應用程式可具有對應用程式在執行階段間可存取之CPU時間量的上限(例如,不多於一個CPU計算核心之50%)。此外,CPU頻率指應用程式能夠存取CPU之頻率。舉例而言,且在一項實施例中,在正由作業系統排程以由CPU執行之應用程式之時間量(例如,在此應用程式睡眠狀態中,每一執行時間配量較小)及/或頻率方面,應用程式可具有對CPU的少於正常存取之存取。作為另一實例及實施例,在應用程式睡眠狀態中之應用程式可具有降低之I/O優先權,使得此狀態中之應用程式將具有對I/O(例如,磁碟、固態儲存器、網路存取或其他類型之I/O)之較少存取。在一項實施例中,前景應用程式為具有作用中視窗之應用程式,而背景應用程式為不具有作用中視窗之應用程式。
在一項實施例中,每一應用程式108A-N評估彼應用程式108A-N
之執行階段特性以判定是否應修改應用程式睡眠狀態。在一項實施例中,執行階段特性可為:應用程式是否具有某些啟動時間特性(例如,可作為前景應用程式啟動、可經組態以進入應用程式睡眠或不進入應用程式睡眠),應用程式處於前景或是背景中,應用程式是否於最後30秒至60秒尚未繪示於未閉塞視窗區域中,應用程式是否正播放音訊,應用程式連接至或是未連接至視訊攝影機、靜態攝影機或麥克風輸入器件(例如,網路攝影機或內建式攝影機)且是否正自該等器件接收輸入,應用程式是否正處理使用者事件,應用程式是否在應用程式啟動後的30秒處於寬限期視窗內,應用程式是否正持有權力宣告(power assertion)(例如,「無顯示器睡眠」或「無閒置系統睡眠」之權力宣告),應用程式已選擇退出應用程式睡眠(例如,應用程式或應用程式使用之程式庫在啟動、處理某些事件、保存文件、無論顯示器是開啟的或是關閉的或其他功能期間退出應用程式睡眠)。在一項實施例中,關閉的顯示器可為實體斷電之顯示器或可處於降低功率狀態中,在該狀態中,顯示器實體通電但處於較低供電狀態中(例如,空白螢幕、螢幕保護器開啟等)。
在一項實施例中,若滿足一個、一些或全部執行階段特性,則應用程式108A-N發送訊息至核心程式104以使核心程式針對請求應用程式108A-N設定應用程式睡眠狀態。在此實施例中,應用程式108A-N監視彼應用程式108A-N而非另一處理程序或組件(例如,核心程式或其他作業系統組件)之執行階段特性。在一項實施例中,應用程式108A-N中之每一者分別包括應用程式睡眠管理模組110A-N,該等模組監視應用程式事件且評估應用程式108A-N之執行階段特性以判定是否將修改應用程式睡眠狀態。舉例而言,且在一項實施例中,若應用程式108A-N可作為前景應用程式經啟動、經組態以可進入應用程式睡眠狀態且於最後30秒至60秒尚未繪示於未閉塞視窗區域中,則應
用程式睡眠管理模組110A-N可判定對應的應用程式108A-N應進入應用程式睡眠狀態。在此實施例中,應用程式睡眠狀態可為對CPU之減少存取(例如,將CPU之應用程式使用之上限限制為某一百分數)、降低之CPU頻率(例如,降低應用程式CPU優先權或重要性)、較小記憶體消耗最大值、減少之計時器存取、降低之I/O優先順序、降低之網路I/O優先順序、降低之記憶體優先順序或對器件100資源之另一受限存取。在一項實施例中,在發送至核心程式之訊息中,應用程式睡眠管理模組110A-N可向核心程式提供關於何種應用程式睡眠狀態將適合於應用程式的指令。應用程式可指示使用者已明確起始活動或動作且應允許應用程式不進入應用程式睡眠狀態。舉例而言,使用者可告知應用程式分批處理檔案集合。應用程式可向核心程式指示應用程式正代表使用者進行重要工作。舉例而言,且在一項實施例中,若以上實例針對於30秒至60秒未繪示未閉塞視窗中的應用程式,則應用程式睡眠管理模組110A-N可指示CPU百分數最大值或CPU頻率在發送至核心程式之訊息中降低。在下文圖3中進一步描述判定應用程式睡眠狀態改變。在一項實施例中,應用程式睡眠狀態管理模組110A-N與執行中應用程式108A-N分離。在此實施例中,應用程式睡眠管理模組110A-N可為器件之不同實體之部分(例如,核心程式104、作業系統102、另一應用程式或另一處理程序)。在一項實施例中,可存在用於每一應用程式108A-N之不同應用程式睡眠管理模組110A-N及/或用於一些或所有應用程式108A-N之一個應用程式睡眠管理模組110A-N。
在一項實施例中,核心程式104包括一應用程式睡眠狀態管理模組106以自應用程式108A-N接收關於對彼應用程式108A-N之應用程式睡眠狀態之修改的訊息。在此實施例中,應用程式睡眠狀態管理模組106接收訊息、解譯訊息中之指示詞、判定適當之應用程式睡眠狀態及設定彼應用程式之應用程式睡眠狀態。在一項實施例中,應用程式
睡眠狀態管理模組106藉由使用包括在訊息中之指示詞判定應用程式睡眠狀態。另外,應用程式睡眠狀態管理模組106調用核心程式及/或作業系統功能以針對此應用程式睡眠狀態限制應用程式對資源之存取。舉例而言,且在一項實施例中,應用程式睡眠狀態管理模組106調用作業系統功能以修改CPU最大百分數、CPU頻率、計時器存取、I/O優先權、網路I/O優先權、記憶體消耗最大值及/或記憶體優先權。在下文圖4中進一步描述接收應用程式睡眠狀態訊息及設定應用程式睡眠狀態。在一項實施例中,應用程式睡眠狀態管理模組110A-N與核心程式104分離。在此實施例中,應用程式睡眠狀態管理模組110A-N可為器件之不同實體之部分(例如,作業系統102、另一應用程式或另一處理程序)。
如上文所描述,應用程式可經置於應用程式睡眠狀態中,在該狀態中,應用程式睡眠狀態進一步限制應用程式對器件資源之存取。在一項實施例中,應用程式睡眠狀態可包括應用程式之對器件資源之一或多個限制。圖2為應用程式睡眠狀態之一項實施例之說明。在圖2中,在作業系統啟動應用程式之後,應用程式在預設應用程式睡眠狀態202中執行。在預設模式中,應用程式不具有對器件資源除由作業系統設定之針對彼應用程式的資源限制之外的任何限制。舉例而言,且在一項實施例中,應用程式將具有對CPU、CPU百分數、CPU頻率、I/O組件、網路I/O、計時器及記憶體之無限制存取。在一項實施例中,應用程式判定應用程式為使應用程式進入應用程式睡眠狀態204A-B中之一者的候選者。舉例而言,且在一項實施例中,應用程式判定應用程式視窗經部分閉塞。由於此視窗經部分閉塞,故完成之工作(例如,重繪應用程式視窗)可不必經常進行。在此實施例中,應用程式發送指示應用程式應進入應用程式睡眠狀態(例如,應用程式睡眠狀態204A)之訊息至核心程式。應用程式睡眠狀態204A比預設應
用程式睡眠狀態202具有對器件資源大的限制。舉例而言,且在一項實施例中,應用程式睡眠狀態204A可具有CPU百分數上限(例如,25%)、CPU頻率之降低(例如,相較於在預設狀態中,應用程式在降低頻率下將得到CPU時間配量)、較低I/O優先順序、較低網路I/O優先順序、較低記憶體優先順序、較小記憶體消耗最大值、限制計時器(例如,限制為一秒之最小值)及/或以上之組合。
在另一實施例中,應用程式進一步判定可將應用程式置於另一應用程式睡眠狀態204B。在此實施例中,應用程式睡眠狀態204B可為比當前應用程式睡眠狀態204A具有大的資源限制之狀態。舉例而言,且在一項實施例中,應用程式判定完全閉塞應用程式視窗。由於完全閉塞此視窗,故完成之工作(例如,重繪應用程式視窗)可不必經常進行。在此實例中,由於視窗經完全閉塞,故應用程式比在預設應用程式睡眠狀態202或應用程式睡眠狀態204A中可受限於少的器件資源。舉例而言,且在一項實施例中,應用程式睡眠狀態204B可將計時器限制為至少五秒,而非在應用程式睡眠狀態204A中的一秒之計時器限制。在一替代實施例中,應用程式睡眠狀態204B可比狀態204A具有少的器件存取限制,但比預設應用程式睡眠狀態202有多的器件存取限制。
在再一實施例中,應用程式判定應使應用程式自應用程式睡眠狀態(例如,應用程式睡眠狀態204B)返回至預設應用程式睡眠狀態(例如,狀態206)。舉例而言,且在一項實施例中,應用程式可接收指示應用程式自背景狀態移至前景狀態之事件。在此實例中,使用者可按一下應用程式之視窗以使應用程式自背景進入前景。
在另一實施例中,應用程式可在應用程式睡眠狀態(例如,應用程式睡眠狀態204A或204B)中而非在預設狀態中經啟動。在此實施例中,應用程式在應用程式睡眠狀態(例如,應用程式睡眠狀態204A)中
經啟動且可基於器件中之事件轉變至預設狀態202或206。舉例而言,且在一項實施例中,應用程式可偵測指示應用程式已自背景狀態移至前景狀態之事件。在此實例中,使用者可按一下應用程式之視窗以使應用程式自背景進入前景。在另一實例中,觸發自應用程式睡眠狀態至預設狀態之改變的事件可為應用程式開始播放音訊。
如上文所描述,應用程式可判定應用程式何時可進入或修改應用程式之睡眠狀態且信號通知核心程式進行此操作。圖3為偵測引起應用程式之睡眠狀態之修改的事件之處理程序300之一項實施例之流程圖。在一項實施例中,處理程序300由應用程式睡眠管理模組(諸如,上文所描述之圖1之應用程式睡眠管理模組110A-N)執行。在圖3中,處理程序300以在區塊302處監視應用程式之應用程式事件開始。在一項實施例中,應用程式事件可為可影響應用程式是否應進入應用程式睡眠狀態之事件。在一項實施例中,應用程式事件可為自前景至背景之轉變(或反之亦然)、應用程式視窗之完全或部分閉塞、一或多個應用程式視窗之最小化、應用程式開始或中止播放音訊、對與攝影機或麥克風輸入器件(視訊攝影機、靜態攝影機、其他類型之攝影機及/或麥克風)之連接或斷開以及自該等器件接收輸入(或未接收輸入)之偵測、應用程式是否正處理使用者事件(或中止處理使用者事件)、應用程式進入/超過寬限期、持有/發佈權力宣告、進入或退出應用程式睡眠、顯示器狀態改變(例如,顯示器自開啟變為關閉(斷電或關斷以節省電力)或反之亦然)、或將允許、不允許、另外影響應用程式睡眠狀態的另一類型之事件或某一其他應用程式事件。
在區塊304處,處理程序300判定是否發生事件。若無事件發生,則處理程序300進行至上文之區塊302。若事件發生,則在區塊306處,處理程序300判定事件是否可引起應用程式之睡眠狀態之改變。在一項實施例中,應用程式睡眠狀態之改變可為自預設狀態進入
應用程式睡眠狀態、退出應用程式睡眠狀態而進入預設狀態或自一個應用程式睡眠狀態改變為另一睡眠狀態。在一項實施例中,可引起應用程式之睡眠狀態改變的事件可為自前景至背景之轉變(或反之亦然)、應用程式視窗之完全或部分閉塞、一或多個應用程式視窗之最小化、應用程式開始或中止播放音訊、對與攝影機或麥克風輸入器件(視訊攝影機、靜態攝影機、其他類型之攝影機,及/或麥克風)之連接或斷開以及自該等器件接收輸入(或未接收輸入)之偵測、應用程式是否正處理使用者事件(或中止處理使用者事件)、應用程式進入/超過寬限期、持有/發佈權力宣告、進入或退出應用程式睡眠、或將允許、不允許、另外影響應用程式睡眠狀態之另一類型的事件。
在一項實施例中,除了可引起應用程式睡眠狀態之改變之事件以外,應用程式可另外需要具有引起改變的正確執行階段特性集合。在一項實施例中,在區塊308處,處理程序300評估執行階段特性。在一項實施例中,供應用程式進入應用程式睡眠狀態之執行階段特性集合可為以下執行階段特性中之一者、一些、所有或不為以下特性:應用程式具有某些啟動時間特性(例如,可經啟動作為前景應用程式、可經組態以進入或不進入應用程式睡眠);應用程式不處於前景中;應用程式於最後30秒至60秒尚未繪示於未閉塞視窗區域中;應用程式未正播放音訊;應用程式未連接至視訊攝影機、靜態攝影機或麥克風輸入器件(例如,網路攝影機或內建式攝影機),或應用程式連接至視訊攝影機、靜態攝影機或麥克風輸入器件,但未自該等器件接收輸入;應用程式正處理使用者事件;應用程式在應用程式啟動後之30秒未處於寬限期視窗內;應用程式未持有權力宣告(例如,「無顯示器睡眠」或「無閒置系統睡眠」權力宣告);應用程式尚未退出應用程式睡眠(例如,應用程式或應用程式使用之程式庫在啟動、處理某些事件、保存文件時或其他功能期間退出應用程式睡眠);應用程式是否
不具有未公開之使用者預設;或將允許或防止應用程式睡眠狀態之修改的另一類型之執行階段特性。若應用程式不具有正確之執行階段特性集合,則執行進行至上文之區塊302。
若應用程式具有正確之執行階段特性集合,則在區塊310處,處理程序300判定應用程式睡眠狀態改變。在一項實施例中,處理程序300判定哪些資源限制適合於睡眠狀態。在此實施例中,處理程序300將向核心程式指示處理程序300判定之資源限制為適當的。舉例而言,且在一項實施例中,若應用程式處於預設狀態中,事件指示應用程式視窗經部分閉塞,且應用程式處於背景中且於30秒至60秒尚未繪示未閉塞視窗區域中,則處理程序300可向核心程式指示應用程式睡眠狀態改變將為以下睡眠狀態:該睡眠狀態可為對CPU之減少存取(例如,不能存取CPU、將CPU之應用程式使用上限限制為某一百分數)、降低之CPU頻率(例如,降低應用程式CPU優先權或重要性)、計時器限制、降低之I/O優先順序、降低之網路I/O優先順序、降低之記憶體優先順序、較小記憶體消耗最大值或對器件資源之另一受限存取。作為另一實例及另一實施例,處理程序300可判定部分閉塞視窗事件可引起針對應用程式將計時器限制為至少一秒的睡眠狀態之改變。作為再一實例及實施例,處理程序300可判定完全閉塞視窗事件可引起針對應用程式將計時器限制為至少五秒的睡眠狀態之改變。
在區塊312處,處理程序300將應用程式睡眠狀態訊息發送至核心程式。在一項實施例中,處理程序300將此訊息發送至核心程式之應用程式睡眠狀態管理模組,諸如,上文在圖1中說明之應用程式睡眠狀態管理模組106。在一項實施例中,應用程式睡眠狀態訊息識別發送應用程式及/或包括在區塊308處判定之指示詞。舉例而言,且在一項實施例中,指示詞可指示應用程式應具有對CPU之減少存取(例如,不能夠存取CPU、將CPU之應用程式使用上限限制為某一百分
數)、降低之CPU頻率(例如,降低應用程式CPU優先權或重要性)、計時器限制、降低之I/O優先順序、降低之網路I/O優先順序、降低之記憶體優先順序、較小記憶體消耗最大值或對器件資源之另一受限存取。在上文圖4中進一步描述對應用程式睡眠狀態訊息之處理。
圖4為修改應用程式之睡眠狀態的處理程序400之一項實施例之流程圖。在一項實施例中,處理程序400由應用程式睡眠管理模組(諸如,上文圖1中說明之應用程式睡眠狀態管理模組106)執行。在圖4,處理程序400以在區塊402處接收應用程式睡眠狀態訊息開始。在一項實施例中,應用程式睡眠狀態訊息為來自該等應用程式的指示彼應用程式睡眠狀態之改變的訊息。在此實施例中,應用程式判定何時自預設狀態進入應用程式睡眠狀態、退出應用程式睡眠狀態而進入預設狀態或自一個應用程式睡眠狀態改變至另一睡眠狀態。在另一實施例中,另一處理程序判定應用程式是否應改變其睡眠狀態。在此實施例中,處理程序400經由如上文在圖3中描述之應用程式睡眠狀態訊息接收此判定。
在區塊404處,處理程序400處理該應用程式睡眠狀態訊息。在一項實施例中,應用程式睡眠狀態訊息包括關於應用程式應轉變至何睡眠狀態之指示詞。在此實施例中,處理程序400自該訊息擷取指示詞且自指示詞判定何睡眠狀態適合於發起應用程式睡眠狀態訊息之應用程式。在此實施例中,處理程序400擷取訊息中之指示詞且應用作業系統功能以限制應用程式對器件資源之存取。舉例而言,且在一項實施例中,處理程序400可應用作業系統功能以減少應用程式對CPU百分數之存取(例如,將對CPU之應用程式使用上限限制為某一百分數)、降低CPU頻率(例如,降低應用程式CPU優先權或重要性)、減小計時器、減少I/O或減少對器件資源之另一受限存取。另外,指示詞可對處理程序400指示移除應用程式之當前資源限制。在一項實施例
中,若應用程式判定應用程式應返回預設狀態,則應用程式睡眠狀態訊息將包括指示應用程式應返回預設狀態之指示詞。在此實施例中,處理程序400應用作業系統功能使應用程式返回至預設狀態。在一項實施例中,執行中應用程式之預設狀態為器件尚未將應用程式設定於應用程式睡眠狀態中時資源存取之一級別。
圖5為偵測引起應用程式之睡眠狀態之修改的事件之應用程式睡眠管理模組500之一項實施例之方塊圖。在一項實施例中,應用程式睡眠管理模組500為如上文在圖1中描述之應用程式睡眠管理模組110A-N中之一者。在一項實施例中,應用程式睡眠管理模組500包括監視應用程式事件模組502、偵測事件模組504、事件改變應用程式睡眠模組506、應用程式特性模組508、判定應用程式睡眠改變模組510及發送應用程式睡眠改變訊息模組512。在一項實施例中,監視應用程式事件模組502監視應用程式之事件,如上文在圖3中於區塊302處所描述。偵測事件模組504偵測應用程式事件,如上文在圖3中於區塊304處所描述。事件改變應用程式睡眠模組506判定應用程式事件是否引起應用程式睡眠狀態之改變,如上文在圖3中於區塊306處所描述。應用程式特性模組508判定應用程式是否具有正確之執行階段特性集合,如上文在圖3中於區塊308處所描述。判定應用程式睡眠改變模組510判定應用程式睡眠狀態改變,如上文在圖3中於區塊310處所描述。發送應用程式睡眠改變訊息模組512發送應用程式睡眠狀態訊息,如上文在圖3中於區塊312處所描述。
圖6為修改應用程式之睡眠狀態的應用程式睡眠狀態管理模組106之一項實施例之方塊圖。在一項實施例中,應用程式睡眠修改模組106包括接收應用程式睡眠狀態訊息模組602及處理應用程式睡眠狀態訊息模組604。在一項實施例中,接收應用程式睡眠狀態訊息模組602接收應用程式睡眠狀態訊息,如上文在圖4中於區塊402處所描
述。處理應用程式睡眠狀態訊息模組604處理應用程式睡眠狀態訊息,如上文在圖4中於區塊404處所描述。
圖7展示資料處理系統700之一個實例,該系統可供本發明之一項實施例使用。舉例而言,系統700可經實施包括圖1中所示之器件100。注意,儘管圖7說明電腦系統之各種組件,但不意欲表示互連該等組件之任何特定構架或方式,因為此等細節並不與本發明關係密切。亦應瞭解,具有較少組件或也許更多組件之網路電腦及其他資料處理系統或其他消費型電子器件亦可供本發明使用。
如圖7中所示,呈資料處理系統形式之電腦系統700包括耦接至一或多個微處理器705及ROM(唯讀記憶體)707以及揮發性隨機存取記憶體(RAM)709與非揮發性記憶體711之匯流排703。微處理器705可包括一或多個CPU、GPU、專用處理器及/或其組合。微處理器705可自記憶體707、709、711擷取指令且執行該等指令以執行上文所描述之操作。匯流排703將該等各種組件互連在一起且亦將該等組件705、707、709及711與顯示控制器及顯示器件713以及諸如輸入/輸出(I/O)器件715(其可為滑鼠、鍵盤、數據機、網路介面、印表機及此項技術中熟知之其他器件)之周邊器件互連。通常,輸入/輸出器件715經由輸入/輸出控制器717耦接至系統。揮發性RAM(隨機存取記憶體)709通常實施為動態RAM(DRAM),此持續需要電力以便再新或維持記憶體中之資料。
大容量儲存器711通常為磁性硬碟機,或磁性光碟機,或光碟機,或DVD RAM,或快閃記憶體,或甚至在自系統移除電力後亦維持資料(例如,大量資料)的其他類型之記憶體系統。通常,大容量儲存器711亦將為隨機存取記憶體,但此並非必需。儘管圖7展示大容量儲存器711為直接耦接至資料處理系統中之剩餘組件的本端器件,但應瞭解,本發明可利用遠離系統之非揮發性記憶體,諸如,經由網路
介面(諸如,數據機、乙太網路介面或無線網路)耦接至資料處理系統之網路儲存器件。如此項技術中所熟知,匯流排703可包括經由各種橋接器、控制器及/或配接器相互連接之一或多個匯流排。
圖8展示另一資料處理系統800之實例,該系統可供本發明之一項實施例使用。舉例而言,系統800可實施為如圖1中所示之器件100。圖8中所示之資料處理系統800包括可為一或多個微處理器或可為晶片積體電路上之系統的處理系統811,且系統亦包括用於儲存資料及供處理系統執行之程式的記憶體801。系統800亦包括音訊輸入/輸出子系統805,該子系統可包括麥克風及揚聲器,以用於(例如)經由揚聲器及麥克風播放音樂或提供電話功能。
顯示控制器及顯示器件809為使用者提供視覺使用者介面;此數位介面可包括圖形使用者介面,該圖形使用者介面類似於執行OS X作業系統軟體時Macintosh電腦或執行iOS作業系統時的蘋果iPhone等上展示的介面。系統800亦包括一或多個無線收發器803以與諸如圖8之系統800的另一資料處理系統通信。無線收發器可為WLAN收發器、紅外線收發器、藍芽收發器及/或無線蜂巢式電話收發器。應瞭解,在某些實施例中,未圖示之額外組件亦可為系統800之部分,且在某些實施例中,亦可將比圖8中所展示少之組件用於資料處理系統中。系統800進一步包括一或多個通信埠817以與諸如圖7之系統700之另一資料處理系統通信。通信埠可為USB埠、Firewire埠、藍芽介面等。
資料處理系統800亦包括一或多個輸入器件813,該等輸入器件經提供以允許使用者提供至系統之輸入。此等輸入器件可為小鍵盤,或鍵盤,或觸控面板,或多觸控面板。資料處理系統800亦包括選用之輸入/輸出器件815,該選用之輸入/輸出器件可為用於銜接器之連接器。應瞭解,如此項領域中所熟知,未圖示之一或多個匯流排可用以
互連各種組件。圖8中所示之資料處理系統可為手持式電腦或個入數位助理(PDA),或具有PDA類似功能性之蜂巢式電話,或包括蜂巢式電話之手持式電腦,或諸如iPod之媒體播放器,或組合此等器件之態樣或功能之器件(諸如,在一個器件中與PDA及蜂巢式電話組合之媒體播放器),或嵌式器件,或其他消費型電子器件。在其他實施例中,資料處理系統800可為另一器件內之網路電腦或嵌式處理器件,或具有比圖8中所示少的組件或也許多的組件的其他類型之資料處理系統。
本發明之至少某些實施例可為數位媒體播放器(諸如,攜帶型音樂及/或視訊媒體播放器)之部分,該播放器可包括呈現媒體之媒體處理系統、儲存媒體之儲存器件,且可進一步包括與天線系統及媒體處理系統耦接之射頻(RF)收發器(例如,用於蜂巢式電話之RF收發器)。在某些實施例中,儲存在遠端儲存器件上之媒體可經由RF收發器傳輸至媒體播放器。媒體可為(例如)音樂或其他音訊、靜態圖片或動態圖片中之一或多者。
攜帶型媒體播放器可包括媒體選擇器件,諸如,來自Cupertino,CA之Apple,Inc.之iPod®或iPod Nano®媒體播放器上的點按式選盤輸入器件、觸控螢幕輸入器件、按鈕器件、可移動指標輸入器件或其他輸入器件。媒體選擇器件可用以選擇儲存在儲存器件及/或遠端儲存器件上之媒體。在至少某些實施例中,便攜式媒體播放器可包括顯示器件,該顯示器件耦接至媒體處理系統以顯示正經由輸入器件選擇及經由揚聲器或一或多個耳機或在顯示器件上或在顯示器件及揚聲器或一或多個耳機兩者上呈現之媒體的標題或其他指示符。攜帶型媒體播放器之實例描述於公開之美國專利第7,345,671號及美國公開專利第2004/0224638號中,該兩個專利被以引用之方式併入本文中。
上文所描述之器件之部分可以邏輯電路(諸如,專用邏輯電路)或
以微控制器或執行程式碼指令之其他形式的處理核心實施。因此,上文之論述教示之處理程序可以諸如機器可執行指令的程式碼執行,該等指令引起機器執行此等指令以執行某些功能。在此上下文中,「機器」可為將中間形式(或「抽象」)指令轉換為處理器特定指令(例如,抽象執行環境,諸如「虛擬機」(例如,Java虛擬機)、解譯器、共用語言執行環境、高階語言虛擬機等)之機器及/或安置於經設計以執行指令之半導體晶片上的電子電路(例如,以電晶體實施之「邏輯電路」),諸如,通用處理器及/或專用處理器。上文之論述教示之處理程序亦可由經設計以執行處理程序(或其一部分)而不執行程式碼之電子電路(替代機器或與機器共同)執行。
本發明亦係關於一種用於執行本文中所描述之操作之裝置。此裝置可針對所需用途特殊地建構,或其可包含由儲存在電腦中之電腦程式選擇性啟動或重新組態之通用電腦。此電腦程式可儲存於電腦可讀取儲存媒體中,諸如(但不限於),任一類型之碟片,包括軟性磁碟、光碟、CD-ROM及磁光碟、唯讀記憶體(ROM)、RAM、EPROM、EEPROM、磁卡或光卡或任一類型之適用於儲存電子指令的媒體,且該等媒體中之每一者耦接至一電腦系統匯流排。
機器可讀取媒體包括用於儲存或傳輸呈可由機器(例如,電腦)讀取之形式之資訊的任何機構。舉例而言,機器可讀取媒體包括唯讀記憶體(「ROM」)、隨機存取記憶體(「RAM」)、磁碟儲存媒體、光儲存媒體、快閃記憶體器件等。
一種製品可用以儲存程式碼。儲存程式碼之製品可體現為(但不限於)一或多個記憶體(例如,一或多個快閃記憶體、隨機存取記憶體(靜態、動態或其他))、光碟、CD-ROM、DVD ROM、EPROM、EEPROM、磁卡或光卡或其他類型之適用於儲存電子指令的機器可讀取媒體。程式碼亦可藉助於體現於傳播媒體中之資料信號自遠端電腦
(例如,伺服器)下載至請求電腦(例如,用戶端)(例如,經由通信鏈路(例如,網路連接))。
前述詳細描述以對電腦記憶體內之資料位元之操作的演算法及符號表示呈現。此等演算法描述及表示為熟習此項技術者在資料處理技術中使用以向其他熟習此項技術者最有效地傳達其工作之要點的工具。此處且大體設想演算法為導致所要結果之操作之自相一致序列。該等操作為需要物理量之實體操縱的操作。通常(但未必),此等量採取能夠以儲存、傳送、組合、比較及以其他方式操縱的電信號或磁信號之形式。已證明將此等信號稱為位元、值、元素、符號、字元、項、數字或類似者時常(主要為了普通用途)為便利的。
然而,應記住,所有此等及類似術語應與適當物理量相關聯且僅為應用於此等量之便利標記。除非如自上文論述顯而易見地另外明確敍述,應瞭解,貫穿描述,使用諸如「偵測」、「評估」、「接收」、「判定」、「計算」、「發送」、「修改」或類似者之術語的論述指電腦系統或類似電子計算器件操縱電腦系統之暫存器及記憶體內表示為物理(電子)量之資料及將該資料變換為在電腦系統記憶體或暫存器或其他此類資訊儲存、傳輸或顯示器件內類似地表示為物理量之其他資料的動作及處理程序。
本文所呈現之處理程序及顯示器並不固有地與任何特定電腦或其他裝置有關。根據本文中之教示,多種通用系統可供程式使用,或其可證明便於建構更專用之裝置來執行所描述操作。多種此等系統之所需結構將自以下描述顯而易見。另外,並未參照任何特定程式設計語言而描述本發明。應瞭解,多種程式設計語言可用以實施如本文中所描述的本發明之教示。
前述論述僅描述本發明之一些例示性實施例。熟悉此項技術者將容易自此論述、隨附圖式及申請專利範圍認識到,可在不脫離本發
明之精神及範疇之情況下進行各種修改。
300‧‧‧偵測引起應用程式之睡眠狀態之修改的事件之處理程序
Claims (20)
- 一種非暫時性機器可讀取媒體,該機器可讀取媒體具有可執行指令以使一或多個處理單元執行修改一器件之一執行中應用程式之一應用程式睡眠狀態的一方法,該方法包含:偵測與該執行中應用程式相關聯之一事件;評估該執行中應用程式之一或多個執行階段特性;基於該執行中應用程式之該經監視的一或多個執行階段特性及該事件判定該執行中應用程式是否為應修改彼執行中應用程式之該應用程式睡眠狀態的一候選者;及若該執行中應用程式為應修改彼執行中應用程式之該應用程式睡眠狀態的一候選者,則發送一訊息至該器件之一應用程式睡眠狀態管理模組,該訊息指示將如何修改該執行中應用程式之該應用程式睡眠狀態,其中該器件包括一虛擬記憶體子系統,該虛擬記憶體子系統將該執行中應用程式之資料在揮發性儲存器與非揮發性儲存器之間分頁傳送。
- 如請求項1之非暫時性機器可讀取媒體,其中該執行中應用程式之該應用程式睡眠狀態為該執行中應用程式具有對該器件之一資源集合的一減少存取之一減少狀態。
- 如請求項2之非暫時性機器可讀取媒體,其中對該器件之該資源集合之該減少存取為自該執行中應用程式之一預設狀態的一資源存取之一減少,其中該執行中應用程式之該預設狀態為器件資源存取之一級別。
- 如請求項2之非暫時性機器可讀取媒體,其中該器件之該資源集合選自由以下組成之群組:中央處理單元存取使用、中央處理 單元頻率、圖形處理單元存取、計時器存取、輸入/輸出優先權、記憶體消耗、記憶體存取優先順序及網路輸入/輸出優先順序。
- 如請求項2之非暫時性機器可讀取媒體,其中對該應用程式睡眠狀態之該修改為自一預設狀態至該減少狀態之一轉變,其中該執行中應用程式之該預設狀態為器件資源存取之一級別。
- 如請求項1之非暫時性機器可讀取媒體,其中一執行階段特性選自由以下組成之群組:該執行中應用程式為一前景應用程式或是背景應用程式;該執行中應用程式是否在螢幕上具有一部分或完全可見的視窗;該執行中應用程式是否正繪示於一顯示器上;該執行中應用程式是否正播放音訊;該執行中應用程式是否正使用一攝影機或是麥克風之一改變;該顯示器為開啟的或是關閉的;及一使用者是否正與該執行中應用程式互動。
- 如請求項1之非暫時性機器可讀取媒體,其中該事件選自由以下組成之群組:自前景至背景之一轉變;自背景至前景之一轉變;一應用程式視窗之閉塞;修改音訊播放;耦接至該器件之一攝影機或麥克風之使用或耦接的一改變;該執行中應用程式正處理一使用者事件;一寬限期之一期滿;一權力宣告之改變;顯示器狀態之一改變;及一應用程式睡眠設定之改變。
- 如請求項1之非暫時性機器可讀取媒體,其中對該應用程式睡眠狀態之該修改為自對一器件資源之一減少存取至該執行中應用程式之一預設狀態之一轉變,其中該執行中應用程式之該預設狀態為器件資源存取之一級別。
- 如請求項1之非暫時性機器可讀取媒體,其中該訊息包括關於如何修改該應用程式睡眠狀態之一指示詞。
- 如請求項1之非暫時性機器可讀取媒體,其中一作業系統基於該 訊息修改該執行中應用程式之該應用程式睡眠狀態。
- 一種非暫時性機器可讀取媒體,該機器可讀取媒體具有可執行指令以使一或多個處理單元執行修改一器件之一執行中應用程式之一應用程式睡眠狀態的一方法,該方法包含:自一應用程式睡眠管理模組接收一應用程式睡眠狀態訊息,其中該應用程式睡眠狀態訊息包括關於如何修改該應用程式睡眠狀態之一指示詞;及基於該指示詞修改複數個執行中應用程式中之一者之該應用程式睡眠狀態,其中該器件包括一虛擬記憶體子系統,該虛擬記憶體子系統將該執行中應用程式之資料在揮發性儲存器與非揮發性儲存器之間分頁傳送。
- 如請求項11之非暫時性機器可讀取媒體,其中該執行中應用程式之該應用程式睡眠狀態為該執行中應用程式具有對該器件之一資源集合的一減少存取之一狀態。
- 如請求項12之非暫時性機器可讀取媒體,其中對該器件之該資源集合之該減少存取為自該執行中應用程式之一預設狀態之一資源存取的一減少,其中該執行中應用程式之該預設狀態為在該執行中應用程式由一作業系統啟動時設定的一資源存取之一初始設定。
- 如請求項13之非暫時性機器可讀取媒體,其中對該應用程式睡眠狀態之該修改為自對一器件資源之一減少存取至該執行中應用程式之該預設狀態之一轉變。
- 一種修改一器件之一執行中應用程式之一應用程式睡眠狀態之方法,該方法包含:偵測與該執行中應用程式相關聯之一事件;評估該執行中應用程式之一或多個執行階段特性; 基於該執行中應用程式之該經評估的一或多個執行階段特性及該事件判定該執行中應用程式是否為應修改彼執行中應用程式之該應用程式睡眠狀態的一候選者;及若該執行中應用程式為應修改彼執行中應用程式之該應用程式睡眠狀態的一候選者,則發送一訊息至該器件之一應用程式睡眠狀態管理模組,該訊息指示將如何修改該執行中應用程式之該應用程式睡眠狀態,其中該器件包括一虛擬記憶體子系統,該虛擬記憶體子系統將該執行中應用程式之資料在揮發性儲存器與非揮發性儲存器之間分頁傳送。
- 如請求項15之方法,其中該執行中應用程式之該應用程式睡眠狀態為該執行中應用程式具有對該器件之一資源集合的一減少存取之一狀態。
- 如請求項15之方法,其中一執行階段特性選自由以下組成之群組:該執行中應用程式為一前景應用程式或是背景應用程式;該執行中應用程式是否在一螢幕上具有一部分或完全可見的視窗;該執行中應用程式是否正繪示於一顯示器上;該執行中應用程式是否正播放音訊;該執行中應用程式是否正使用一攝影機或是麥克風之一改變;該顯示器為開啟的或是關閉的;及一使用者是否正與該執行中應用程式互動。
- 如請求項15之方法,其中該事件選自由以下組成之群組:自前景至背景之一轉變;自背景至前景之一轉變;一應用程式視窗之閉塞;修改音訊播放;耦接至該器件之一攝影機或麥克風之使用或耦接的一改變;該執行中應用程式正處理一使用者事件;一寬限期之一期滿;一權力宣告之改變;顯示器狀態之改變;及一應用程式睡眠設定之改變。
- 一種修改器件之一執行中應用程式之一應用程式睡眠狀態之器件,該器件包含:一處理器;一記憶體,其經由一匯流排耦接至該處理器;一虛擬記憶體子系統,其將該執行中應用程式之資料在揮發性儲存器與非揮發性儲存器之間分頁傳送;及由該處理器自該記憶體執行的一處理程序使該處理器:偵測與該執行中應用程式相關聯之一事件;評估該執行中應用程式之一或多個執行階段特性;基於該執行中應用程式之該經評估的一或多個執行階段特性及該事件判定該執行中應用程式是否為應修改彼執行中應用程式之該應用程式睡眠狀態的一候選者;及若該執行中應用程式為應修改彼執行中應用程式之該應用程式睡眠狀態的一候選者,則發送一訊息至該器件之一作業系統,該訊息指示將如何修改該執行中應用程式之該應用程式睡眠狀態。
- 如請求項19之方法,其中該執行中應用程式之該應用程式睡眠狀態為該執行中應用程式具有對該器件之一資源集合的一減少存取之一狀態。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361832735P | 2013-06-07 | 2013-06-07 | |
US14/077,131 US9336068B2 (en) | 2013-06-07 | 2013-11-11 | Throttling of application access to resources |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201512836A true TW201512836A (zh) | 2015-04-01 |
TWI521341B TWI521341B (zh) | 2016-02-11 |
Family
ID=52006651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103119274A TWI521341B (zh) | 2013-06-07 | 2014-06-03 | 節流應用程式對資源之存取 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9336068B2 (zh) |
TW (1) | TWI521341B (zh) |
WO (1) | WO2014197183A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI825763B (zh) * | 2022-03-21 | 2023-12-11 | 瑞昱半導體股份有限公司 | 網路流量配置方法與電腦系統 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9591339B1 (en) | 2012-11-27 | 2017-03-07 | Apple Inc. | Agnostic media delivery system |
US9774917B1 (en) | 2012-12-10 | 2017-09-26 | Apple Inc. | Channel bar user interface |
US10200761B1 (en) | 2012-12-13 | 2019-02-05 | Apple Inc. | TV side bar user interface |
US9532111B1 (en) | 2012-12-18 | 2016-12-27 | Apple Inc. | Devices and method for providing remote control hints on a display |
US10521188B1 (en) | 2012-12-31 | 2019-12-31 | Apple Inc. | Multi-user TV user interface |
US9652060B2 (en) * | 2013-06-28 | 2017-05-16 | Synaptics Incorporated | Low-latency touch feedback |
US20160242067A1 (en) * | 2013-09-27 | 2016-08-18 | Nec Corporation | Radio communication system, radio communication terminal, control method of radio communication system, and storage medium |
EP3084601A4 (en) * | 2013-12-17 | 2017-07-26 | Intel Corporation | Techniques for portable computing device virtualization |
EP4242814A3 (en) | 2014-06-24 | 2023-10-18 | Apple Inc. | Input device and user interface interactions |
EP3126953A1 (en) | 2014-06-24 | 2017-02-08 | Apple Inc. | Column interface for navigating in a user interface |
US9565218B2 (en) * | 2015-01-23 | 2017-02-07 | Oracle International Corporation | Resource management for WebRTC |
WO2017075088A1 (en) * | 2015-10-27 | 2017-05-04 | Blackberry Limited | Detecting resource access |
CN105320561B (zh) * | 2015-11-09 | 2019-03-08 | 深圳市万普拉斯科技有限公司 | 任务管理方法和系统 |
CN106095051B (zh) | 2016-05-31 | 2019-02-01 | Oppo广东移动通信有限公司 | 一种移动终端应用程序的处理方法、装置及移动终端 |
DK201670582A1 (en) | 2016-06-12 | 2018-01-02 | Apple Inc | Identifying applications on which content is available |
DK201670581A1 (en) | 2016-06-12 | 2018-01-08 | Apple Inc | Device-level authorization for viewing content |
US11966560B2 (en) | 2016-10-26 | 2024-04-23 | Apple Inc. | User interfaces for browsing content from multiple content applications on an electronic device |
US9703841B1 (en) | 2016-10-28 | 2017-07-11 | International Business Machines Corporation | Context-based notifications in multi-application based systems |
US10776895B2 (en) * | 2017-02-10 | 2020-09-15 | Apple Inc. | GPU power and performance management |
US10649889B2 (en) | 2017-06-04 | 2020-05-12 | Apple Inc. | Method and apparatus for managing kernel memory of data processing systems |
US11294530B2 (en) * | 2017-08-07 | 2022-04-05 | Microsoft Technology Licensing, Llc | Displaying a translucent version of a user interface element |
DK201870354A1 (en) | 2018-06-03 | 2019-12-20 | Apple Inc. | SETUP PROCEDURES FOR AN ELECTRONIC DEVICE |
CN109117236B (zh) * | 2018-08-27 | 2021-10-22 | Tcl移动通信科技(宁波)有限公司 | 一种多界面之间的事件状态显示方法、终端及存储介质 |
CN111522634B (zh) * | 2019-02-02 | 2024-04-12 | 华为技术有限公司 | 应用管理方法、装置及设备 |
US11962836B2 (en) | 2019-03-24 | 2024-04-16 | Apple Inc. | User interfaces for a media browsing application |
US11683565B2 (en) | 2019-03-24 | 2023-06-20 | Apple Inc. | User interfaces for interacting with channels that provide content that plays in a media browsing application |
CN113711169A (zh) | 2019-03-24 | 2021-11-26 | 苹果公司 | 包括内容项的可选表示的用户界面 |
EP3928526A1 (en) * | 2019-03-24 | 2021-12-29 | Apple Inc. | User interfaces for viewing and accessing content on an electronic device |
EP3977245A1 (en) | 2019-05-31 | 2022-04-06 | Apple Inc. | User interfaces for a podcast browsing and playback application |
US11863837B2 (en) | 2019-05-31 | 2024-01-02 | Apple Inc. | Notification of augmented reality content on an electronic device |
WO2021167659A1 (en) * | 2019-11-14 | 2021-08-26 | Trideum Corporation | Systems and methods of monitoring and controlling remote assets |
CN112882823A (zh) * | 2019-11-29 | 2021-06-01 | 华为技术有限公司 | 屏幕显示方法及电子设备 |
US11843838B2 (en) | 2020-03-24 | 2023-12-12 | Apple Inc. | User interfaces for accessing episodes of a content series |
US11899895B2 (en) | 2020-06-21 | 2024-02-13 | Apple Inc. | User interfaces for setting up an electronic device |
US11720229B2 (en) | 2020-12-07 | 2023-08-08 | Apple Inc. | User interfaces for browsing and presenting content |
US11934640B2 (en) | 2021-01-29 | 2024-03-19 | Apple Inc. | User interfaces for record labels |
US20230205301A1 (en) * | 2021-12-28 | 2023-06-29 | Advanced Micro Devices, Inc. | Dynamic adjustment of power modes |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5694603A (en) | 1982-09-28 | 1997-12-02 | Reiffin; Martin G. | Computer memory product with preemptive multithreading software |
US5012409A (en) | 1988-03-10 | 1991-04-30 | Fletcher Mitchell S | Operating system for a multi-tasking operating environment |
TW278291B (zh) | 1992-06-30 | 1996-06-11 | Motorola Inc | |
US5410543A (en) | 1993-01-04 | 1995-04-25 | Apple Computer, Inc. | Method for connecting a mobile computer to a computer network by using an address server |
US5428789A (en) | 1993-08-27 | 1995-06-27 | Waldron, Iii; Theodore C. | Method and apparatus for optimizing user response time in a priority preemptive operating system |
US5542088A (en) | 1994-04-29 | 1996-07-30 | Intergraph Corporation | Method and apparatus for enabling control of task execution |
US6078942A (en) | 1996-04-25 | 2000-06-20 | Microsoft Corporation | Resource management for multimedia devices in a computer |
US5911077A (en) | 1996-05-31 | 1999-06-08 | Micron Electronics, Inc. | System for multithreaded disk drive operation in a computer system |
US6260150B1 (en) * | 1998-03-10 | 2001-07-10 | Agere Systems Guardian Corp. | Foreground and background context controller setting processor to power saving mode when all contexts are inactive |
US6205468B1 (en) | 1998-03-10 | 2001-03-20 | Lucent Technologies, Inc. | System for multitasking management employing context controller having event vector selection by priority encoding of contex events |
US6952827B1 (en) | 1998-11-13 | 2005-10-04 | Cray Inc. | User program and operating system interface in a multithreaded environment |
US7847833B2 (en) | 2001-02-07 | 2010-12-07 | Verisign, Inc. | Digital camera device providing improved methodology for rapidly taking successive pictures |
US6823517B1 (en) | 2000-01-27 | 2004-11-23 | Andrew E. Kalman | Multi-tasking-real-time operating system for microprocessors with limited memory that constrains context switching to occur only at task level |
US6598143B1 (en) | 2000-02-24 | 2003-07-22 | International Business Machines Corporation | Method to increase performance of acquiring free memory pages |
US7111297B1 (en) | 2000-05-02 | 2006-09-19 | Microsoft Corporation | Methods and architectures for resource management |
US7345671B2 (en) | 2001-10-22 | 2008-03-18 | Apple Inc. | Method and apparatus for use of rotational user inputs |
US7082492B2 (en) | 2002-08-10 | 2006-07-25 | Cisco Technology, Inc. | Associative memory entries with force no-hit and priority indications of particular use in implementing policy maps in communication devices |
TW579466B (en) | 2002-08-12 | 2004-03-11 | Mitac Int Corp | Method for improving overall working efficiency of data storage device in multi-task operation environment |
AU2003208224B2 (en) | 2002-11-04 | 2007-10-11 | Blackberry Limited | Wireless device battery conservation method and system |
US7191349B2 (en) | 2002-12-26 | 2007-03-13 | Intel Corporation | Mechanism for processor power state aware distribution of lowest priority interrupt |
US7444637B2 (en) | 2003-02-18 | 2008-10-28 | Microsoft Corporation | Systems and methods for scheduling coprocessor resources in a computing system |
US7627343B2 (en) | 2003-04-25 | 2009-12-01 | Apple Inc. | Media player system |
GB0316080D0 (en) * | 2003-07-09 | 2003-08-13 | Nokia Corp | Service halt |
US20050026654A1 (en) * | 2003-07-30 | 2005-02-03 | Motorola, Inc. | Dynamic application resource management |
TWI255423B (en) | 2003-12-26 | 2006-05-21 | Mitac Int Corp | Method of wake-up and instantly initiating application program for computer system |
US7383463B2 (en) | 2004-02-04 | 2008-06-03 | Emc Corporation | Internet protocol based disaster recovery of a server |
US7457484B2 (en) | 2004-06-23 | 2008-11-25 | Creative Technology Ltd | Method and device to process digital media streams |
US7281145B2 (en) | 2004-06-24 | 2007-10-09 | International Business Machiness Corporation | Method for managing resources in a CPU by allocating a specified percentage of CPU resources to high priority applications |
US8538997B2 (en) | 2004-06-25 | 2013-09-17 | Apple Inc. | Methods and systems for managing data |
WO2006003681A1 (en) | 2004-07-01 | 2006-01-12 | H3G S.P.A. | Method, terminal and system for providing video, audio and text contents in mobile telephone networks |
US20060106807A1 (en) | 2004-11-18 | 2006-05-18 | Microsoft Corporation | System and method for transferring a file in advance of its use |
US7826874B2 (en) | 2004-11-24 | 2010-11-02 | Research In Motion Limited | System and method for selectively activating a communication device |
JP2006209560A (ja) | 2005-01-28 | 2006-08-10 | Kyocera Corp | 携帯端末装置とその表示方法 |
US7895594B2 (en) | 2005-03-28 | 2011-02-22 | Freescale Semiconductor, Inc. | Virtual machine extended capabilities using application contexts in a resource-constrained device |
US8483765B2 (en) * | 2005-08-26 | 2013-07-09 | Kt Corporation | User terminal for performing a plurality of applications simultaneously |
US7689838B2 (en) * | 2005-12-22 | 2010-03-30 | Intel Corporation | Method and apparatus for providing for detecting processor state transitions |
US7987160B2 (en) | 2006-01-30 | 2011-07-26 | Microsoft Corporation | Status tool to expose metadata read and write queues |
US20070197196A1 (en) | 2006-02-22 | 2007-08-23 | Michael Shenfield | Apparatus, and associated method, for facilitating delivery and processing of push content |
US7561901B2 (en) | 2006-05-15 | 2009-07-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptation of push mail filters to save UE battery power |
JP2007316721A (ja) | 2006-05-23 | 2007-12-06 | Toshiba Corp | 携帯端末 |
US20070299812A1 (en) | 2006-06-26 | 2007-12-27 | Datallegro, Inc. | Workload manager for relational database management systems |
US8112755B2 (en) | 2006-06-30 | 2012-02-07 | Microsoft Corporation | Reducing latencies in computing systems using probabilistic and/or decision-theoretic reasoning under scarce memory resources |
KR20080009415A (ko) | 2006-07-24 | 2008-01-29 | 엘지전자 주식회사 | 백그라운드 태스크 제어 방법 및 이를 수행하기 위한이동통신 단말기 |
JP4769669B2 (ja) | 2006-09-07 | 2011-09-07 | 富士通株式会社 | モバイルipに準拠する移動通信システム、ホームエージェント、モバイルノード及び方法 |
US7827358B2 (en) | 2007-01-07 | 2010-11-02 | Apple Inc. | Memory management methods and systems |
US7962911B2 (en) | 2007-02-02 | 2011-06-14 | International Business Machines Corporation | Method and apparatus for preventing undesired termination of a process in an information handling system |
US8799902B2 (en) | 2007-04-09 | 2014-08-05 | Intel Corporation | Priority based throttling for power/performance quality of service |
GB0712199D0 (en) | 2007-06-23 | 2007-08-01 | Calnex Solutions Ltd | Network tester |
US20090028127A1 (en) | 2007-07-26 | 2009-01-29 | Gordon Kent Walker | Methods and apparatus for providing computational load allocation in a network environment |
US7904673B2 (en) | 2007-11-20 | 2011-03-08 | Seagate Technology Llc | Data storage device with histogram of idle time and scheduling of background and foreground jobs |
US8239861B2 (en) | 2008-02-07 | 2012-08-07 | Arm Limited | Software-based unloading and reloading of an inactive function to reduce memory usage of a data processing task performed using a virtual machine |
US8818934B2 (en) | 2008-03-13 | 2014-08-26 | Oracle International Corporation | Transparent support for distributed transactions in a clustered disk-sharing database environment |
US20090286490A1 (en) | 2008-05-19 | 2009-11-19 | Yuan-Hung Chung | Oscillator circuit, transceiver, and method for generating oscillatory signal |
US8135392B2 (en) | 2008-06-06 | 2012-03-13 | Apple Inc. | Managing notification service connections and displaying icon badges |
US9027027B2 (en) | 2008-06-09 | 2015-05-05 | Microsoft Technology Licensing, Llc | Thread management based on device power state |
WO2010097885A1 (ja) | 2009-02-24 | 2010-09-02 | 株式会社東芝 | 携帯端末 |
US8893156B2 (en) | 2009-03-24 | 2014-11-18 | Microsoft Corporation | Monitoring of distributed applications |
US8683472B2 (en) | 2009-09-01 | 2014-03-25 | International Business Machines Corporation | Adjusting thread priority to optimize computer system performance and the utilization of computer system resources |
CN101667208B (zh) | 2009-09-25 | 2013-06-26 | 深圳创维数字技术股份有限公司 | 数字电视接收机及其节目搜索、节目切换方法 |
US9104476B2 (en) | 2010-04-07 | 2015-08-11 | Apple Inc. | Opportunistic multitasking of VOIP applications |
US9280391B2 (en) | 2010-08-23 | 2016-03-08 | AVG Netherlands B.V. | Systems and methods for improving performance of computer systems |
-
2013
- 2013-11-11 US US14/077,131 patent/US9336068B2/en active Active
-
2014
- 2014-05-15 WO PCT/US2014/038277 patent/WO2014197183A1/en active Application Filing
- 2014-06-03 TW TW103119274A patent/TWI521341B/zh active
-
2016
- 2016-01-08 US US14/991,843 patent/US9336070B1/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI825763B (zh) * | 2022-03-21 | 2023-12-11 | 瑞昱半導體股份有限公司 | 網路流量配置方法與電腦系統 |
Also Published As
Publication number | Publication date |
---|---|
US9336068B2 (en) | 2016-05-10 |
US20140366040A1 (en) | 2014-12-11 |
US9336070B1 (en) | 2016-05-10 |
US20160124492A1 (en) | 2016-05-05 |
TWI521341B (zh) | 2016-02-11 |
WO2014197183A1 (en) | 2014-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI521341B (zh) | 節流應用程式對資源之存取 | |
US9690685B2 (en) | Performance management based on resource consumption | |
US9626295B2 (en) | Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring | |
US8656196B2 (en) | Hardware automatic performance state transitions in system on processor sleep and wake events | |
KR101739216B1 (ko) | 중앙집중식 태스크 스케줄링 | |
AU2015267615B2 (en) | System on a chip with always-on processor | |
CN109906437B (zh) | 基于线程重要性的处理器核停止和频率选择 | |
JP6246931B2 (ja) | 統合されたPCIeコントローラのための改善された電力制御技術 | |
JP2009187552A (ja) | 電力制御システム及び電力制御方法 | |
US11467650B2 (en) | Selecting a low power state in an electronic device | |
JP2014056594A (ja) | イベント処理のためのターボ性能を向上させる方法および装置 | |
KR20130087583A (ko) | 컴퓨터 플랫폼의 시스템 전력 상태를 전환하는 방법, 장치 및 시스템 | |
US9965220B2 (en) | Forced idling of memory subsystems | |
EP2857929B1 (en) | Information processing apparatus, information processing system, and power control method | |
KR20180048993A (ko) | 메모리 상태 천이 타이머들을 동적으로 조정하기 위한 시스템들 및 방법들 | |
US20170038999A1 (en) | System and method for flush power aware low power mode control in a portable computing device | |
US20160202746A1 (en) | Indicating critical battery status in mobile devices | |
CN107547742B (zh) | 一种用于移动终端的唤醒锁释放方法和装置 | |
JP2018509682A (ja) | 入出力動作特性に基づくシステムオンチップアイドル電力状態制御のシステムと方法 | |
JP2002082743A (ja) | 電子機器及び電子機器制御プログラムを記憶した記憶媒体 | |
WO2024093491A1 (zh) | 一种性能调控方法及电子设备 | |
TWI772438B (zh) | 用於計算設備中的動態緩衝器大小設定的系統和方法 | |
TW201237615A (en) | Method, apparatus and system to save processor state for efficient transition between processor power states |