TWI606397B - 用以排程一背景任務之方法與器件及相關非暫時性機器可讀媒體 - Google Patents

用以排程一背景任務之方法與器件及相關非暫時性機器可讀媒體 Download PDF

Info

Publication number
TWI606397B
TWI606397B TW103104981A TW103104981A TWI606397B TW I606397 B TWI606397 B TW I606397B TW 103104981 A TW103104981 A TW 103104981A TW 103104981 A TW103104981 A TW 103104981A TW I606397 B TWI606397 B TW I606397B
Authority
TW
Taiwan
Prior art keywords
task
execution
background task
background
importance
Prior art date
Application number
TW103104981A
Other languages
English (en)
Other versions
TW201443785A (zh
Inventor
丹尼爾 安德列斯 史蒂芬
維奇頓 凱文 詹姆斯 凡
Original Assignee
蘋果公司
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 蘋果公司 filed Critical 蘋果公司
Publication of TW201443785A publication Critical patent/TW201443785A/zh
Application granted granted Critical
Publication of TWI606397B publication Critical patent/TWI606397B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Power Sources (AREA)

Description

用以排程一背景任務之方法與器件及相關非暫時性機器可讀媒體 相關申請案
申請人主張2013年2月15日申請之先前共同申請之臨時申請案第61/765,628號之優先權的權利,該案之全文以引用的方式併人。
本發明大體而言係關於處理程序管理,且更特定言之,係關於基於系統條件而排程任務。
背景任務為在背景中執行且無使用者干預之器件的處理程序。此等背景任務可用於執行不需要使用者干預之動作的處理程序。舉例而言,背景任務可用於記錄、系統監視、器件維護、軟體更新、媒體及/或應用程式下載、或不需要使用者干預之其他動作。
因為背景任務不需要使用者干預,所以器件可根據需要而執行此任務或可排程以在某一未來時間執行該背景任務。在未來執行任務之一種方式為排程此任務以使該任務在經排程之未來固定時間執行。此可用於將要執行一次之背景任務或根據固定時間排程而定期執行之循環任務。
關於背景任務執行之固定排程的問題在於器件操作條件可能不適合背景任務動作。舉例而言,定期檢查自伺服器之下載可用性之背景任務將需要與此伺服器之網路連接性,以便用於背景任務成功執行。藉由排程此任務以在固定時間執行,當器件執行背景任務時該背 景任務是否將具有適當的系統條件係未知的。另外,在不適當時間執行背景任務可使其他執行中處理程序以及使用者與器件之互動降級。
本發明描述一種排程及管理器件之一背景任務之方法及裝置。在一例示性實施例中,該器件註冊該背景任務,其中該註冊包括儲存該背景任務之執行準則。該執行準則指示用於啟動該背景任務之一準則,且該執行準則基於該器件之一組件狀態。該器件進一步監視該器件之執行狀態以監測該執行準則之一發生。若該執行準則發生,則該器件判定關於該器件之一可用空餘空間以便執行該背景任務且在該背景任務重要性大於該可用器件空餘空間的情況下啟動該背景任務,其中該背景任務重要性為該器件執行該背景任務之重要程度的一量測。
在另一實施例中,該器件判定用於該背景任務之一時間相依任務重要性,其中該時間相依任務重要性基於自該背景任務最初可用以執行起經過的一時間。該器件進一步判定該器件之一可用空餘空間以便執行該背景任務,且比較此系統成本與該時間相依任務重要性。若該時間相依任務重要性大於該可用器件空餘空間,則該器件執行該背景任務。
亦描述其他方法及裝置。
100‧‧‧器件
102‧‧‧作業系統
104‧‧‧使用者應用程式
106‧‧‧系統處理程序
108‧‧‧背景任務排程器
110‧‧‧經排程任務
112‧‧‧啟動精靈協助程式
202‧‧‧所需器件空餘空間
204‧‧‧時間
206‧‧‧任務重要性曲線
208‧‧‧寬限期
210‧‧‧最高點/初始點
400‧‧‧狀態圖
402‧‧‧建立/啟動狀態
404‧‧‧登記狀態
406‧‧‧等待狀態
408‧‧‧執行狀態
410‧‧‧延後狀態
412‧‧‧繼續狀態
414‧‧‧結束狀態
602‧‧‧接收任務模組
604‧‧‧排程任務模組
606‧‧‧監視系統模組
608‧‧‧系統準則模組
610‧‧‧判定可用器件空餘空間模組
612‧‧‧任務重要性模組
614‧‧‧執行任務模組
616‧‧‧延後任務判定模組
618‧‧‧延後任務模組
620‧‧‧重新啟動任務模組
622‧‧‧任務完成判定模組
624‧‧‧任務完成模組
626‧‧‧任務循環模組
628‧‧‧任務結束模組
702‧‧‧接收可用器件空餘空間模組
704‧‧‧計算任務重要性模組
706‧‧‧比較重要性與空餘空間模組
708‧‧‧返回結果模組
800‧‧‧資料處理系統
803‧‧‧匯流排
805‧‧‧微處理器
807‧‧‧ROM(唯讀記憶體)
809‧‧‧揮發性RAM
811‧‧‧非揮發性記憶體
813‧‧‧顯示控制器及顯示器件/輸入/輸出控制器
815‧‧‧輸入/輸出器件
900‧‧‧資料處理系統
901‧‧‧記憶體
903‧‧‧無線收發器
905‧‧‧音訊輸入/輸出子系統
909‧‧‧顯示控制器及顯示器件
911‧‧‧處理系統
913‧‧‧輸入器件
915‧‧‧選用之輸入/輸出器件
917‧‧‧通信埠
在附圖的圖式中藉由實例而非限制方式來說明本發明,在附圖中相同參考指示類似元件。
圖1為具有背景任務排程器之器件之一項實施例的方塊圖。
圖2為任務重要性曲線之一項實施例之說明。
圖3為用以排程及管理任務之處理程序之一項實施例的流程圖。
圖4為任務之不同狀態之狀態圖之一項實施例的說明。
圖5為用以比較任務重要性與可用器件空餘空間之處理程序之一 項實施例的流程圖。
圖6為用以排程及管理任務之背景任務排程器之一項實施例的方塊圖。
圖7為用以比較任務重要性與可用器件空餘空間之任務重要性模組之一項實施例的方塊圖。
圖8說明可結合本文描述之實施例使用之典型電腦系統的一項實例。
圖9展示可供本發明之一項實施例使用之資料處理系統的實例。
描述排程及管理器件之背景任務之方法及裝置。在以下描述中,陳述眾多特定細節以提供對本發明之實施例之透徹解釋。然而,熟習此項技術者將顯而易見,本發明之實施例可在沒有此等特定細節的情況下加以實踐。在其他例子中,尚未詳細展示熟知之組件、結構及技術以便不必要地使此描述之理解模糊。
說明書中對「一項實施例」或「一實施例」之參考意謂:結合實施例描述之特定特徵、結構或特性可包括在本發明之至少一實施中。在本說明書中多處之短語「在一項實施例中」的出現未必全部指同一實施例。
在以下描述及申請專利範圍中,可使用術語「耦接」及「連接」連同其派生詞。應理解,此等術語並不意欲為彼此同義的。「耦接」用以指示兩個或兩個以上元件可或可不彼此直接實體或電接觸、彼此合作或互動、「連接」用以指示在彼此哦耦接之兩個或兩個以上元件之間建立通信。
在以下圖式中描繪之處理程序可藉由處理邏輯來執行,處理邏輯可包含硬體(例如,電路、專用邏輯等)、軟體(諸如,在通用電腦系統或專用機器上執行)、或兩者之組合。儘管下文按照一些順序操作 來描述處理程序,但應瞭解,可以不同次序來執行所描述操作中之一些。此外,可平行而非順序地來執行一些操作。
術語「伺服器」、「用戶端」及「器件」意欲大體指資料處理系統而非特定指伺服器、用戶端及/或器件之特定外觀尺寸。
描述排程及管理器件之背景任務之方法及裝置。在一項實施例中,該器件註冊將在稍後時間執行之背景任務,其中此任務包括用以判定何時為該器件執行任務之適當時間之一或多個準則。在一項實施例中,準則中之每一者可係基於組件狀態,諸如器件電源狀態、中央處理單元狀態、顯示器狀態、儲存系統狀態或網路連接性。舉例而言且在一項實施例中,準則可為電源狀態(例如,器件是在電池上執行或是插在交流(A/C)電源中)、系統負載(例如,中央處理單元(CPU)為閒置、忙碌或處於某負載比下)、及/或其他進階準則(例如,網路連接性(一般而言,或連接至特定伺服器或服務),器件之螢幕是否為睡眠、儲存活動(例如,使硬碟機(HDD)自旋)、要求一特定電源狀態(例如,僅A/C、電池在某臨限值之處、之上、之下等))。
在一項實施例中,若在器件操作期間之一時間滿足此等準則,則器件判定應執行背景任務。器件判定一可用器件空餘空間,且比較此可用器件空餘空間與任務重要性。在一項實施例中,可用器件空餘空間為可用以執行任務之器件資源的量。若可用器件空餘空間大於或等於任務重要性,則器件執行任務。相反,若可用器件空餘空間小於任務重要性,則器件等待稍後時間來執行任務。在此稍後時間,器件重新評估器件條件以判定是否仍滿足任務準則。若仍滿足任務準則,則器件執行可用器件空餘空間與任務重要性之比較。在一項實施例中,任務重要性取決於最初滿足任務準則時經過的時間而改變。當最初滿足任務準則時,任務重要性為低的。隨著時間經過,任務重要性成長直至任務之寬限期到期為止。在此任務之寬限期到期時,增加任 務重要性而使得該任務較可能被執行。在一項實施例中,器件藉由發送一通知至任務就緒執行的對應於任務之應用程式來執行任務。在一項實施例中,任務為較大應用程式之一部分(例如,對於電子郵件應用程式,任務可為檢查新的電子郵件)。
一旦器件執行該任務,該器件監視任務準則以判定在任務之執行期間是否滿足任務準則。若在任務之執行期間未滿足任務準則,則器件判定是否繼續任務之執行。若將使任務延後,則器件暫時中止任務。在一項實施例中,器件藉由對應於對應於任務之應用程式暫時中止任務之執行而暫時中止該任務。在稍後時間,若隨後重新滿足任務準則,則器件可重新啟動任務之執行。隨著任務完成,器件判定該任務是否為循環任務,在循環任務之狀況下,器件排程此任務之另一例項。
圖1為具有背景任務排程器108之器件100之一項實施例的方塊圖。在一項實施例中,器件100可為個人電腦、膝上型電腦、伺服器、行動器件(例如,智慧型電話、膝上型電腦、個人數位助理、音樂播放器件、遊戲器件等)、網路元件(例如,路由器、交換器、閘道器等)、及/或能夠執行多個處理程序且具有睡眠模式之任何器件。在一項實施例中,器件可為實體或虛擬器件。在圖1中,器件100包括作業系統102,其為用以管理器件之硬體資源的軟體集合且為執行器件之程式(諸如,應用程式)之其他者提供公用服務。在一項實施例中,當器件100之處理器執行每一執行中處理程序時,作業系統102藉由時間排程而管理不同之執行中處理程序。在一項實施例中,處理程序為正經執行之電腦程式之例項。在此實施例中,處理程序可為由於使用者輸入之結果而執行之使用者應用程式104。使用者處理程序之實例為網路衝浪、文書處理、電子郵件、社交媒體、媒體處理等。處理程序之另一實例為系統處理程序106,其提供一或多個服務至使用者應 用程式、其他處理程序等。在一項實施例中,系統處理程序為執行系統維護或其他類型之單一或循環任務的精靈協助程式(daemon)。
在一項實施例中,作業系統102包括一啟動精靈協助程式112以啟動處理程序。在此實施例中,啟動精靈協助程式包括背景任務排程器108,其排程且管理一背景任務。另外,作業系統102包括一或多個經排程任務110。在一項實施例中,背景任務為在背景中執行且無使用者干預之任務。背景任務可為單一目的任務(例如,遠端下載、在使用者動作或遠端觸發之後起始的可延後長期執行活動(例如,最佳化磁盤資料庫之儲存(在使用者觸發之資料庫更新之後起始)、例如統一資源定位符(URL)黑名單及/或白名單的更新之伺服器起始之(推送式)下載、相比系統預設附帶而較高品質之媒體資產(影像/電影/語音)的下載(在使用者第一次使用低品質資產時觸發)等)),或可為定期執行動作之循環任務(例如,備份、系統維護、檢查軟體更新、郵件收取、行事曆重新整理、系統及/或如第三方應用程式更新之下載(除了在伺服器上檢查此類更新之存在之外)、使用者文件及/或設定與伺服器之同步、關於器件及/或器件上之應用程式之診斷資訊至伺服器的上載,等)。在一項實施例中,背景任務排程器108排程一任務以在系統條件適合用於經排程任務執行時進行執行。在一項實施例中,背景任務排程器108接收用於任務待排程以自對應於此任務之應用程式執行的訊息。在一項實施例中,任務為較大應用程式之一部分(例如,對於電子郵件應用程式,任務可為檢查新的電子郵件)。舉例而言且在一項實施例中,軟體更新精靈協助程式藉由背景任務排程器108而註冊一檢查更新任務,其中檢查更新任務為檢查以查看是否存在可用以下載且安裝於器件100上之更新的任務。作為另一實例且在另一實施例中,備份服務應用程式藉由背景任務排程器108來註冊一備份維護任務。
在一項實施例中,藉由基於系統條件來執行任務,背景任務排程器108可改良電池壽命、器件回應性,消除歸因於未滿足需求而立即退出的啟動器件之成本,及藉由背景任務排程器108而集中化用於器件100喚醒/小睡(nap)功率管理任務的邏輯。在此實施例中,背景任務排程器108註冊基於來自另一處理程序之請求的任務,諸如使用者處理程序104或系統處理程序106。在一項實施例中,任務可為重複或非重複的。任務可藉由應用程式動態地註冊,或基於系統處理程序106之組態而靜態註冊。在一項實施例中,每一任務具有描述任務執行準則(例如,系統在決定是否執行任務時應顧及之各種考慮因素)、當前執行狀態(是否正在執行)或在任務之狀態改變時調用之處理常式的辭典。
在一項實施例中,應用程式藉由用以與背景任務排程器108通信之應用程式外掛程式來註冊一任務。另外,一旦滿足任務準則且為用於執行任務之適當時間,背景任務排程器108即發送通知至應用程式:可使用處理程序間通信訊息(例如,處理程序間通信(IPC)訊息、匹配訊息、信號、寫入至檔案描述符、建立「旗號」檔案等)來執行任務。在一項實施例中,背景任務排程器108回應於所註冊任務而發送一通知以喚醒睡眠應用程式。此實施例允許處於睡眠模式中之應用程式回應於所註冊任務而自動喚醒。此外,此實施例亦允許系統處理程序106(例如,精靈協助程式)回應於所註冊任務而根據需要經啟動。在另一實施例中,精靈協助程式參與閒置退出且在任務等待執行時成功地閒置退出。在此實施例中,精靈協助程式將回應於任務變為可執行而自動重新啟動。
在一項實施例中,一旦任務經註冊,背景任務排程器108即基於許多可能準則而執行此任務。在一項實施例中,不同準則可為:可重複性、延遲、寬限期及優先權。在一項實施例中,可重複性為任務在 完成時是否將自動重新排程。延遲為在啟動任務之前等待之時間段。在一項實施例中,任務為該任務之執行準則之一。在此實施例中,若未滿足延遲,則將不會檢查其他執行準則之滿足。寬限期為在其後任務變為到期且系統試圖更積極排程任務之時間段。另外,背景任務排程器108可使用不同優先權準則來執行任務。在一項實施例中,不同優先權可係用於維護任務(其用於使用者不可見任務及在任務到期之前避免在電池上執行)及實用性任務(其用於使用可見任務且可在電池上執行)。在一項實施例中,背景任務可在降低功率消耗模式中執行。
藉由使用不同之準則及優先權,背景任務排程器108評估每一任務之準則以判定任務是否適合執行。在一項實施例中,背景任務排程器108將在處於A/C電源而非電池上時易於執行任務,且在小睡期間而非喚醒時易於執行任務,且在系統處於閒置而非忙碌時易於執行任務。在一項實施例中,小睡為允許器件100默默地執行任務之睡眠模式,諸如媒體同步及搜尋索引。在此實施例中,在電池電源上時執行低能量任務,而在A/C電源情況下執行較高能量任務。小睡可應用至器件或應用至一或多個個別應用程式。
在一項實施例中,不同類型之任務在任務可用以執行時可具有不同類型之準則。舉例而言且在一項實施例中,維護適合任務可在正常時段期間中之A/C小睡及A/C閒置期間執行,且可在任務到期情況下之A/C小睡、A/C閒置、A/C忙碌、電池小睡、電池閒置及電池忙碌期間執行。在此實施例中,忙碌及閒置指系統負載,電池及A/C指器件100使用器件100電池用於電源或是插入於A/C電源中且使用其。小睡指器件100處於小睡睡眠模式中。在另一實例中及另一實施例中,實用性任務可在正常時段期間中之A/C小睡、A/C閒置及電池閒置期間執行,且可在任務到期情況下之A/C小睡、A/C閒置、A/C忙碌、電 池小睡、電池閒置及電池忙碌期間執行。
在一項實施例中,除了上述準則之外,背景任務排程器108可使用進階準則來判定何時執行所註冊任務。在一項實施例中,此等進階準則可由其自身使用,或可在除了上述一般睡眠模式、電源及系統負載準則之外的情況下使用。在一項實施例中,進階準則為:網路準則、僅A/C、螢幕睡眠、電池電量、硬碟機(HDD)自旋、小睡適用性、漫遊狀態下網路連接(無線(Wi-Fi或蜂巢式)、有線等)之類型、可用之蜂巢式語音呼叫等。在一項實施例中,網路準則用於可需要對於指定主機之連接性或一般網路連接性以便適合的任務。將在起始此類任務之前來嘗試所請求連接。可自任務(例如,通信處理常式可儲存於任務辭典中)擷取所建立連接。僅A/C準則可用於可要求A/C電源(即使在到期時)的任務。螢幕睡眠準則可用於可要求螢幕睡眠之任務。電池電量準則用於可要求最小電池電量(%)之任務。舉例而言且在一項實施例中,下載任務可要求高電池百分比電量(例如,>90%),及狀態檢查可要求較小電池百分比電量(例如,>25%)。在一項實施例中,HDD自旋準則可用於要求HDD自旋之任務。
在一項實施例中,一旦滿足用於所註冊任務之準則,背景任務排程器108即比較所註冊任務之重要性與器件之可用空餘空間。在一項實施例中,可用器件空餘空間為可用以執行任務之器件資源的量。在此實施例中,基於量測哪一類型之負載或器件正經歷之使用的一或多個不同因子來判定可用器件空餘空間。舉例而言且在一項實施例中,可用器件空餘空間可基於器件溫度、CPU%利用率、器件在電池上或是在AC上執行、電池容量、記憶體利用率、使用者活動(例如,使用者已主動與器件互動之最近情況)、量測當前器件容量或負載之另一類型之因子、及/或其組合。在一項實施例中,器件空餘空間係基於一或多個因子之函數。舉例而言且在一項實施例中,若該等因子 之一者在該因子之臨限值以上,則可用器件空餘空間為小的。在另一實例中,可使用該等因子中之一或多者的值之多項式來判定可用器件空餘空間(例如,因子之平方之總和的平方根,其中每一因子經正規化而介於0與1之間)。
在一項實施例中,每一註冊任務具有以下狀態:登記(CHECK-IN)、等待(WAIT)、執行(RUN)、延後(DEFER)、繼續(CONTINUE)、結束(DONE)。在一項實施例中,登記狀態為由精靈協助程式用以向背景任務排程器108登記的選用狀態。在一項實施例中,其準則尚未經滿足之任務處於等待狀態。此狀態用於在任務執行之前正等待滿足系統準則之任務。在一項實施例中,一旦滿足任務之準則,背景任務排程器108即將仍未轉變為執行狀態且調用用於該任務之處理常式。在執行過程期間,應用程式可測試該任務之準確是否仍為滿足的。應用程式接著可視情況自處理常式提前返回,且藉由將任務置於延後狀態中而將工作延後至更適當時間。舉例而言且在一項實施例中,背景任務排程器108觀測實際執行該任務對系統負載之影響,且在未來決策中顧及該資訊以決定是否再次執行任務或甚至是否停止當前執行之任務且使其延後。舉例而言,對於背包中之膝上型電腦,在小睡中執行任務之熱影響可能過高而使得其可能需要過早停止,但若同一睡眠膝上型電腦處於桌上,則小睡中之相同任務可為正好的。
當再次滿足用於任務之準則時,背景任務排程器108可重新調用處理常式。或者,應用程式可藉由將狀態設定為繼續狀態而請求與處理常式非同步地繼續工作,在此狀況下,背景任務排程器108必須在稍後時間將狀態更新為延後或結束。最後,應用程式可指示任務結束。一旦非重複任務結束即將該任務自背景任務排程器108取消註冊,且將一重複任務向背景任務排程器108重新註冊而使得此任務可在經排程時間重複。
如上文所描述,一旦用於任務之任務準則已滿足,器件100即使有任務重要性曲線來判定是否執行任務。圖2為用於一個任務之任務重要性曲線206之一項實施例的說明。在一項實施例中,任務重要性曲線代表一個任務,且其他任務可具有不同形狀之任務(例如,較短或較長寬限期、在初始排程點與寬限期到期之點之間具有較大或較小斜率的非線性曲線或線性曲線等)。在一項實施例中,任務重要性曲線206為用於向背景任務排程器108註冊之一個任務的所需器件空餘空間202對時間204而繪製的曲線。在一項實施例中,若器件空餘空間低於或等於一給定時間點之任務重要性曲線206,則背景任務排程器108延後執行該任務。若所需器件空餘空間處於或高於一特定時間點之任務重要性曲線206,則背景任務排程器108執行該任務。在一項實施例中,任務重要性曲線206隨著時間204之時間增加而在所需器件空餘空間202中降低。因此,任務重要性由於任務重要性之值隨著時間(包括在寬限期到期之前的時間)而改變而為時間相依的。在此實施例中,任務重要性曲線206在任務可最初經排程用於執行時處於最高點210。藉由處於最高點,此意謂任務可在可用器件空餘空間高的情況下執行。在一項實施例中,由於時間自初始點210起增加,所以任務重要性隨著時間增加而在任務重要性曲線206上降低。在此實施例中,由於時間自可執行任務之初始點起增加,所以背景任務排程器108可允許在較小可用器件空餘空間的情況下執行任務。成本臨限值之此逐漸降低在任務之寬限期208結束時結束。在一項實施例中,每一任務具有一寬限期。在此寬限期期間,可在條件更適於執行任務的情況下執行該任務。在一項實施例中,一旦寬限期到期,即可發生較低所需器件空餘空間用於執行任務。此允許在更多種情形下執行任務。舉例而言且在一項實施例中,將在高系統利用率之時間期間執行之任務將被延後直至該任務之重要性已增加至可執行任務之點的時間為止。在一 項實施例中,在寬限期結束後,任務保持處於「緊急狀態」直至可執行任務之此類時間為止。在此實施例中,任務可由於器件非常忙碌且不具有用以執行任務之空餘空間而未能執行。在一項實施例中,在寬限期後,任務之所需器件空餘空間可為非0或0之常數值。若為非0,則此意謂可存在未執行任務之條件(例如,若器件之溫度高,則未執行任務)。在另一實施例中,任務重要性曲線206之區段為非常數(例如,漸進地趨向0)。
如上文所描述,器件100之背景任務排程器108排程任務,判定何時執行任務,及管理任務之執行。圖3為用以排程及管理任務之處理程序300之一項實施例的流程圖。在一項實施例中,處理程序300由背景任務排程器(諸如,如上文所描述之圖1之背景任務排程器108)執行以排程及管理任務。在圖3中,在區塊302,處理程序300藉由接收待排程之任務而開始。在一項實施例中,處理程序300自使用者處理程序、自系統處理程序、經由靜態組態檔案(例如,按需啟動任務)等接收待排程之任務。舉例而言且在一項實施例中,使用者處理程序可為使用任務以判定是否存在可用媒體以下載用於使用者的媒體管理應用程式、可使用任務以收取郵件之郵件應用程式、用以重新整理行事曆之行事曆應用程式等。作為另一實例,系統處理程序可為使用任務以更新搜尋索引之搜尋系統、使用任務以執行備份維護工作之備份應用程式、使用任務以更新檔案快取記憶體之檔案檢視應用程式、可使用任務以檢查可用更新程式(updater)之軟體更新程式、可使用任務以判定是否存在應用程式下載及/或更新之應用程式儲存應用程式等。在區塊304,處理程式300排程該任務。在一項實施例中,處理程式300使用關於何時可執行任務之一或多個準則來排程任務。在一項實施例中,將此等執行準則儲存於辭典中用於經排程任務。舉例而言且在一項實施例中,當執行任務之系統具有A/C電源且系統為閒置或處 於小睡中時,維護類型任務可經排程以可能在此任務之寬限期結束之前執行。在此實施例中,在寬限期結束之後,當系統處於A/C電源或電池電源上時,可執行維護類型任務。在此實施例中,當滿足A/C小睡、A/C閒置、A/C忙碌、電池小睡、電池閒置及電池忙碌之準則時,在寬限期到期之後維護類型任務。在一項實施例中,寬限期為在其後任務變為到期且系統試圖更積極排程任務之時間段。
在區塊306,處理程序300監視系統以判定是否滿足用於經排程任務之準則。在一項實施例中,處理程序300監視系統之電源狀態(例如,在A/C電源或電池上)及/或系統負載(例如,閒置、忙碌或處於小睡中)。另外,處理程序300可監視進階準則條件,諸如網路準則、僅A/C、螢幕睡眠、電池電量、硬碟機(HDD)自旋等。在區塊308,處理程序300判定是否滿足任務準則。在一項實施例中,處理程序300藉由以下動作來判定是否滿足任務之執行準則:設定當前所註冊任務中之每一者之作為執行準則基礎的整體條件集合之系統改變通知;及當系統向處理程序300通知用於所監視準則之一的基礎系統條件已改變時評估每一任務之執行準則集合。在一項實施例中,其準則尚未經滿足之任務處於等待狀態。此狀態用於在任務執行之前正等待滿足系統準則之任務。
若任務準則尚未經滿足,則執行進行至上文之區塊306。若任務準則已滿足,則在區塊310,處理程序300判定可用器件空餘空間。在一項實施例中,處理程序300藉由評估器件之一或多個因子(如上文參看圖1所描述)而判定可用器件空餘空間。在區塊312,處理程序300判定任務之任務重要性是否小於(或等於)任務之系統成本。在一項實施例中,處理程序300基於任務重要性曲線及自任務之準則首次滿足起經過的時間而計算任務重要性。下文在圖5中進一步描述判定任務重要性是否小於(或等於)可用器件空餘空間。若任務重要性不小於可用 器件空餘空間,則執行進行至上文之區塊306。
若任務重要性小於(或等於)可用器件空餘空間,則在區塊314處理程序300執行任務。在一項實施例中,處理程序300向對應於任務之應用程式通知任務準備好執行。在一項實施例中,一旦滿足任務之準則,處理程序300即將任務轉變為執行狀態且調用用於該任務之處理常式。舉例而言且在一項實施例中,若滿足用於媒體管理應用程式之媒體下載檢查任務之準則且此任務準備好執行,則處理程序300向應用程式發送任務準備好執行的通知。在此實施例中,處理程序300未直接調用處理常式或「執行該任務」。處理程序300向應用程式或精靈協助程式發送註冊一任務以觸發任務之處理常式執行的訊息。對於可按需啟動或閒置退出之精靈協助程式,此訊息亦將首先啟動所討論之精靈協助程式。
在區塊316,用於任務之應用程式或精靈協助程式判定是否應延後任務。在一項實施例中,雖然任務經執行,但執行任務之應用程式可測試是否仍滿足用於任務之準則。應用程式接著可自處理常式提前返回,且將工作延後(延後)至更適當時間。在區塊326,若任務將延後,則任務之應用程式或精靈協助程式將任務之執行延後且將任務置於延後狀態。在一項實施例中,在此狀態中,將任務暫時中止於其當前狀態。在區塊328,處理程序300判定是否應重新啟動任務執行。若應重新啟動任務執行,則執行進行至上文之區塊314。在一項實施例中,處理程序300可向用於此任務之應用程式或精靈協助程式通知可在再次滿足用於任務之準則時重新調用該處理常式。或者,應用程式可請求與處理常式非同步地繼續(繼續)工作,在此狀況下,用於任務之應用程式或精靈協助程式在稍後時間將任務之狀態更新為延後或結束。若不應重新啟動任務執行,則執行進行至上文之區塊326。
若在上文之區塊316未將任務執行延後,則在區塊318任務之應 用程式或精靈協助程式判定任務是否已完成。在區塊320,處理程序300將任務標記為完成。在一項實施例中,若任務完成則處理程序300將任務置於結束狀態。在區塊322,處理程序300判定任務是否為循環任務。在一項實施例中,循環任務為定期執行以執行重複之排程伺服器的任務。舉例而言且在一項實施例中,循環任務可為定期檢查自伺服器之下載的任務(例如,郵件收取、行事曆重新整理、媒體下載服務、應用程式下載等)。在此實施例中,一旦下載任務完成,則處理程序300將排程此任務之另一例項用於未來執行。若任務為循環任務,則執行進行至區塊304,其中處理程序300排程任務中之下一例項。若任務並非循環任務,則在區塊324,處理程序300將任務之執行標記為結束。
圖4為任務之不同狀態之狀態圖400之一項實施例的說明。在一項實施例中,處置該任務之背景任務排程器108及/或應用程式根據此狀態圖400來更新任務之狀態。狀態圖400說明所支援之狀態轉變。在一項實施例中,實線指示藉由系統在自處理常式返回後進行之狀態前進。藉由應用程式進行之狀態的手動前進為選用的,且應用至延後、繼續及結束狀態。粗體虛線應用至重複任務。細線指示藉由應用「...應用至延後、繼續及登記狀態」進行之選用狀態前進。
在一項實施例中,每一註冊任務藉由由應用程式或精靈協助程式或由排程器基於靜態組態檔案建立而啟動。在一項實施例中,每一註冊任務具有以下狀態:建立/啟動402、登記404、等待406、執行408、延後410、繼續412及結束414。在一項實施例中,登記狀態404為由精靈協助程式用以向背景任務排程器108登記的選用狀態。在一項實施例中,登記狀態由按需啟動精靈協助程式使用以檢索及潛在地修改在靜態組態檔案中指定之適用性準則。該狀態在用於登記狀態之處理常式返回後自動前進至等待。在另一實施例中,背景任務排程器 藉由自CREATE自動前進至等待而將任務自建立/啟動(CREATE/START)狀態402轉變,且保持在該狀態直至活動適合執行為止(此時狀態前進至執行)。
在一項實施例中,其準則尚未經滿足之任務處於等待狀態406。此狀態用於在任務執行之前正等待滿足系統準則之任務。舉例而言且在一項實施例中,要求螢幕睡眠之維護任務將直至將要執行任務之器件之螢幕睡眠才能夠執行。在一項實施例中,一旦滿足任務之準則,背景任務排程器即將仍未轉變為執行狀態408且調用用於該任務之處理常式。在一項實施例中,應用程式之處理常式為將要執行以起始任務且執行任務操作之程式碼區塊。
在一項實施例中,在任務處於執行狀態408之過程期間,應用程式可測試是否仍滿足用於任務之準則。舉例而言且在一項實施例中,若任務取決於與特定服務之網路連接且此服務當前不可用,則對應於此任務之應用程式將任務狀態轉變為延後410。在一項實施例中,任務(例如,應用程式)可查詢排程器以測試是否應延後執行。若回應為是,則應用程式可藉由將任務狀態設定為延後而應答該延後(否則,任務保持處於執行狀態,或在處理常式在未改變狀態的情況下返回時移動至結束狀態)。在一項實施例中,若當前對於執行任務未滿足準則,則應用程式接著可自處理常式返回且將工作延後至滿足準則任務的時間。在一項實施例中,當再次滿足用於任務之準則時,背景任務排程器108將重新調用處理常式。或者,應用程式可請求與處理常式非同步地繼續(繼續)412工作,在此狀況下,背景任務排程器在稍後時間將狀態更新為延後410或結束414。在一項實施例中,在任務之「執行」需要在處理常式返回執行狀態之後繼續的情況下使用繼續狀態,其中自執行至結束之自動狀態轉變未發生。若將狀態設定為繼續,則將任務視為「執行」直至應用程式將狀態手動設定為結束或延 後為止。
在一項實施例中,應用程式可指示藉由將任務置於結束狀態414中而結束任務。在此實施例中,一旦非重複任務結束即將該任務自背景任務排程器取消註冊,且將重複任務向背景任務排程器重新註冊而使得此任務可在經排程時間重複。在一項實施例中,轉變至結束亦在處理常式在未改變狀態的情況下返回時(在藉由轉變至執行狀態而經呼叫之後)自動發生。
如上文所描述,在滿足用於任務之執行準則的情況下,背景任務排程器可不自動執行任務。取而代之,背景任務排程器比較任務重要性與可用器件空餘空間以判定是否執行任務。圖5為用以比較任務重要性與可用器件空餘空間之處理程序500之一項實施例的流程圖。在一項實施例中,處理程序500由上文圖3中之區塊312處之處理程序300執行以比較任務重要性與可用器件空餘空間。在圖5中,在區塊502,處理程序500藉由接收可用器件空餘空間而開始。在一項實施例中,藉由評估器件之一或多個因子(如上文參看圖1所描述)而判定可用器件空餘空間。在區塊504,處理程序500判定任務重要性。在一項實施例中,處理程序500藉由使用任務重要性曲線(諸如,上文圖2中描述之任務重要性曲線206)來判定任務重要性。在此實施例中,處理程序500判定自最初滿足任務之準則起經過的時間。使用此時間,處理程序500可使用該經過之時間與如上文參看圖2描述之任務重要性曲線來判定任務重要性。舉例而言且在一項實施例中,任務重要性在滿足任務準則之初始點相對較低。此任務重要性增長直至此任務之寬限期到期為止。此時,任務重要性由於背景任務排程器將更積極嘗試執行任務而跳上。在另一實施例中,處理程序500基於自最初滿足任務準則起經過的時間使用與任務重要性相關之等式來計算任務重要性。
在區塊506,處理程序500判定任務之任務重要性是否小於(或等 於)可用器件空餘空間。若任務重要性小於(或等於)可用器件空餘空間,則在區塊508系統可執行任務且返回是。若否,則系統延後任務之執行直至稍後時間且在區塊510返回否。
圖6為用以排程及管理任務之背景任務排程器108之一項實施例的方塊圖。在一項實施例中,背景任務排程器108包括:接收任務模組602、排程任務模組604、監視系統模組606、系統準則模組608、判定可用器件空餘空間模組610、任務重要性模組612、執行任務模組614、延後任務判定模組616、延後任務模組618、重新啟動任務模組620、任務完成判定模組622、任務完成模組624、任務循環模組626及任務結束模組628。在一項實施例中,接收任務模組602接收任務,如圖3中(上文之區塊302)所描述。排程任務模組604排程任務,如圖3中(上文之區塊304)所描述。監視系統模組606監視系統之任務準則,如圖3中(上文之區塊306)所描述。系統準則模組608判定是否滿足任務之準則,如圖3中(上文之區塊308)所描述。判定可用器件空餘空間模組610判定可用器件空餘空間,如圖3中(上文之區塊310)所描述。任務重要性模組612比較任務重要性與系統成本,如圖3中(上文之區塊312)所描述。執行任務模組614執行任務,如圖3中(上文之區塊314)所描述。延後任務判定模組616判定是否延後任務,如圖3中(上文之區塊316)所描述。延後任務模組618延後任務之執行,如圖3中(上文之區塊326)所描述。重新啟動任務模組620重新啟動任務之執行,如圖3中(上文之區塊328)所描述。任務完成判定模組622判定任務執行是否完成,如圖3中(上文之區塊318)所描述。任務完成模組624將任務標記為完成,如圖3中(上文之區塊320)所描述。任務循環模組626判定任務是否循環,如圖3中(上文之區塊322)所描述。任務結束模組628將任務之執行標記為結束,如圖3中(上文之區塊324)所描述。
圖7為用以比較任務重要性與可用器件空餘空間之任務重要性模 組612之一項實施例的方塊圖。在一項實施例中,任務重要性模組612包括接收可用器件空餘空間模組702、計算任務重要性模組704、比較重要性與空餘空間模組706及返回結果模組708。在一項實施例中,接收可用器件空餘空間模組702接收可用器件空餘空間,如圖5中(區塊502)所描述。計算任務重要性模組704判定任務重要性,如圖5中(區塊504)所描述。比較重要性與空餘空間模組706判定任務重要性是否大於任務之系統成本,如圖5中(區塊506)所描述。返回結果模組708返回比較之結果,如上文之圖5之區塊508及510中所描述。
圖8展示可供本發明之一項實施例使用之資料處理系統800的一項實例。舉例而言,系統800可經實施而包括如圖1中所展示之器件100。請注意,雖然圖8說明電腦系統之各種組件,但其並不意欲表示任何特定架構或使組件互連之方式,此係因為此類細節並不與本發明有密切關係。亦將瞭解,具有較少組件或可能較多組件之網路電腦及其他資料處理系統或其他消費型電子器件亦可供本發明使用。
如圖8中所展示,呈資料處理系統形式的電腦系統800包括耦接至微處理器805及ROM(唯讀記憶體)807以及揮發性RAM 809及非揮發性記憶體811之匯流排803。微處理器805可自記憶體807、809、811擷取指令,且執行該等指令以執行上述操作。匯流排803將此等各種組件互連在一起,且亦將此等組件805、807、809及811互連至顯示控制器及顯示器件813且互連至諸如輸入/輸出(I/O)器件之周邊器件,其可為滑鼠、鍵盤、數據機、網路介面、印表機及此項技術中熟知之其他器件。通常,輸入/輸出器件815經由輸入/輸出控制器813耦接至系統。揮發性RAM(隨機存取記憶體)809通常經實施為動態RAM(DRAM),其持續地需要電力以便重新整理或維持記憶體中之資料。
大容量儲存器811通常為磁性硬碟機或磁性光碟機或光碟機或DVD RAM或快閃記憶體,或其他類型之記憶體系統,其即使在電力 自系統移除的情況下亦可維持資料(例如,大量資料)。通常,大容量儲存器811亦將為隨機存取記憶體,但此並不需要。雖然圖8展示大容量儲存器811為直接耦接至資料處理系統中之剩餘組件之本端器件,但將瞭解,本發明可利用在系統遠端之非揮發性記憶體,諸如經由網路介面(諸如,數據機、乙太網路介面或無線網路)耦接至資料處理系統之網路儲存器件。匯流排803可包括經由此項技術中熟知之各種橋接器、控制器及/或配接器而彼此連接之一或多個匯流排。
圖9展示可供本發明之一項實施例使用之另一資料處理系統900的實例。舉例而言,系統900可經實施而包括如圖1中所展示之器件100。圖9中所展示之資料處理系統900包括處理系統911,其可為一或多個微處理器或其可為系統單晶片積體電路,且該系統亦包括記憶體901用於儲存由處理系統執行之資料及程式。系統900亦包括音訊輸入/輸出子系統905,其可包括用於(例如)經由揚聲器及麥克風播放音樂或提供電話功能性之麥克風及揚聲器。
顯示控制器及顯示器件909提供用於使用者之視覺使用者介面;此數位介面可包括圖形使用者介面,其類似於在執行OS X作業系統軟體時在Macintosh電腦上展示之介面或在執行iOS作業系統時在Apple iPhone上展示之介面,等。系統900亦包括一或多個無線收發器903以與另一資料處理系統通信,諸如圖9之系統900。無線收發器可為WLAN收發器、紅外線收發器、藍芽收發器及/或無線蜂巢式電話收發器。將瞭解,在某些實施例中,未展示之額外組件亦可為系統900之部分,且在某些實施例中,少於圖9中所展示之組件亦可以用於資料處理系統中。系統900進一步包括一或多個通信埠917以與另一資料處理系統通信,諸如圖8之系統800。通信埠可為USB埠、火線埠、藍芽介面等。
資料處理系統900亦包括一或多個輸入器件913,其經提供以允 許使用者提供輸入至系統。此等輸入器件可為小鍵盤或鍵盤或觸控面板或多點觸控面板。資料處理系統900亦包括可為銜接器之連接器的選用之輸入/輸出器件915。將瞭解,一或多個匯流排(未圖示)可用以使此項技術中熟知之各種組件互連。圖9中所展示之資料處理系統可為手持型電腦或個人數位助理(PDA)、或具有類似PDA功能性之蜂巢式電話、或包括蜂巢式電話之手持型電腦、或媒體播放器(諸如,iPod),或組合此等器件之態樣或功能之器件,諸如結合PDA之媒體播放器及一個器件或嵌入式器件或其他消費型電子器件中之蜂巢式電話。在其他實施例中,資料處理系統900可為網路電腦或另一器件內之嵌入式處理器件、或其他類型之資料處理系統,其具有比圖9中所展示少的組件或可能多的組件。
本發明之至少某些實施例可為數位媒體播放器之部分,諸如攜帶型音樂及/或視訊媒體播放器,其可包括用以呈現媒體之媒體處理系統、用以儲存媒體之儲存器件,且可進一步包括與天線系統及媒體處理系統耦接之射頻(RF)收發器(例如,用於蜂巢式電話之RF收發器)。在某些實施例中,可經由RF收發器而將儲存於遠端儲存器件上之媒體傳輸至媒體播放器。媒體可為(例如)音樂或其他音訊、靜態圖像或運動圖像中之一或多者。
攜帶型媒體播放器可包括媒體選擇器件,諸如來自CA、Cupertino之Apple公司的iPod®或iPod Nano®媒體播放器上之點擊式轉盤輸入器件、觸控螢幕輸入器件、按鈕器件、可移動指標輸入器件或其他輸入器件。媒體選擇器件可用於選擇儲存於儲存器件及/或遠端儲存器件上之媒體。在至少某些實施例中,攜帶型媒體播放器包括顯示器件,其耦接至媒體處理系統以顯示經由輸入器件而經選擇且經由揚聲器或耳機或在顯示器件上、或在顯示器件與揚聲器或耳機兩者上而經呈現的媒體之標題或其他指示符。攜帶型媒體播放器之實例描述 於美國公開專利第7,345,671號及美國公開專利第2004/0224638號中,兩者均以引用的方式併入本文中。
上文所描述之部分可藉由諸如專用邏輯電路之邏輯電路或藉由微處理器或執行程式碼指令之其他形式處理核心來實施。因此上文論述所教示之處理程序可藉由諸如機器可執行指令之程式碼來執行,該等機器可執行指令致使執行此等指令之機器執行某些功能。在此上下文中,「機器」可為將中間形式(或「抽象」)指令轉換為處理器特定指令(例如,抽象執行環境,諸如「虛擬機」(例如,Java虛擬機)、解譯器、共同語言執行環境、高階語言虛擬機等)的機器,及/或,安置於經設計以執行指令之半導體晶片(例如,藉由電晶體實施之「邏輯電路」)上之電子電路,諸如通用處理器及/或專用處理器。上文論述所教示之處理程序亦可藉由經設計以在不執行程式碼的情況下執行處理程序(或其部分)之電子電路來執行(替代機器或與機器組合)。
本發明亦係關於一種用於執行本文描述之操作的裝置。該裝置可經特定結構化以用於所需目的,或其可包含藉由儲存於電腦中之電腦程式而選擇性啟動或重組態之通用電腦。此類電腦程式可儲存於電腦可讀儲存媒體中,諸如(但不限於)任何類型之磁碟(包括軟性磁碟、光碟、CD-ROM及磁光碟)、唯讀記憶體(ROM)、RAM、EPROM、EEPROM、磁性或光學卡、或適於儲存電子指令之任何類型之媒體,且每一電腦可讀儲存媒體耦接至電腦系統匯流排。
機器可讀媒體包括用於儲存或傳輸呈可由機器(例如,電腦)讀取形式之資訊的任何機制。舉例而言,機器可讀媒體包括唯讀記憶體(「ROM」);隨機存取記憶體(「RAM」);磁碟儲存媒體;光學儲存媒體;快閃記憶體器件;等。
可使用一製品來儲存程式碼。儲存程式碼之製品可經體現為(但不限於):一或多個記憶體(例如,一或多個快閃記憶體、隨機存取記 憶體(靜態、動態或其他))、光碟、CD-ROM、DVD ROM、EPROM、EEPROM、磁性或光學卡、或適於儲存電子指令之其他類型之機器可讀媒體。程式碼亦可藉由體現於傳播媒體(例如,經由通信鏈路(例如,網路連接))中之資料信號而自遠端電腦(例如,伺服器)下載至請求電腦(例如,用戶端)。
關於電腦記憶體內之資料位元的演算法及操作之符號表示方面來呈現先前詳細描述。此等演算法描述及表示為熟習資料處理技術者用以將其工作實質最有效地傳遞至其他熟習此項技術者的工具。在此且大體而言設想演算法為導致一所要結果之操作之自相一致序列。該等操作為需要物理量之實體操縱的操作。通常(但非必須),此等量採取能夠儲存、傳送、組合、比較及以其他方式操縱的電信號或磁信號之形式。已證明將此等信號稱為位元、值、元素、符號、字元、項、數字或其類似者時常(主要為了普通用途)為便利的。
然而,應牢記,所有此等及類似術語將與適當物理量相關聯,且僅僅為應用於此等量的方便標籤。除非特定指出,否則自上文論述顯而易見,應瞭解,在全部描述中,利用諸如「註冊」、「接收」、「判定」、「繼續執行」、「儲存」、「監視」、「計算」、「啟動」、「延後」、「轉遞」、「重新排程」、「標記」及類似者的術語之論述指電腦系統或類似電子計算器件之動作及處理程序,該電腦系統或類似電子計算器件操縱及變換表示為電腦系統之暫存器及記憶體內之物理(電子)量的資料為類似表示為電腦系統記憶體或暫存器或其他此類資訊儲存器、傳輸或顯示器件內的物理量之其他資料。
本文所呈現之處理程序及顯示器並不固有地與任何特定電腦或其他裝置相關。根據本文教示多種通用系統可與程式一起使用,或其可證明便於建構一較專用裝置來執行所描述操作。用於多種此等系統之所需結構將自以下描述顯而易見。另外,並未參考任何特定程式化 語言來描述本發明。將瞭解,多種程式設計語言可用於實施如本文中所描述的本發明之教示。
以上論述僅描述本發明之一些例示性實施例。熟習此項技術者自此類論述將容易認識到,可在未偏離本發明之精神及範疇的情況下進行對附圖及申請專利範圍之各種修改。
108‧‧‧背景任務排程器
602‧‧‧接收任務模組
604‧‧‧排程任務模組
606‧‧‧監視系統模組
608‧‧‧系統準則模組
610‧‧‧判定可用器件空餘空間模組
612‧‧‧任務重要性模組
614‧‧‧執行任務模組
616‧‧‧延後任務判定模組
618‧‧‧延後任務模組
620‧‧‧重新啟動任務模組
622‧‧‧任務完成判定模組
624‧‧‧任務完成模組
626‧‧‧任務循環模組
628‧‧‧任務結束模組

Claims (21)

  1. 一種非暫時性機器可讀媒體,其具有可執行指令以致使一或多個處理單元執行一方法以排程一器件之一背景任務,該方法包含:註冊該背景任務,其中該註冊包括,儲存用於該背景任務之一執行準則(execution criteria),該執行準則指示用於啟動該背景任務之一或多個準則,且該執行準則基於該器件之一組件狀態;監視該器件之一執行狀態以監測該執行準則之一發生;若該執行準則發生,則決定用以執行該背景任務之一可用器件空餘空間(headroom),及基於該可用器件空餘空間及一背景任務重要性之一比較來啟動該背景任務,且該背景任務重要性為該器件執行該背景任務之重要程度的一量測,且該背景任務重要性於該執行準則發生後開始之一寬限期(grace period)期間內在啟動該背景任務之前改變為具有複數個不同值。
  2. 如請求項1之非暫時性機器可讀媒體,其中該組件狀態係選自由以下各項組成之群組:器件電源狀態、中央處理單元狀態、顯示器狀態、儲存系統狀態及網路連接性。
  3. 如請求項2之非暫時性機器可讀媒體,其中該器件電源狀態係選自由以下各項組成之群組:閒置、忙碌及百分比電量。
  4. 如請求項2之非暫時性機器可讀媒體,其中該中央處理單元狀態係選自由以下各項組成之群組:忙碌、閒置及百分比臨限值。
  5. 如請求項1之非暫時性機器可讀媒體,其中該執行準則為複數個 組件狀態之一組合。
  6. 如請求項1之非暫時性機器可讀媒體,其中該背景任務重要性為時間相依的且基於自該執行準則發生起經過的一時間。
  7. 如請求項1之非暫時性機器可讀媒體,其進一步包含:若不再滿足該執行準則,則使該背景任務之執行延後。
  8. 如請求項1之非暫時性機器可讀媒體,其進一步包含:判定該背景任務已完成執行;及若該背景任務為一循環任務,則重新排程該背景任務以在一未來時間執行。
  9. 如請求項1之非暫時性機器可讀媒體,其中該背景任務為在無使用者干預情況下由一應用程式執行的一任務。
  10. 一種非暫時性機器可讀媒體,其具有可執行指令以致使一或多個處理單元執行一方法以排程一器件之一背景任務,該方法包含:判定用於該背景任務之一時間相依任務重要性,其中該時間相依任務重要性自該背景任務最初可用以執行後開始之一寬限期期間內在啟動該背景任務之前改變為具有複數個不同值;判定用以執行該背景任務之一可用器件空餘空間;及若該時間相依任務重要性小於該可用器件空餘空間,則啟動該背景任務。
  11. 如請求項10之非暫時性機器可讀媒體,其中在該背景任務之一寬限期到期之前增加該時間相依任務重要性。
  12. 如請求項11之非暫時性機器可讀媒體,其中該背景任務之該寬限期為該背景任務之一時間段,在該時間段之後,該器件更積極地排程該背景任務以用於執行。
  13. 如請求項10之非暫時性機器可讀媒體,其中該背景任務之該啟動包含:調用對應於該背景任務之一處理常式。
  14. 一種用以排程一器件之一背景任務的方法,該方法包含:註冊該背景任務,其中該註冊包括,儲存用於該背景任務之一執行準則,該執行準則指示用於啟動該背景任務之一或多個準則,且該執行準則基於該器件之一組件狀態;監視該器件之一執行狀態以監測該執行準則之一發生;若該執行準則發生,則判定用以執行該背景任務之一可用器件空餘空間,及基於該可用器件空餘空間及一背景任務重要性之一比較來啟動該背景任務,且該背景任務重要性為該器件執行該背景任務之重要程度的一量測,且該背景任務重要性於該執行準則發生後開始之一寬限期期間內在啟動該背景任務之前改變為具有複數個不同值。
  15. 如請求項14之方法,其中該組件狀態係選自由以下各項組成之群組:器件電源狀態、中央處理單元狀態、顯示器狀態、儲存系統狀態及網路連接性。
  16. 如請求項15之方法,其中該器件電源狀態係選自由以下各項組成之群組:閒置、忙碌及百分比電量。
  17. 如請求項15之方法,其中該中央處理單元狀態係選自由以下各項組成之群組:忙碌、閒置及百分比臨限值。
  18. 如請求項14之方法,其進一步包含:若不再滿足該執行準則,則使該背景任務之執行延後。
  19. 如請求項14之方法,其進一步包含:判定該背景任務已完成執行;及若該背景任務為一循環任務,則重新排程該背景任務以在一未來時間執行。
  20. 一種用以排程一器件之一背景任務的器件,該器件包含:一處理器;一記憶體,其經由一匯流排而耦接至該處理器;及一處理程序,其藉由該處理器自該記憶體執行以致使該處理器進行以下操作:註冊一背景任務;監視該器件之一執行狀態以監測執行準則之一發生;若該執行準則發生,則判定用以執行該背景任務之一可用器件空餘空間;及基於該可用器件空餘空間及一背景任務重要性之一比較來啟動該背景任務,該背景任務重要性為該器件執行該背景任務之重要程度的一量測,且該背景任務重要性於該執行準則發生後開始之一寬限期期間內在啟動該背景任務之前改變為具有複數個不同值,其中對於該註冊,該處理程序進一步致使該處理器儲存用於該背景任務之一執行準則,該執行準則指示用於啟動該背景任務之一或多個準則,且該執行準則基於該器件之一組件狀態。
  21. 如請求項20之器件,其中該處理程序進一步致使該處理器進行以下操作:若不再滿足該執行準則,則使該背景任務之執行延後。
TW103104981A 2013-02-15 2014-02-14 用以排程一背景任務之方法與器件及相關非暫時性機器可讀媒體 TWI606397B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361765628P 2013-02-15 2013-02-15
US14/174,658 US11372672B2 (en) 2013-02-15 2014-02-06 Centralized task scheduling

Publications (2)

Publication Number Publication Date
TW201443785A TW201443785A (zh) 2014-11-16
TWI606397B true TWI606397B (zh) 2017-11-21

Family

ID=51352275

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103104981A TWI606397B (zh) 2013-02-15 2014-02-14 用以排程一背景任務之方法與器件及相關非暫時性機器可讀媒體

Country Status (5)

Country Link
US (1) US11372672B2 (zh)
KR (1) KR101739216B1 (zh)
CN (1) CN105190555B (zh)
TW (1) TWI606397B (zh)
WO (1) WO2014126810A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140282014A1 (en) * 2013-03-14 2014-09-18 Apple Inc. Presenting snapshots of plug-in content in user interfaces
US9286106B1 (en) * 2013-04-16 2016-03-15 Ca, Inc. Scheduling periodic tasks with dependencies and determining improper loop dependencies between tasks placed in a waiting tasks set and in a unfinished dependent tasks set
CN105122915B (zh) * 2014-03-21 2019-02-01 华为技术有限公司 监听报告生成方法、装置及用户设备
US10127805B2 (en) * 2014-06-20 2018-11-13 Ray Enterprises Llc Caching programming data
US10176021B1 (en) * 2014-11-21 2019-01-08 Ca, Inc. System and method for managing actual processing capacity usage on a mainframe computer
US20160293212A1 (en) * 2015-03-31 2016-10-06 Microsoft Technology Licensing, Llc Performing processing-intensive operation on multi-tasking limited-capacity devices
US9552229B2 (en) * 2015-05-14 2017-01-24 Atlassian Pty Ltd Systems and methods for task scheduling
US9870266B2 (en) 2015-07-30 2018-01-16 Nasdaq, Inc. Background job processing framework
US10152360B2 (en) * 2016-04-22 2018-12-11 Schneider Electric Software, Llc Coordinating event-driven object execution
US10169069B2 (en) * 2017-04-06 2019-01-01 International Business Machines Corporation System level update protection based on VM priority in a multi-tenant cloud environment
US10163065B1 (en) * 2017-08-16 2018-12-25 Nmetric, Llc Systems and methods of ensuring and maintaining equipment viability for a task
CN109445927B (zh) * 2018-11-12 2021-09-17 郑州云海信息技术有限公司 一种存储集群的任务管理方法及装置
US11392411B2 (en) * 2019-11-08 2022-07-19 Sap Se Background job scheduling restrictions
CN113127158B (zh) * 2019-12-30 2023-07-14 百度在线网络技术(北京)有限公司 用于执行数据处理任务的方法及装置
US11507418B2 (en) 2020-01-27 2022-11-22 Kyocera Document Solutions Inc. Process deferral system and methods using a service requester
US11481252B2 (en) 2020-01-27 2022-10-25 Kyocera Document Solutions Inc. Process deferral system and methods using tokens
US11392365B2 (en) 2020-12-14 2022-07-19 International Business Machines Corporation Optimizing device update scheduling
US11579959B2 (en) 2021-05-26 2023-02-14 Honeywell International Inc. Systems and methods for margin based diagnostic tools for priority preemptive schedulers
KR102412088B1 (ko) * 2021-11-08 2022-06-22 (주) 바우디움 상태 기계에 의하여 작업의 진행 상황을 관리하는 방법 및 이를 이용한 장치
CN117666755A (zh) * 2022-08-29 2024-03-08 华为技术有限公司 任务调度方法及相关设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451447B1 (en) * 1998-08-07 2008-11-11 Arc International Ip, Inc. Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls
US6834386B1 (en) * 1999-07-16 2004-12-21 Microsoft Corporation Method and system for regulating background tasks using performance measurements
US7010788B1 (en) 2000-05-19 2006-03-07 Hewlett-Packard Development Company, L.P. System for computing the optimal static schedule using the stored task execution costs with recent schedule execution costs
US20030061260A1 (en) * 2001-09-25 2003-03-27 Timesys Corporation Resource reservation and priority management
US7345671B2 (en) 2001-10-22 2008-03-18 Apple Inc. Method and apparatus for use of rotational user inputs
US6971034B2 (en) * 2003-01-09 2005-11-29 Intel Corporation Power/performance optimized memory controller considering processor power states
US7627343B2 (en) 2003-04-25 2009-12-01 Apple Inc. Media player system
US7206866B2 (en) 2003-08-20 2007-04-17 Microsoft Corporation Continuous media priority aware storage scheduler
US8028060B1 (en) 2007-01-05 2011-09-27 Apple Inc. Background task execution over a network based on network activity idle time
US8893130B2 (en) 2007-03-26 2014-11-18 Raytheon Company Task scheduling method and system
US8060884B2 (en) * 2007-07-10 2011-11-15 Sharp Laboratories Of America, Inc. Deterministic task scheduling in a computing device
US20100095330A1 (en) * 2008-10-15 2010-04-15 Echostar Technologies L.L.C. Satellite receiver system with rechargeable battery and antenna solar cell
KR101548134B1 (ko) 2009-10-01 2015-08-28 콘티넨탈 오토모티브 시스템 주식회사 실시간 스택 검사 시스템 및 그 방법
US20110145761A1 (en) * 2009-12-10 2011-06-16 Denis Leon Krief Interactive task management system and method
US8468534B2 (en) * 2010-04-05 2013-06-18 Apple Inc. Dynamic priority queuing
US8560876B2 (en) 2010-07-06 2013-10-15 Sap Ag Clock acceleration of CPU core based on scanned result of task for parallel execution controlling key word
US8843774B2 (en) 2010-08-20 2014-09-23 Qualcomm Incorporated Method and apparatus for managing battery power in response to an indication of an application being scheduled for immediate execution
CN102591754A (zh) * 2011-01-18 2012-07-18 智比特信息技术(镇江)有限公司 用于由计算机控制的电子产品的自动测试方法
US9374787B2 (en) 2011-02-10 2016-06-21 Alcatel Lucent Method and apparatus of smart power management for mobile communication terminals using power thresholds
US20120209650A1 (en) * 2011-02-11 2012-08-16 Avaya Inc. Context-based mobile activity assistant
US8886976B2 (en) 2011-04-11 2014-11-11 Microsoft Corporation Management of background tasks
CN102508701A (zh) 2011-10-18 2012-06-20 北京百纳威尔科技有限公司 自动控制应用程序运行处理方法和用户终端
US9003420B2 (en) * 2012-05-18 2015-04-07 International Business Machines Corporation Resolving RCU-scheduler deadlocks
US9071923B2 (en) * 2012-12-20 2015-06-30 Cellco Partnership Automatic archiving of an application on a mobile device

Also Published As

Publication number Publication date
CN105190555A (zh) 2015-12-23
TW201443785A (zh) 2014-11-16
US20140237476A1 (en) 2014-08-21
CN105190555B (zh) 2019-07-16
US11372672B2 (en) 2022-06-28
KR20150120435A (ko) 2015-10-27
KR101739216B1 (ko) 2017-05-23
WO2014126810A1 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
TWI606397B (zh) 用以排程一背景任務之方法與器件及相關非暫時性機器可讀媒體
TWI559229B (zh) 用於背景工作管理的方法、行動計算裝置及可讀取媒體
US9116704B1 (en) Delaying the initiation of transitioning to a lower power mode by placing a computer system into an intermediate power mode between a normal power mode and the lower power mode
JP5643336B2 (ja) 温度に基づいてマルチコア中央処理装置内の複数のコアを動的に制御するためのシステムおよび方法
JP5734505B2 (ja) ポータブルコンピューティングデバイスのマルチコアプロセッサにおける複数のコアへの電力を動的に制御するための方法およびシステム
JP6286555B2 (ja) 情報をプッシュするための方法、端末、およびシステム
JP5893568B2 (ja) 推定される作業負荷並列性に基づき中央処理装置電力を制御するためのシステムおよび方法
US10564708B2 (en) Opportunistic waking of an application processor
US8954980B2 (en) Conserving power through work load estimation for a portable computing device using scheduled resource set transitions
KR101551321B1 (ko) 휴대용 컴퓨팅 디바이스에서 요청들을 스케쥴링하기 위한 방법 및 시스템
TW201205441A (en) Multi-CPU domain mobile electronic device and operation method thereof
CN107533479B (zh) 功率知晓调度和功率管理器
CN102687097A (zh) 用于以保证的稳定状态期限来控制中央处理单元功率的系统和方法
CN102822768A (zh) 通过从处理器性能管理系统掩蔽处理来减少功耗
TWI595353B (zh) 用於控制處理器核心之電力模式的基於延遲電力模式單元以及相關方法及系統
KR101467072B1 (ko) 멀티쓰레딩된 프로그램의 저전력 실행
TWI566087B (zh) Cpu使用控制系統及方法
JP2010217945A (ja) アプリケーション動作調整システム
US20140237475A1 (en) Sleep/wake with suppression and donated importance
US9760145B2 (en) Saving the architectural state of a computing device using sectors
CN112052077A (zh) 软件任务管理的方法、装置、设备、介质
JP2019109600A (ja) 情報処理装置、計算機制御方法、および計算機制御プログラム
WO2017016358A1 (zh) 运算单元的控制方法、系统和计算机存储介质
US20190004575A1 (en) Systems and methods for thermal throttling via processor core count reduction and thermal load line shift
CN116795436A (zh) 休眠方法、装置及相关设备