TW201447766A - 使用具有客作業系統及虛擬處理器之超管理器之系統及方法 - Google Patents

使用具有客作業系統及虛擬處理器之超管理器之系統及方法 Download PDF

Info

Publication number
TW201447766A
TW201447766A TW103109243A TW103109243A TW201447766A TW 201447766 A TW201447766 A TW 201447766A TW 103109243 A TW103109243 A TW 103109243A TW 103109243 A TW103109243 A TW 103109243A TW 201447766 A TW201447766 A TW 201447766A
Authority
TW
Taiwan
Prior art keywords
operating system
guest operating
task
priority
hypervisor
Prior art date
Application number
TW103109243A
Other languages
English (en)
Other versions
TWI552076B (zh
Inventor
Erich James Plondke
Lucian Codrescu
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201447766A publication Critical patent/TW201447766A/zh
Application granted granted Critical
Publication of TWI552076B publication Critical patent/TWI552076B/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
    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

本發明提供一種設備,其包括一處理器及一客作業系統。回應於接收建立一任務之一請求,該客作業系統請求一超管理器建立一虛擬處理器以執行該所請求之任務。該虛擬處理器可於該處理器上排程。

Description

使用具有客作業系統及虛擬處理器之超管理器之系統及方法
本發明大體上係關於使用超管理器虛擬化作業系統。
技術之進步已產生較小且較強大之計算裝置。舉例而言,當前存在多種攜帶型個人計算裝置,包括無線計算裝置,諸如,攜帶型無線電話、個人數位助理(PDA)、平板電腦及傳呼裝置,其體積小、重量輕且易於由使用者攜帶。許多此等計算裝置包括併入其中之其他裝置。舉例而言,無線電話亦可包括數位靜態攝影機、數位視訊攝影機、數位記錄器及音訊檔案播放器。又,此等計算裝置可處理可執行指令,包括軟體應用程式,諸如可用於存取網際網路之網頁瀏覽器應用程式,及利用靜態或視訊攝影機並提供多媒體播放功能性的多媒體應用程式。
為支援此進階功能性,計算裝置可包括作業系統。作業系統可提供可用硬體資源之抽象化。舉例而言,作業系統可多工各種軟體任務中之系統資源(例如,處理器、記憶體等)。作業系統亦可排程用於執行之任務,且執行記憶體管理。另外,作業系統可處置事件之封鎖及解除封鎖。
在某些情況下,在單一計算裝置處執行多個作業系統,或同一作業系統之多個執行個體可係有利的。超管理器(亦稱為虛擬機監視 器)可將可用硬體資源之抽象化提供至作業系統。因此,超管理器可充當用於多個作業系統(或同一作業系統之多個執行個體)的作業系統。當使用超管理器時,超管理器可包括用以判定授予哪個作業系統及其任務在特定時間處存取特定硬體資源的排程器。因此,可在系統內執行排程之多個層級:第一層級可包括每一個別作業系統之排程器,且第二層級可包括超管理器之排程器。
執行排程之多個層級將額外負荷引入系統中(例如,歸因於由超管理器所執行之上下文切換)。當作業系統中之一或多者為需要能夠保證某些潛時之即時作業系統時,此額外負荷可係不可接受的。為將即時作業系統包括於多個作業系統環境中,即時作業系統通常給定有「特殊」優先級。舉例而言,即時作業系統可具有最高可用優先級。然而,此情況可係低效的,此係因為每一作業系統內之任務優先級資訊可能不可存取超管理器。舉例而言,若即時作業系統正執行不重要之任務但另一作業系統正執行重要任務,則超管理器可仍首先排程相對不重要之即時作業系統任務。
揭示使得一作業系統(例如,一即時作業系統)能夠在潛時減少的情況下,在一超管理器控制之計算環境中執行的系統及方法。代替(或除)具有內建式排程器之習知客作業系統以外,該等所描述之技術利用包括受限之排程功能或並無排程功能,且代替地依賴於超管理器以用於排程的「精簡型」客作業系統。亦可由該超管理器而非由個別作業系統處置封鎖及解除封鎖。另外,該超管理器可以存取關於該等個別作業系統中之每一者的任務之優先級的資訊。
每次在一「精簡型」作業系統處建立一新任務,該「精簡型」作業系統可請求該超管理器建立用於該任務的一「虛擬處理器」。該超管理器可排程該虛擬處理器以在底層實體硬體(例如,硬體處理器) 上執行,且只要對應任務存在,則可維持虛擬處理器。舉例而言,每一任務可與一虛擬處理器相關聯,且可由該超管理器之排程器處置所有排程。此外,該超管理器之該排程器可以存取個別任務/虛擬處理器之該等優先級,該等優先級可用於橫跨所有客作業系統執行較有效之虛擬處理器排程。因此,該等所描述之系統及方法可簡化個別作業系統,並減少該超管理器控制之計算環境中的總潛時,藉此使得能夠在該超管理器控制之計算環境中使用一或多個即時作業系統及其他作業系統。
在一特定實施例中,一種設備包括一處理器及一超管理器。該超管理器經組態以排程虛擬處理器以由該處理器執行。該等虛擬處理器中之每一者具有可存取該超管理器且對應於一對應任務之一任務優先級的一優先級。該任務優先級係由一客作業系統指派。
在另一特定實施例中,一種方法包括在一計算裝置之一超管理器處,接收來自一客作業系統的建立一虛擬處理器以執行一任務之一請求。該方法亦包括建立該虛擬處理器,及排程該虛擬處理器以在該計算裝置之一硬體處理器上執行。該虛擬處理器具有由該客作業系統所指派的一優先級,其中該優先級對應於該任務之一任務優先級。
在另一特定實施例中,一種設備包括用於處理之構件,及可由用於處理之該構件執行的用於排程之構件。用於排程之該構件經組態以排程虛擬處理器以由用於處理之該構件執行。該等虛擬處理器中之每一者具有可存取用於排程之該構件且對應於一對應任務之一任務優先級的一優先級。該任務優先級係由一第一客作業系統指派。
在另一特定實施例中,一種非暫時性電腦可讀媒體包括在由一電腦執行時導致該電腦進行以下操作之指令:在一超管理器處,接收來自一客作業系統的建立一虛擬處理器以執行一任務之一請求。該等指令在由該電腦執行時亦導致該電腦建立該虛擬處理器且排程該虛擬 處理器以用於執行。該虛擬處理器具有對應於該任務之一任務優先級的一優先級。該任務優先級係由該客作業系統指派。
在另一特定實施例中,一種設備包括一處理器及一客作業系統。回應於接收建立一任務之一請求,該客作業系統請求一超管理器建立一虛擬處理器以執行該任務。該虛擬處理器可於該處理器上排程。
在另一特定實施例中,一種方法包括在執行於包含一超管理器及至少一處理器之一計算裝置處的一客作業系統處,接收建立一任務之一請求。該方法亦包括回應於建立該任務之該請求,請求該超管理器建立一虛擬處理器以執行該所請求之任務。該虛擬處理器可於該至少一處理器上排程。
在另一特定實施例中,一種設備包括一處理器及一客作業系統。該客作業系統包括用於回應於接收建立一任務之一請求而請求一超管理器建立一虛擬處理器以執行該任務之構件。該虛擬處理器可於該處理器上排程。
在另一特定實施例中,一種非暫時性電腦可讀媒體包括在由一電腦執行時導致該電腦進行以下操作之指令:在一客作業系統處,接收建立一任務之一請求。該等指令在由該電腦執行時亦導致該電腦回應於建立該任務之該請求,請求一超管理器建立一虛擬處理器以執行該所請求之任務。該虛擬處理器可於一硬體處理器上排程。
在另一特定實施例中,一種電子裝置包括一處理器、一超管理器、一第一客作業系統及一第二客作業系統。該第一客作業系統之至少一任務係藉由由該第一客作業系統向該超管理器請求的一第一虛擬處理器來執行。該第二客作業系統之至少一任務係藉由由該第二客作業系統向該超管理器請求的一第二虛擬處理器來執行。該第一虛擬處理器及該第二虛擬處理器係藉由該處理器執行。
由所揭示之實施例中之至少一者所提供的一特定優勢為對來自具有減少之潛時的多個客作業系統之任務,執行經優先排序之排程的能力。由所揭示之實施例中之至少一者所提供的另一特定優勢為在超管理器控制之計算環境內使用即時作業系統的能力。本發明之其他態樣、優勢及特徵將在審閱包括以下部分之完整申請案之後變得顯而易見:【圖式簡單說明】、【實施方式】及【申請專利範圍】。
100‧‧‧系統
110‧‧‧處理器
120‧‧‧超管理器
121‧‧‧優先級感知排程器
122‧‧‧虛擬處理器建立/刪除模組
123‧‧‧虛擬處理器封鎖/解除封鎖模組
130‧‧‧第一客作業系統
131‧‧‧虛擬處理器
132‧‧‧虛擬處理器
133‧‧‧虛擬處理器
134‧‧‧虛擬處理器
140‧‧‧第二客作業系統
141‧‧‧虛擬處理器
142‧‧‧虛擬處理器
143‧‧‧虛擬處理器
144‧‧‧虛擬處理器
151‧‧‧任務
152‧‧‧任務
153‧‧‧任務
154‧‧‧任務
161‧‧‧任務
162‧‧‧任務
163‧‧‧任務
164‧‧‧任務
200‧‧‧超管理器控制之計算環境
240‧‧‧習知作業系統
241‧‧‧虛擬處理器
242‧‧‧作業系統排程器
300‧‧‧超管理器處之操作方法
400‧‧‧作業系統處之操作方法
500‧‧‧電子裝置
510‧‧‧處理器
522‧‧‧系統級封裝或系統單晶片裝置
526‧‧‧顯示器控制器
528‧‧‧顯示器
530‧‧‧輸入裝置
532‧‧‧記憶體
534‧‧‧寫碼器/解碼器(編解碼器)
536‧‧‧揚聲器
538‧‧‧麥克風
540‧‧‧無線控制器
542‧‧‧天線
544‧‧‧電源供應器
556‧‧‧可執行指令
570‧‧‧超管理器
572‧‧‧第一客作業系統
574‧‧‧第二客作業系統
600‧‧‧系統
620‧‧‧控制區塊
630‧‧‧就緒清單
640‧‧‧執行清單
660‧‧‧多執行緒處理器
圖1為可操作以使用具有客作業系統及虛擬處理器之超管理器的系統之說明性實施例的方塊圖;圖2為可操作以使用具有客作業系統及虛擬處理器之超管理器的系統之另一說明性實施例的方塊圖;圖3為在圖1之超管理器處操作之方法的說明性實施例之流程圖;圖4為在圖1之客作業系統中之一者處操作的方法之說明性實施例的流程圖;圖5為包括可操作以支援使用具有客作業系統及虛擬處理器之超管理器的組件之無線裝置的方塊圖;及圖6為可操作以執行優先級繼承之系統的說明性實施例之方塊圖。
圖1為可操作以使用具有客作業系統及虛擬處理器之超管理器的系統100之說明性實施例的方塊圖。系統100包括一或多個硬體資源,諸如一或多個處理器110。系統亦包括可由處理器110執行之超管理器120。超管理器120可仲裁由一或多個客作業系統(諸如,說明性第一客作業系統130及說明性第二客作業系統140)對一或多個處理器110之存取。如本文中進一步所描述,客作業系統130、140中之一或多者可 為即時作業系統(RTOS)。
超管理器120可包括各種邏輯及/或功能模組。在特定實施例中,使用可由處理器110執行之軟體指令實施每一此模組。替代性地,可使用硬體裝置實施超管理器120之所選定功能性,諸如控制器、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)裝置或一些其他裝置。在圖1之實施例中,超管理器120包括優先級感知排程器121、虛擬處理器建立/刪除模組122及虛擬處理器封鎖/解除封鎖模組123。然而,應注意,模組121至123僅係出於說明目的。在替代性實施例中,可使用較多或較少模組進行參考超管理器120所描述之功能。
虛擬處理器建立/刪除模組122可經組態以接收來自客作業系統130、140中之任一者的請求。舉例而言,可經由作業系統超管理器通信機制(諸如,應用程式設計介面(API)或共用記憶體區域)接收請求。回應於該請求,虛擬處理器建立/刪除模組122可建立虛擬處理器。舉例而言,第一客作業系統130與四個任務151、152、153及154相關聯。任務151、152、153及154中之每一者分別與對應虛擬處理器131、132、133及134相關聯。類似地,第二客作業系統140與四個任務161、162、163及164相關聯。任務161、162、163及164中之每一者分別與對應虛擬處理器141、142、143及144相關聯。任務151至154及161至164可與使用者模式(例如,應用程式層級)或客模式(例如,客作業系統層級)常式或次常式相關聯。任務151至154及161至164可對應於儲存於記憶體中且可由處理器110執行之指令集(例如,程式碼)。舉例而言,特定應用程式可與「主要」任務及由「主要任務」(例如,一或多個圖形使用者介面(GUI)任務、一或多個資料處理任務等)所產生之一或多個額外任務相關聯。
在圖1之系統100中,只要對應客作業系統維持對應任務,則可維持虛擬處理器。當任務結束時,虛擬處理器建立/刪除模組122可刪 除及/或解除配置用於該任務之虛擬處理器。虛擬處理器建立/刪除模組122可基於處理器110處之離開或返回命令,或回應於來自客作業系統之通知,偵測到任務已結束。在特定實施例中,建立虛擬處理器可包括將硬體及/或軟體資源配置於虛擬處理器,且刪除虛擬處理器可包括解除配置虛擬處理器之硬體及/或軟體資源。
應注意,自超管理器120之透視圖,虛擬處理器131至134及141至144中之每一者為可排程實體。相反地,自客作業系統130及140之透視圖,虛擬處理器131至134及141至144中之每一者可為硬體資源抽象化。任務151至154及161至164中之每一者可對應於由客作業系統130及140,或客作業系統130及140處所執行之應用程式所起始的一或多個執行緒或軟體常式/子常式。
優先級感知排程器121可經組態以排程虛擬處理器131至134及141至144以用於執行。可認為排程器121係「優先級感知」的,此係因為排程器121可以存取個別虛擬處理器之優先級資訊。舉例而言,在圖1之實施例中,每一虛擬處理器具有自1至3之虛擬處理器優先級。優先級1可為最高之優先級,且優先級3可為最低之優先級。在替代性實施例中,可使用較多或較少之優先級指定。虛擬處理器之優先級可等於、反映或可以其他方式基於對應於虛擬處理器之任務的任務優先級。舉例而言,虛擬處理器134具有任務優先級2,其等於對應任務154之任務優先級。可由客作業系統130在任務建立期間指派任務154之任務優先級,如本文中進一步所描述。因此,憑藉可以存取虛擬處理器優先級資訊,優先級優先級感知排程器121可以存取任務優先級資訊。優先級資訊可直接地(例如,藉由讀取作業系統記憶體、共用記憶體或暫存器中之某些資料結構)或間接地(例如,經由API)存取優先級感知排程器121。
在特定實施例中,優先級感知排程器121可基於對應於第一任務 之第一虛擬處理器的第一優先級,與對應於第二任務之第二虛擬處理器的第二優先級之比較,判定是否排程第一任務或第二任務。另外,優先級感知排程器121可在對應於不同作業系統之任務的虛擬處理器之優先級之間作出此等比較。因此,優先級感知排程器121可執行特定任務優先排序,而非優於另一客作業系統之所有任務,自動優先排序特定客作業系統(例如,即時作業系統(RTOS))之所有任務,此情況可降低系統100之總潛時(例如,量測為任務建立與執行之間的平均時間、開始與完成任務執行之間的平均時間等)。RTOS可將最高可用優先級指派至低潛時(例如,使命臨界)任務,使得由優先級感知排程器121優先排序此等任務,但可將較低優先級指派至較不重要RTOS任務,使得其他客作業系統之重要任務並非必須等待排程較不重要RTOS任務。
在圖1之實施例中,客作業系統兩者皆支援自「1」至「3」之任務優先級。然而,此等優先級僅出於說明目的。在替代性實施例中,客作業系統可支援優先級之非重疊或部分重疊集合。舉例而言,第一客作業系統130可為支援「1」至「3」之任務優先級的即時作業系統,且第二客作業系統140可為支援「2」至「4」之任務優先級的非即時作業系統。因此,即時作業系統(及其任務)可存取非即時作業系統(及其任務)不可用的至少一提高之任務優先級層級(例如,任務優先級「1」)。
超管理器120亦可包括虛擬處理器封鎖/解除封鎖模組123。虛擬處理器封鎖/解除封鎖模組123可經組態以封鎖及解除封鎖虛擬處理器131至134及141至144。將瞭解,因為系統100中之任務與虛擬處理器之間存在一對一映射,所以「精簡型」客作業系統130及140可依賴於超管理器120以用於封鎖及解除封鎖虛擬處理器,而非在客作業系統130及140內實施任務封鎖及解除封鎖邏輯。此方法簡化客作業系統 130及140之設計及實施。封鎖/解除封鎖情況之實例可包括(但不限於)當任務睡眠直至同步物件(例如,互斥或旗語)變得可用、直至資料可用或某些處理操作完成(例如,由另一任務),或直至滿足一些其他解除封鎖條件時。
客作業系統130及140可各自為包括極少或並無排程邏輯之「精簡型」作業系統。實情為,客作業系統130及140依賴於超管理器120,以用於排程功能。客作業系統130及140亦可依賴於超管理器120,以用於任務之封鎖及解除封鎖。應注意,儘管圖1中展示兩個客作業系統,但此情況僅為實例。在替代性實施例中,可由超管理器120支援較多或較少之客作業系統。此外,超管理器120可同時支援一或多個「精簡型」作業系統,及包括排程及封鎖/解除封鎖邏輯的一或多個習知作業系統。舉例而言,超管理器120可為「精簡型」作業系統,但並非全部作業系統(例如,包括其自身之排程器的作業系統)執行優先級感知排程及封鎖/解除封鎖。舉例而言,圖2說明超管理器控制之計算環境200,其中「精簡型」作業系統130與包括單一虛擬處理器241及「原生」作業系統排程器242之習知作業系統240共存。圖2之其他組件可如參考圖1之對應組件所描述地起作用。
操作期間,客作業系統130及140及/或客作業系統130及140處執行之應用程式可建立任務(例如,回應於由應用程式所發出的任務建立請求)。回應於任務建立請求,客作業系統130及140可請求超管理器120建立虛擬處理器,以執行所請求任務。舉例而言,回應於來自第一客作業系統130的與任務154相關聯之請求,虛擬處理器建立/刪除模組122可建立虛擬處理器134。虛擬處理器建立/刪除模組122可為所建立虛擬處理器134指派優先級「2」,從而反映任務154之任務優先級。優先級感知排程器121可排程虛擬處理器134。舉例而言,排程虛擬處理器以用於執行可包括將虛擬處理器置放於硬體處理器110之執 行佇列中、配置處理器110對虛擬處理器之執行週期或時間配量等。回應於來自第一客作業系統130的封鎖及解除封鎖任務154之請求,虛擬處理器封鎖/解除封鎖模組123可封鎖及解除封鎖虛擬處理器134。在完成任務154之後,虛擬處理器建立/刪除模組122可隨即刪除虛擬處理器134。
在特定實施例中,客作業系統130及140中之一或多者可為RTOS。舉例而言,系統100可整合至無線電話中,且客作業系統130或140中之一者可為提供某些潛時保證之無線電話中的數據機之作業系統。舉例而言,數據機作業系統可保證排程潛時低於20微秒(μs),以滿足即時期限。若作業系統中之一者為即時作業系統,則可具有數量級為毫秒之潛時的習知超管理器可並不提供充分之響應性。然而,本文中所描述之技術可使得圖1之超管理器120能夠支援數據機作業系統或其他RTOS可接受的減少之潛時。因此,圖1之系統100可用於無線電話及其他無線通信裝置(例如,膝上型電腦或平板計算裝置)中。
在特定實施例中,系統100可併入包括一或多個多執行緒及/或多核心處理器之電子裝置中。舉例而言,系統100可用於實施即時多執行緒計算。多執行緒處理器可經由具有並行地執行之多個硬體執行環境(hardware execution context)的處理器來實施,或實施為具有單一硬體執行環境(例如,對稱多處理(SMP)叢集)之多個處理器。
所描述之技術可適用於各種電子裝置中。舉例而言,行動電子裝置(例如,無線電話)通常包括數據機軟體、數據機韌體及音訊處理,該等裝置中之每一者可利用不同之作業系統或作業系統影像(例如,歸因於不同之潛時要求)。圖1之系統100可使得數據機韌體及數據機軟體能夠共用同一DSP(例如,同一作業系統之多個複本可為客作業系統),同時滿足潛時要求。在特定實施例中,無線電話可包括用於數據機操作之客RTOS,及用於應用程式(例如,用以支援將無線 電話用於Wi-Fi連接性的膝上型電腦之網頁伺服器)之另一作業系統,其中作業系統兩者皆運行於同一DSP上而非不同處理器上(例如,包括DSP及單獨應用處理器之裝置)。將瞭解,使得裝置之多個(或所有)作業系統能夠運行於同一處理器或處理器之集合上可降低與該裝置相關聯之生產/製造成本。
因此,圖1之系統100可提供並無過度上下文切換(例如,不同可排程實體之間的切換)的超管理器控制之計算環境,此係因為每任務指派一虛擬處理器。可由超管理器120排程並由處理器110執行的不同虛擬處理器執行作業系統之每一任務。此外,自實施單一排程層降低之額外負荷可提供降低之潛時,使得能夠在系統100中使用多個即時作業系統。圖1之系統100可表示作業系統設計中之範例改變。習知地,作業系統經設計以運行於「金屬上」(亦即,鑑於硬體實施細節),且超管理器經設計以支援該作業系統。相反地,圖1之系統100反映作業系統/超管理器「共同設計」範例,其中特定地實施作業系統及超管理器,以依賴於彼此進行某些功能,此情況可減少冗餘(例如,一排程器而非多個排程器)並降低潛時。
圖3為說明超管理器處之操作的特定方法300之流程圖。在說明性實施例中,可由圖1至圖2之超管理器120執行方法300。
方法300可包括在302處,在一超管理器處,接收來自一客作業系統的建立一虛擬處理器以執行一任務之一請求,其中該任務具有由該客作業系統指派之一任務優先級。舉例而言,在圖1中,超管理器120可自第二客作業系統140接收建立虛擬處理器之請求,以執行任務163,其中任務163具有由第二客作業系統140所指派之任務優先級「1」。
方法300亦可包括在304處,建立該虛擬處理器,其中該虛擬處理器具有對應於該任務優先級之一優先級。舉例而言,在圖1中,超 管理器120可建立虛擬處理器143以執行任務,其中虛擬處理器143具有對應於任務163之任務優先級的優先級「1」。
方法300可進一步包括在306處,排程該虛擬處理器以用於執行,及在308處,基於來自該客作業系統之一請求而封鎖或解除封鎖該虛擬處理器。舉例而言,在圖1中,超管理器120可排程虛擬處理器143以用於執行,並基於來自第二客作業系統140之請求,封鎖/解除封鎖虛擬處理器143。在任務163完成之後,超管理器亦可隨即刪除或解除配置虛擬處理器143。
因此,圖3之方法300可使得超管理器能夠建立並執行對應於作業系統任務的虛擬處理器之排程(例如,優先級感知排程)。舉例而言,藉由執行優先級感知排程,超管理器可使得即時作業系統能夠滿足潛時要求,而並不使即時作業系統支配硬體資源並負面地影響非即時作業系統之效能。圖3之方法300亦可使得超管理器能夠執行封鎖及解除封鎖。並不包括排程及封鎖/解除封鎖邏輯之「精簡型」作業系統可依賴於超管理器,以用於排程及封鎖/解除封鎖功能性,此情況可減少計算系統中之冗餘及潛時。
可由數位信號處理器(DSP)、處理單元(諸如,中央處理單元(CPU))、控制器、場可程式化閘陣列(FPGA)裝置、特殊應用積體電路(ASIC)、另一硬體裝置、韌體裝置,或其任何組合來實施圖3之方法300。作為一實例,可由執行指令之處理器(如關於圖5所描述)執行圖3之方法300。
圖4為說明作業系統(例如,超管理器控制之計算環境中的客作業系統)處之操作的特定方法400之流程圖。在說明性實施例中,可由圖1至圖2之第一客作業系統130,或圖1之第二客作業系統140執行方法400。
方法400可包括在402處,在一客作業系統處,接收建立一任務 之一請求。在特定實施例中,客作業系統可為即時作業系統。舉例而言,在圖1中,第一客作業系統130可為自執行於第一客作業系統130上之應用程式,接收建立任務(例如,任務151)之請求的即時作業系統。
方法400亦可包括在404處,回應於建立該任務之該請求,請求一超管理器建立一虛擬處理器以執行該所請求之任務。舉例而言,在圖1中,第一客作業系統130可請求超管理器120建立虛擬處理器(例如,虛擬處理器131),以執行所請求之任務。
方法400可進一步包括在406處,將一任務優先級指派至該任務,其中該虛擬處理器之一優先級對應於該任務優先級且可存取該超管理器。舉例而言,在圖1中,第一客作業系統可將任務優先級「1」指派至任務151,且虛擬處理器131可具有對應於任務151之任務優先級的優先級「1」。
因此,圖4之方法400可使得作業系統能夠使用對應於作業系統任務的虛擬處理器之優先級感知超管理器排程。並不包括排程及封鎖/解除封鎖邏輯之「精簡型」作業系統可依賴於超管理器,以用於排程及封鎖/解除封鎖功能性,此情況可減少計算系統中之冗餘及潛時。
可由數位信號處理器(DSP)、處理單元(諸如,中央處理單元(CPU))、控制器、場可程式化閘陣列(FPGA)裝置、特殊應用積體電路(ASIC)、另一硬體裝置、韌體裝置,或其任何組合來實施圖4之方法400。作為一實例,可由執行指令之處理器(如關於圖5所描述)執行圖4之方法400。
參看圖5,展示電子裝置500之方塊圖。電子裝置500包括耦接至記憶體532之處理器510,諸如數位信號處理器(DSP)。在特定實施例中,電子裝置500或其組件可包括於機上盒、音樂播放器、視訊播放 器、娛樂單元、導航裝置、通信裝置、個人數位助理(PDA)、固定位置資料單元、計算裝置或其任何組合中。
圖5亦展示耦接至處理器510及顯示器528之顯示器控制器526。寫碼器/解碼器(編解碼器)534亦可耦接至處理器510。揚聲器536及麥克風538可耦接至編解碼器534。圖5亦指示無線控制器540可耦接至處理器510及天線542(例如,經由射頻(RF)介面)。
記憶體532可為包括可執行指令556之有形非暫時性電腦可讀或處理器可讀儲存媒體。可由處理器執行指令556,諸如,用以執行各種功能及方法(包括圖3至圖4之方法300、400)之處理器510。記憶體亦可儲存對應於超管理器570(例如,圖1至圖2之超管理器120)、第一客作業系統572(例如,圖1至圖2之第一客作業系統130)、第二客作業系統574(例如,圖1之第二客作業系統140)的指令。亦可包括額外之作業系統(例如,圖2之第三客作業系統240)。
在特定實施例中,處理器510、顯示器控制器526、記憶體532、編解碼器534及無線控制器540包括於系統級封裝或系統單晶片裝置522中。在特定實施例中,輸入裝置530及電源供應器544耦接至系統單晶片裝置522。此外,在特定實施例中,如圖5中所說明,顯示器528、輸入裝置530、揚聲器536、麥克風538、天線542及電源供應器544在系統單晶片裝置522外部。然而,顯示器528、輸入裝置530、揚聲器536、麥克風538、天線542及電源供應器544中之每一者可耦接至系統單晶片裝置522之組件,諸如介面或控制器。
所描述之技術使得能夠使用多個客作業系統,其包括依賴於超管理器以用於排程及封鎖/解除封鎖功能性的一或多個「精簡型」即時作業系統。在特定實施例中,客作業系統(及其任務)可彼此通信且可共用同步基元。舉例而言,一客作業系統可與無線通信裝置(例如,蜂巢式電話)之數據機相關聯,且另一客作業系統可與音訊處理 (例如,話語編碼/解碼)相關聯。
在客作業系統能夠通信之實施例中,可將安全量測安置於適當的位置。安全量測可經設計,使得維持服務品質(QoS)保證(例如,即時作業系統之潛時要求)。
通信機制(例如,同步基元)可用於封鎖/解除封鎖任務/虛擬處理器(例如,由圖1之虛擬處理器封鎖/解除封鎖模組123)。在特定實施例中,記憶體中之單一位元或多位元資料值可用於同步基元。一或多個規則可控管同步基元之使用。舉例而言,第一規則可指示若同步基元未鎖定(例如,設定為零),則可由執行緒(例如,客作業系統之任務或對應虛擬處理器)鎖定同步基元(例如,設定為一)。在由執行緒(亦被稱作「保持」同步基元之執行緒)鎖定同步基元之後,可由執行緒寫入由同步基元所保護之資料。第二規則可指示若鎖定同步基元,則尋求獲得同步基元之執行緒應進行封鎖直至未鎖定同步基元為止。在替代性實施例中,同步基元可為表示超過兩個狀態之多位元值。舉例而言,可由第一值表示未鎖定狀態、可由第二值表示並無等待執行緒之鎖定狀態,且可由第三值表示具有至少一等待執行緒之鎖定。在特定實施例中,同步基元可儲存於多個客作業系統之間所共用的記憶體之使用者模式位址處(例如,同步基元可儲存於使用者空間中)。
將瞭解,在具有多個客作業系統的超管理器控制之環境中,一客作業系統中之任務可取決於另一客作業系統中之任務。舉例而言,當因為第二客作業系統之第二任務保持同步基元,所以第一客作業系統之第一任務進行封鎖時,可不能夠進行第一客作業系統之第一任務,直至第二客作業系統之第二任務釋放同步基元為止。經封鎖第一任務可以唯讀方式存取同步基元,但第二任務可以讀取寫入方式存取同步基元。
在特定實施例中,執行於客作業系統中之任務可用的封鎖功能 呼叫可包括兩個引數:同步基元之指標及同步基元之預期值。超管理器可檢查位址處由指標所指示的同步基元之值是否等於預期值。若該等值相等,則封鎖係成功的。若該等值並不相等,則超管理器在不進行封鎖的情況下返回。喚醒功能可包括兩個引數:同步基元之指標,及取決於同步基元之值,可喚醒的執行緒之最大數目。
在特定實施例中,可針對封鎖實施逾時。舉例而言,若並未在特定時間量內(例如,回應於過期逾時週期)釋放同步基元,則可自動喚醒在同步基元上封鎖之任務。
在特定實施例中,優先級之全域集合可用於超管理器控制之計算環境中的作業系統。在一些狀況下,即時作業系統可以存取全域集合之優先級中的一或多個較高優先級,非即時作業系統不可以存取該等較高優先級。當來自不同客作業系統之不同任務可具有全域集合之優先級中的不同優先級時,可發生優先級反轉。舉例而言,當不同優先級之執行緒競爭同步基元時,可發生優先級反轉。優先級反轉可導致操作無效率及潛在之死鎖。舉例而言,(例如,即時作業系統之)較高優先級執行緒可等待正由(例如,非即時作業系統之)較低優先級執行緒所使用的同步基元。可由中等優先級執行緒先占較低優先級執行緒(且擴展開來,等待之較高優先級執行緒)。歸因於先占,較低優先級執行緒可不能夠完整地執行以釋放同步基元,使得較高優先級執行緒可獲得同步基元並繼續執行。由於中等優先級執行緒有效地先占較高優先級執行緒,因此中等優先級執行緒及較高優先級執行緒之優先級可稱為經「反轉」。
優先級繼承為可用於避免優先級反轉之技術。在優先級繼承中,當較高優先級執行緒(例如,優先級=1)在較低優先級執行緒(例如,優先級=3)上封鎖時,較低優先級執行緒「繼承」封鎖之較高優先級執行緒的優先級(例如,較低優先級執行緒繼承優先級(=1))。此 繼承使得中等優先級執行緒(例如,優先級=2)不會帶來優先級反轉。在包括多個客作業系統之計算環境中,關於單一客作業系統之任務或關於多個客作業系統之任務,可發生優先級反轉。
圖6說明可操作以執行優先級反轉之系統600的實施例。系統600包括超管理器120,及一或多個多執行緒處理器660(例如,圖1之處理器110)。多執行緒處理器可經由具有並行地執行之多個硬體執行環境的處理器來實施,或實施為具有單一硬體執行環境(例如,對稱多處理(SMP)叢集)之多個處理器。在特定實施例中,超管理器120可實施優先級反轉避免方案。根據該方案,每一客作業系統具有當客作業系統由超管理器120載入時所建立的最大允許優先級。每一客作業系統可將其自身任務/執行緒(且擴展開來,虛擬處理器)提高至其最大允許優先級。然而,禁止客作業系統提高其最大允許優先級。實情為,僅較高優先級客作業系統可經由優先級繼承系統來提高另一較低優先級客作業系統之較低優先級任務。此情況使得較高優先級任務及客作業系統環境確實能夠在使用同步基元時,判定是否應調整任務優先級。
在特定實施例中,超管理器120可實施「緩慢式」優先級繼承。超管理器120可維持指示任務/虛擬處理器之優先級(「Prio」)、臨時優先級(「Tprio」)及狀態(例如,「正在執行」、「封鎖」、「就緒」等)的控制區塊620。當優先級感知排程器121判定藉由第二較低優先級任務封鎖執行第一任務時,第二任務可繼承等於第一任務之優先級的臨時優先級。可無需修改排程資料結構之內容而設定臨時優先級。
舉例而言,排程資料結構可包括就緒清單630及執行清單640,如所展示。就緒清單630可指示準備好執行(例如,並不封鎖於任何同步基元上)之任務(或對應虛擬處理器)。執行清單640可指示經排程以用於執行及/或正執行之任務(或對應虛擬處理器)。在所說明之實施例中,就緒清單630及執行清單640包括用於系統600中可用之四個優先 級中之每一者的一「槽」。然而,此情況僅出於說明目的。在替代性實施例中,就緒清單630及執行清單640可以不同方式組織。
在未發生優先級反轉之正常操作期間,「緩慢式」優先級反轉可係低成本的,此係因為僅臨時優先級(在圖6中指定為「Tprio」)係由超管理器120設定,且排程資料並未受影響。然而,若另一任務先占第二任務,則可使用臨時優先級重新排程第二任務(或對應虛擬處理器)以用於執行。第二任務可以較高之臨時優先級執行,使得系統能夠朝向執行第一任務前進。
結合所描述之實施例,揭示包括用於處理之構件的設備。舉例而言,用於處理之該構件可包括硬體處理器(諸如,圖1至圖2之一或多個處理器110,或圖5之處理器510)、用以處理資料之一或多個其他裝置或電路,或其任何組合。該設備亦包括可由用於處理之該構件執行的用於排程之構件。用於排程之該構件經組態以排程虛擬處理器以由用於處理之該構件執行,該等虛擬處理器中之每一者具有可存取用於排程之該構件且對應於對應任務之任務優先級的優先級,該任務優先級由一第一客作業系統指派。舉例而言,用於排程之該構件可為圖1至圖2之優先級感知排程器121、圖5之超管理器570、用以排程虛擬處理器以用於執行的一或多個其他裝置、電路、模組或指令,或其任何組合。
在特定實施例中,一設備包括一處理器及一客作業系統。該客作業系統包括用於回應於接收建立一任務之一請求而請求一超管理器建立一虛擬處理器以執行該任務之構件。可在處理器上排程虛擬處理器。舉例而言,用於請求之該構件可為圖1至圖2之客作業系統130的組件(例如,作業系統-超管理器通信機制,諸如API或共用記憶體區域)、圖1之客作業系統140的組件、用以請求一超管理器建立一虛擬處理器的一或多個其他裝置、電路、模組或指令,或其任何組合。
熟習此項技術者將進一步瞭解,結合本文中所揭示之實施例所描述的邏輯區塊、組態、模組、電路及演算法步驟可實施為電子硬體、由處理器執行之電腦軟體或兩者之組合。上文已大體在功能性方面描述了各種說明性組件、區塊、組態、模組、電路及步驟。此功能性是實施為硬體抑或處理器可執行指令取決於特定應用及強加於整個系統之設計約束。熟習此項技術者可針對每一特定應用以變化之方式實施所描述之功能性,但不應將此等實施決策解譯為導致脫離本發明之範疇。多執行緒處理器可經由具有並行地執行之多個硬體執行環境的處理器來實施,或實施為具有單一硬體執行環境(例如,對稱多處理(SMP)叢集)之多個處理器。
結合本文中所揭示之實施例而描述的方法或演算法之步驟可直接體現於硬體中、由處理器執行之軟體模組中,或兩者之組合中。軟體模組可駐留於隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、可程式化唯讀記憶體(PROM)、可抹除可程式化唯讀記憶體(EPROM)、電可抹除可程式化唯讀記憶體(EEPROM)、暫存器、硬碟、可卸除式磁碟、光碟唯讀記憶體(CD-ROM),或此項技術中已知之任何其他形式的非暫時性儲存媒體中。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊及將資訊寫入至該儲存媒體。在替代例中,儲存媒體可整合至處理器。處理器及儲存媒體可駐留於特殊應用積體電路(ASIC)中。ASIC可駐留於計算裝置或使用者終端機中。在替代例中,處理器及儲存媒體可作為離散組件駐留於計算裝置或使用者終端機中。
提供所揭示之實施例的先前描述以使熟習此項技術者能夠製作或使用所揭示之實施例。對於熟習此項技術者而言,此等實施例之各種修改將易於顯而易見,且本文中所定義之原理可在不脫離本發明之範疇的情況下應用於其他實施例。因此,本發明並非意欲限於本文中 所展示之實施例,而應符合可能與如以下申請專利範圍所定義之原理及新穎特徵相一致的最廣範疇。
100‧‧‧系統
110‧‧‧處理器
120‧‧‧超管理器
121‧‧‧優先級感知排程器
122‧‧‧虛擬處理器建立/刪除模組
123‧‧‧虛擬處理器封鎖/解除封鎖模組
130‧‧‧第一客作業系統
131‧‧‧虛擬處理器
132‧‧‧虛擬處理器
133‧‧‧虛擬處理器
134‧‧‧虛擬處理器
140‧‧‧第二客作業系統
141‧‧‧虛擬處理器
142‧‧‧虛擬處理器
143‧‧‧虛擬處理器
144‧‧‧虛擬處理器
151‧‧‧任務
152‧‧‧任務
153‧‧‧任務
154‧‧‧任務
161‧‧‧任務
162‧‧‧任務
163‧‧‧任務
164‧‧‧任務

Claims (72)

  1. 一種設備,其包含:一處理器;及一超管理器,其中該超管理器經組態以排程虛擬處理器以由該處理器執行,該等虛擬處理器中之每一者具有可存取該超管理器且對應於一對應任務之一任務優先級的一優先級,該任務優先級由一第一客作業系統指派。
  2. 如請求項1之設備,其中該超管理器可以存取與該客作業系統之任務及一第二客作業系統之任務相關聯的優先級資訊。
  3. 如請求項2之設備,其中該超管理器經組態以至少部分地基於對應於一第一任務之一第一虛擬處理器的一第一優先級與對應於一第二任務之一第二虛擬處理器的一第二優先級的一比較而判定是否排程該第一客作業系統之該第一任務或該第二客作業系統之該第二任務。
  4. 如請求項2之設備,其中該第一客作業系統及該第二客作業系統中之至少一者為一即時作業系統。
  5. 如請求項4之設備,其中該即時作業系統可以存取非即時作業系統不可用的至少一提高之任務優先級層級。
  6. 如請求項1之設備,其中該超管理器經組態以基於來自一客作業系統之一任務的一請求而封鎖或解除封鎖一虛擬處理器。
  7. 如請求項1之設備,其中該第一客作業系統之一第一任務及一第二客作業系統之一第二任務經組態以存取一共同同步基元。
  8. 如請求項7之設備,其中該共同同步基元包含儲存於由該第一客作業系統及該第二客作業系統共用的一記憶體中之一資料值, 其中該資料值儲存於該記憶體之一使用者模式位址中。
  9. 如請求項7之設備,其中當一特定客作業系統之一任務保持該同步基元時,該特定客作業系統之該任務可以讀取寫入方式存取該同步基元及另一客作業系統之至少一任務,封鎖於該同步基元上的該另一客作業系統之該任務可以唯讀方式存取該同步基元。
  10. 如請求項9之設備,其中當該同步基元在一逾時週期期間未被釋放時,在該逾時週期到期之後隨即解除封鎖該另一客作業系統之該至少一任務。
  11. 如請求項1之設備,其中該第一客作業系統之任務的優先級及一第二客作業系統之任務的優先級係選自優先級之一共同集合。
  12. 如請求項11之設備,其中該第一客作業系統具有該第一客作業系統可指派至該第一客作業系統之任務的一第一最大優先級,且其中該第二客作業系統具有該第二客作業系統可指派至該第二客作業系統之任務的一第二最大優先級。
  13. 如請求項12之設備,其中該第一最大優先級不同於該第二最大優先級。
  14. 如請求項1之設備,其中該超管理器經組態以在該第一客作業系統及一第二客作業系統中之一者的一任務封鎖時,暫時提高該第一客作業系統及該第二客作業系統中之另一者的一任務之一優先級。
  15. 一種方法,其包含:在一計算裝置之一超管理器處,接收來自一客作業系統的建立一虛擬處理器以執行一任務之一請求;建立該虛擬處理器;及排程該虛擬處理器以在該計算裝置之一硬體處理器上執行, 其中該虛擬處理器具有對應於該任務之一任務優先級的一優先級,該任務優先級由該客作業系統指派。
  16. 如請求項15之方法,其進一步包含基於來自該客作業系統之該任務的一請求而封鎖或解除封鎖該虛擬處理器。
  17. 如請求項15之方法,其進一步包含判定將該虛擬處理器排程在與一第二任務相關聯之一第二虛擬處理器之前。
  18. 如請求項17之方法,其中判定將該虛擬處理器排程在該第二虛擬處理器之前包含判定該虛擬處理器之該優先級高於該第二虛擬處理器之一第二優先級。
  19. 如請求項15之方法,其中該客作業系統之一第一任務及一第二客作業系統之一第二任務經組態以存取一共同同步基元。
  20. 如請求項19之方法,其中該共同同步基元包含儲存於由該客作業系統及該第二客作業系統共用的一記憶體中之一資料值,其中該資料值儲存於該記憶體之一使用者模式位址中。
  21. 如請求項19之方法,其中當一特定客作業系統之一任務保持該同步基元時,該特定客作業系統之該任務可以讀取寫入方式存取該同步基元及另一客作業系統之至少一任務,封鎖於該同步基元上的該另一客作業系統之該任務可以唯讀方式存取該同步基元。
  22. 如請求項21之方法,其中當該同步基元在一逾時週期期間未被釋放時,在該逾時週期到期之後隨即解除封鎖該另一客作業系統之該至少一任務。
  23. 如請求項15之方法,其中該客作業系統之任務的優先級及一第二客作業系統之任務的優先級係選自優先級之一共同集合。
  24. 如請求項15之方法,其中該客作業系統具有該客作業系統可指派至該客作業系統之任務的一第一最大優先級,且其中一第二 客作業系統具有該第二客作業系統可指派至該第二客作業系統之任務的一第二最大優先級。
  25. 如請求項24之方法,其中該第一最大優先級不同於該第二最大優先級。
  26. 如請求項15之方法,其中該超管理器經組態以在該客作業系統及一第二客作業系統中之一者的一任務封鎖時,暫時提高該客作業系統及該第二客作業系統中之另一者的一任務之一優先級。
  27. 一種設備,其包含:用於處理之構件;及可由用於處理之該構件執行的用於排程之構件,其中用於排程之該構件經組態以排程虛擬處理器以由用於處理之該構件執行,該等虛擬處理器中之每一者具有可存取用於排程之該構件且對應於一對應任務之一任務優先級的一優先級,該任務優先級由一第一客作業系統指派。
  28. 如請求項27之設備,其中用於排程之該構件係整合至一超管理器中。
  29. 一種非暫時性電腦可讀媒體,其包含在由一電腦執行時導致該電腦進行以下操作之指令:在一超管理器處,接收來自一客作業系統的建立一虛擬處理器以執行一任務之一請求;建立該虛擬處理器;及排程該虛擬處理器以用於執行,其中該虛擬處理器具有對應於該任務之一任務優先級的一優先級,該任務優先級由該客作業系統指派。
  30. 如請求項29之非暫時性電腦可讀媒體,其進一步包含在由該電 腦執行時導致該電腦基於來自該客作業系統之該任務的一請求而封鎖或解除封鎖該虛擬處理器的指令。
  31. 一種設備,其包含:一處理器;及一客作業系統,其中回應於接收建立一任務之一請求,該客作業系統請求一超管理器建立一虛擬處理器以執行該任務,該虛擬處理器可於該處理器上排程。
  32. 如請求項31之設備,其中該客作業系統依賴於該超管理器,以藉由排程對應於用於執行之任務的虛擬處理器而排程用於執行之該等任務。
  33. 如請求項31之設備,其中該客作業系統為一即時作業系統。
  34. 如請求項31之設備,其進一步包含可由該處理器執行之一第二客作業系統。
  35. 如請求項34之設備,其中該第二客作業系統之每一任務係由該第二客作業系統所請求的一對應虛擬處理器來執行。
  36. 如請求項34之設備,其中該客作業系統之一第一任務及該第二客作業系統之一第二任務經組態以存取一共同同步基元。
  37. 如請求項36之設備,其中該共同同步基元包含儲存於由該客作業系統及該第二客作業系統共用的一記憶體中之一資料值,其中該資料值儲存於該記憶體之一使用者模式位址中。
  38. 如請求項36之設備,其中當一特定客作業系統之一任務保持該同步基元時,該特定客作業系統之該任務可以讀取寫入方式存取該同步基元及另一客作業系統之至少一任務,封鎖於該同步基元上的該另一客作業系統之該任務可以唯讀方式存取該同步基元。
  39. 如請求項38之設備,其中當該同步基元在一逾時週期期間未被釋放時,在該逾時週期到期之後隨即解除封鎖該另一客作業系統之該至少一任務。
  40. 如請求項34之設備,其中該客作業系統之任務的優先級及該第二客作業系統之任務的優先級係選自優先級之一共同集合。
  41. 如請求項34之設備,其中該客作業系統具有該客作業系統可指派至該客作業系統之任務的一第一最大優先級,且其中該第二客作業系統具有該第二客作業系統可指派至該第二客作業系統之任務的一第二最大優先級。
  42. 如請求項41之設備,其中該第一最大優先級不同於該第二最大優先級。
  43. 如請求項34之設備,其中該超管理器經組態以在該客作業系統及該第二客作業系統中之一者的一任務封鎖時,暫時提高該客作業系統及該第二客作業系統中之另一者的一任務之一優先級。
  44. 一種方法,其包含:在執行於包含一超管理器及至少一處理器之一計算裝置處的一客作業系統處,接收建立一任務之一請求;及回應於建立該任務之該請求,請求該超管理器建立一虛擬處理器以執行該所請求之任務,該虛擬處理器可於該至少一處理器上排程。
  45. 如請求項44之方法,其進一步包含將一任務優先級指派至該任務,其中該虛擬處理器之一優先級對應於該任務優先級且可存取該超管理器。
  46. 如請求項44之方法,其中該客作業系統為一即時作業系統。
  47. 如請求項46之方法,其中該即時作業系統可以存取一非即時作 業系統不可用的至少一提高之任務優先級層級。
  48. 如請求項44之方法,其中該客作業系統之一第一任務及一第二客作業系統之一第二任務經組態以存取一共同同步基元。
  49. 如請求項48之方法,其中該共同同步基元包含儲存於由該客作業系統及該第二客作業系統共用的一記憶體中之一資料值,其中該資料值儲存於該記憶體之一使用者模式位址中。
  50. 如請求項48之方法,其中當一特定客作業系統之一任務保持該同步基元時,該特定客作業系統之該任務可以讀取寫入方式存取該同步基元及另一客作業系統之至少一任務,封鎖於該同步基元上的該另一客作業系統之該任務可以唯讀方式存取該同步基元。
  51. 如請求項50之方法,其中當該同步基元在一逾時週期期間未被釋放時,在該逾時週期到期之後隨即解除封鎖該另一客作業系統之該至少一任務。
  52. 如請求項44之方法,其中該客作業系統之任務的優先級及一第二客作業系統之任務的優先級係選自優先級之一共同集合。
  53. 如請求項44之方法,其中該客作業系統具有該客作業系統可指派至該客作業系統之任務的一第一最大優先級,且其中一第二客作業系統具有該第二客作業系統可指派至該第二客作業系統之任務的一第二最大優先級。
  54. 如請求項53之方法,其中該第一最大優先級不同於該第二最大優先級。
  55. 如請求項44之方法,其中該超管理器經組態以在該客作業系統及一第二客作業系統中之一者的一任務封鎖時,暫時提高該客作業系統及該第二客作業系統中之另一者的一任務之一優先級。
  56. 一種設備,其包含:一處理器;及一客作業系統,其中該客作業系統包含用於回應於接收建立一任務之一請求而請求一超管理器建立一虛擬處理器以執行該任務之構件,該虛擬處理器可於該處理器排程上。
  57. 如請求項56之設備,其中該客作業系統為一即時作業系統。
  58. 如請求項56之設備,其進一步包含一第二客作業系統。
  59. 一種非暫時性電腦可讀媒體,其包含在由一電腦執行時導致該電腦進行以下操作之指令:在一客作業系統處,接收建立一任務之一請求;及回應於建立該任務之該請求,請求一超管理器建立一虛擬處理器以執行該所請求之任務,該虛擬處理器可於一硬體處理器上排程。
  60. 如請求項59之非暫時性電腦可讀媒體,其中該客作業系統為一即時作業系統。
  61. 如請求項60之非暫時性電腦可讀媒體,其中該即時作業系統可以存取一非即時作業系統不可用的至少一提高之任務優先級層級。
  62. 一種電子裝置,其包含:一處理器;一超管理器;一第一客作業系統;及一第二客作業系統,其中該第一客作業系統之至少一任務係藉由由該第一客作業系統向該超管理器請求的一第一虛擬處理器來執行,該第一虛 擬處理器由該處理器執行,且其中該第二客作業系統之至少一任務係藉由由該第二客作業系統向該超管理器請求的一第二虛擬處理器來執行,由該處理器執行該第二虛擬處理器。
  63. 如請求項62之電子裝置,其中該第一客作業系統包含一即時作業系統,其中該第二客作業系統包含一非即時作業系統,且其中該第一客作業系統之一第一任務可以存取該第二客作業系統之一第二任務不可用的至少一提高之任務優先級層級。
  64. 如請求項62之電子裝置,其中該第一客作業系統之一第一任務及該第二客作業系統之一第二任務經組態以存取一共同同步基元。
  65. 如請求項64之電子裝置,其中該共同同步基元包含儲存於由該第一客作業系統及該第二客作業系統共用的一記憶體中之一資料值,其中該資料值儲存於該記憶體之一使用者模式位址中。
  66. 如請求項64之電子裝置,其中當一特定客作業系統之一任務保持該同步基元時,該特定客作業系統之該任務可以讀取寫入方式存取該同步基元及另一客作業系統之至少一任務,封鎖於該同步基元上的該另一客作業系統之該任務可以唯讀方式存取該同步基元。
  67. 如請求項66之電子裝置,其中當該同步基元在一逾時週期期間未被釋放時,在該逾時週期到期之後隨即解除封鎖該另一客作業系統之該至少一任務。
  68. 如請求項62之電子裝置,其中該第一客作業系統之任務的優先級及該第二客作業系統之任務的優先級係選自優先級之一共同集合。
  69. 如請求項62之電子裝置,其中該第一客作業系統具有該第一客 作業系統可指派至該第一客作業系統之任務的一第一最大優先級,且其中該第二客作業系統具有該第二客作業系統可指派至該第二客作業系統之任務的一第二最大優先級。
  70. 如請求項69之電子裝置,其中該第一最大優先級不同於該第二最大優先級。
  71. 如請求項62之電子裝置,其中該超管理器經組態以在該第一客作業系統及該第二客作業系統中之一者的一任務封鎖時,暫時提高該第一客作業系統及該第二客作業系統中之另一者的一任務之一優先級。
  72. 如請求項62之電子裝置,其中該處理器包含整合至選自由以下各者組成之群組中的一裝置之一數位信號處理器:一機上盒、一音樂播放器、一視訊播放器、一娛樂單元、一導航裝置、一通信裝置、一個人數位助理(PDA)、一固定位置資料單元及一計算裝置。
TW103109243A 2013-03-14 2014-03-14 使用具有客作業系統及虛擬處理器之超管理器之系統及方法 TWI552076B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/828,183 US9396012B2 (en) 2013-03-14 2013-03-14 Systems and methods of using a hypervisor with guest operating systems and virtual processors

Publications (2)

Publication Number Publication Date
TW201447766A true TW201447766A (zh) 2014-12-16
TWI552076B TWI552076B (zh) 2016-10-01

Family

ID=50513451

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103109243A TWI552076B (zh) 2013-03-14 2014-03-14 使用具有客作業系統及虛擬處理器之超管理器之系統及方法

Country Status (7)

Country Link
US (2) US9396012B2 (zh)
EP (1) EP2972851A1 (zh)
JP (2) JP6199477B2 (zh)
KR (1) KR20150132218A (zh)
CN (1) CN105051690B (zh)
TW (1) TWI552076B (zh)
WO (1) WO2014159444A1 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437591B2 (en) 2013-02-26 2019-10-08 Qualcomm Incorporated Executing an operating system on processors having different instruction set architectures
US10114756B2 (en) 2013-03-14 2018-10-30 Qualcomm Incorporated Externally programmable memory management unit
US9396012B2 (en) 2013-03-14 2016-07-19 Qualcomm Incorporated Systems and methods of using a hypervisor with guest operating systems and virtual processors
US9606818B2 (en) 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors
US9262192B2 (en) * 2013-12-16 2016-02-16 Vmware, Inc. Virtual machine data store queue allocation
US10248463B2 (en) * 2015-02-13 2019-04-02 Honeywell International Inc. Apparatus and method for managing a plurality of threads in an operating system
US9792139B2 (en) 2015-02-25 2017-10-17 Red Hat Israel, Ltd. Service driven virtual machine scheduling
US9367345B1 (en) * 2015-02-26 2016-06-14 Red Hat Israel, Ltd. Power efficient cross-VCPU notification by VM function
US9830187B1 (en) 2015-06-05 2017-11-28 Apple Inc. Scheduler and CPU performance controller cooperation
KR20160144688A (ko) * 2015-06-09 2016-12-19 한국전자통신연구원 큐를 이용한 smp 가상 머신 이벤트 라우터 및 방법
WO2017099772A1 (en) * 2015-12-10 2017-06-15 Siemens Aktiengesellschaft Distributed embedded data and knowledge management system integrated with plc historian
US20170177395A1 (en) * 2015-12-21 2017-06-22 Mingqiu Sun Embedded architecture based on process virtual machine
JP6971016B2 (ja) 2016-04-07 2021-11-24 オムロン株式会社 制御装置、制御方法およびプログラム
US11157517B2 (en) 2016-04-18 2021-10-26 Amazon Technologies, Inc. Versioned hierarchical data structures in a distributed data store
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10338135B2 (en) 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10282330B2 (en) * 2016-09-29 2019-05-07 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10642492B2 (en) 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US10069949B2 (en) 2016-10-14 2018-09-04 Honeywell International Inc. System and method for enabling detection of messages having previously transited network devices in support of loop detection
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
CN108182104B (zh) * 2016-12-08 2021-07-09 中国移动通信有限公司研究院 一种分配虚拟处理器的方法、设备及系统
EP3343366B1 (en) 2016-12-27 2020-12-30 OpenSynergy GmbH System and method for scheduling a plurality of guest systems and/or threads
US10423342B1 (en) 2017-03-30 2019-09-24 Amazon Technologies, Inc. Scaling events for hosting hierarchical data structures
US10671639B1 (en) 2017-03-30 2020-06-02 Amazon Technologies, Inc. Selectively replicating changes to hierarchial data structures
US10860550B1 (en) 2017-03-30 2020-12-08 Amazon Technologies, Inc. Versioning schemas for hierarchical data structures
US10956193B2 (en) * 2017-03-31 2021-03-23 Microsoft Technology Licensing, Llc Hypervisor virtual processor execution with extra-hypervisor scheduling
US10579417B2 (en) * 2017-04-26 2020-03-03 Microsoft Technology Licensing, Llc Boosting user thread priorities to resolve priority inversions
US10956220B2 (en) 2017-06-04 2021-03-23 Apple Inc. Scheduler for amp architecture using a closed loop performance and thermal controller
CN109656674B (zh) * 2017-10-11 2023-09-12 阿里巴巴集团控股有限公司 一种计算机设备、虚拟化芯片及数据传输方法
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor
US11570176B2 (en) * 2021-01-28 2023-01-31 Bank Of America Corporation System and method for prioritization of text requests in a queue based on contextual and temporal vector analysis
CN112965812A (zh) * 2021-02-09 2021-06-15 中国铁建重工集团股份有限公司 一种基于边缘计算的故障诊断方法、系统和终端
WO2023128013A1 (ko) * 2021-12-30 2023-07-06 (주)페르세우스 하이퍼바이저 시스템의 운영체제 성능 간섭 방지 장치
CN115562794B (zh) * 2022-12-07 2023-03-10 天津卓朗昆仑云软件技术有限公司 虚拟桌面系统及虚拟桌面的实现方法

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0814795B2 (ja) * 1986-01-14 1996-02-14 株式会社日立製作所 マルチプロセッサ仮想計算機システム
JPH0193830A (ja) * 1987-10-05 1989-04-12 Nec Corp 仮想計算機システムにおける割り込み制御方式
JPH0877025A (ja) * 1994-09-01 1996-03-22 Kokusai Electric Co Ltd タスクの優先度制御方法、タスクの優先度制御装置
US6026427A (en) 1997-11-21 2000-02-15 Nishihara; Kazunori Condition variable to synchronize high level communication between processing threads
US6286092B1 (en) 1999-05-12 2001-09-04 Ati International Srl Paged based memory address translation table update method and apparatus
US6516373B1 (en) 1999-06-18 2003-02-04 Samsung Electronics Co., Ltd. Common motherboard interface for processor modules of multiple architectures
US6526462B1 (en) 1999-11-19 2003-02-25 Hammam Elabd Programmable multi-tasking memory management system
US6904483B2 (en) * 2001-03-20 2005-06-07 Wind River Systems, Inc. System and method for priority inheritance
GB2378277B (en) 2001-07-31 2003-06-25 Sun Microsystems Inc Multiple address translations
JP2003099272A (ja) 2001-09-20 2003-04-04 Ricoh Co Ltd タスク切替システムと方法およびdspとモデム
US7620678B1 (en) 2002-06-12 2009-11-17 Nvidia Corporation Method and system for reducing the time-to-market concerns for embedded system design
US7117481B1 (en) 2002-11-06 2006-10-03 Vmware, Inc. Composite lock for computer systems with multiple domains
US6981072B2 (en) 2003-06-05 2005-12-27 International Business Machines Corporation Memory management in multiprocessor system
JP3922576B2 (ja) * 2003-06-27 2007-05-30 株式会社日立製作所 命令プロセッサ割り当てスケジューリング方法、該命令プロセッサ割り当てスケジューリング方法を実現する計算機システムおよびそのためのプログラム
US7134007B2 (en) 2003-06-30 2006-11-07 Intel Corporation Method for sharing firmware across heterogeneous processor architectures
US7424709B2 (en) 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US20050251806A1 (en) * 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
US7937700B1 (en) 2004-05-11 2011-05-03 Advanced Micro Devices, Inc. System, processor, and method for incremental state save/restore on world switch in a virtual machine environment
US8271976B2 (en) * 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine
JP4006428B2 (ja) * 2004-09-28 2007-11-14 株式会社東芝 計算機システム
US7299337B2 (en) 2005-05-12 2007-11-20 Traut Eric P Enhanced shadow page table algorithms
US7739476B2 (en) 2005-11-04 2010-06-15 Apple Inc. R and C bit update handling
US7971205B2 (en) * 2005-12-01 2011-06-28 International Business Machines Corporation Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status
US7945913B2 (en) * 2006-01-19 2011-05-17 International Business Machines Corporation Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
US20070283336A1 (en) 2006-06-01 2007-12-06 Michael Karl Gschwind System and method for just-in-time compilation in a heterogeneous processing environment
US7899994B2 (en) * 2006-08-14 2011-03-01 Intel Corporation Providing quality of service (QoS) for cache architectures using priority information
US8082551B2 (en) 2006-10-30 2011-12-20 Hewlett-Packard Development Company, L.P. System and method for sharing a trusted platform module
US7685409B2 (en) * 2007-02-21 2010-03-23 Qualcomm Incorporated On-demand multi-thread multimedia processor
US8789063B2 (en) 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US8250254B2 (en) 2007-07-31 2012-08-21 Intel Corporation Offloading input/output (I/O) virtualization operations to a processor
JP5014179B2 (ja) * 2008-01-25 2012-08-29 三菱電機株式会社 Os優先度変更装置及びos優先度変更プログラム
CN101499021A (zh) * 2008-01-31 2009-08-05 国际商业机器公司 在多个虚拟机上动态分配资源的方法和装置
US8245236B2 (en) * 2008-02-27 2012-08-14 International Business Machines Corporation Lock based moving of threads in a shared processor partitioning environment
US20090282198A1 (en) 2008-05-08 2009-11-12 Texas Instruments Incorporated Systems and methods for optimizing buffer sharing between cache-incoherent cores
US8135921B2 (en) 2008-06-06 2012-03-13 International Business Machines Corporation Automated paging device management in a shared memory partition data processing system
US8464011B2 (en) 2008-10-27 2013-06-11 Advanced Micro Devices, Inc. Method and apparatus for providing secure register access
US8301863B2 (en) 2008-11-17 2012-10-30 International Business Machines Corporation Recursive logical partition real memory map
US8291414B2 (en) 2008-12-11 2012-10-16 International Business Machines Corporation Shared resource service provisioning using a virtual machine manager
US20100242014A1 (en) 2009-03-17 2010-09-23 Xiaohan Zhu Symmetric multi-processor operating system for asymmetric multi-processor architecture
US8156275B2 (en) * 2009-05-13 2012-04-10 Apple Inc. Power managed lock optimization
US9152200B2 (en) 2009-06-23 2015-10-06 Hewlett-Packard Development Company, L.P. Resource and power management using nested heterogeneous hypervisors
US8479196B2 (en) 2009-09-22 2013-07-02 International Business Machines Corporation Nested virtualization performance in a computer system
EP2323035B1 (en) * 2009-11-16 2019-04-17 Red Bend Software Scheduling system
US8650426B2 (en) 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
JP5336423B2 (ja) * 2010-05-14 2013-11-06 パナソニック株式会社 計算機システム
JP5770721B2 (ja) * 2010-05-24 2015-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 情報処理システム
US8443376B2 (en) 2010-06-01 2013-05-14 Microsoft Corporation Hypervisor scheduler
US20110320766A1 (en) 2010-06-29 2011-12-29 Youfeng Wu Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type
US20120072638A1 (en) 2010-09-16 2012-03-22 Unisys Corp. Single step processing of memory mapped accesses in a hypervisor
US8307169B2 (en) 2011-03-10 2012-11-06 Safenet, Inc. Protecting guest virtual machine memory
JP5648544B2 (ja) 2011-03-15 2015-01-07 富士通株式会社 スケジューリングプログラム、および情報処理装置
US8984330B2 (en) 2011-03-28 2015-03-17 Siemens Corporation Fault-tolerant replication architecture
US9043562B2 (en) 2011-04-20 2015-05-26 Microsoft Technology Licensing, Llc Virtual machine trigger
US8677360B2 (en) * 2011-05-12 2014-03-18 Microsoft Corporation Thread-related actions based on historical thread behaviors
US20130013889A1 (en) 2011-07-06 2013-01-10 Jaikumar Devaraj Memory management unit using stream identifiers
US9250969B2 (en) 2011-08-30 2016-02-02 At&T Intellectual Property I, L.P. Tagging a copy of memory of a virtual machine with information for fetching of relevant portions of the memory
US8910158B2 (en) * 2011-12-14 2014-12-09 Intel Corporation Virtualizing interrupt priority and delivery
US20140053272A1 (en) 2012-08-20 2014-02-20 Sandor Lukacs Multilevel Introspection of Nested Virtual Machines
US9292318B2 (en) * 2012-11-26 2016-03-22 International Business Machines Corporation Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system
US9075789B2 (en) * 2012-12-11 2015-07-07 General Dynamics C4 Systems, Inc. Methods and apparatus for interleaving priorities of a plurality of virtual processors
US9052932B2 (en) * 2012-12-17 2015-06-09 International Business Machines Corporation Hybrid virtual machine configuration management
US10437591B2 (en) 2013-02-26 2019-10-08 Qualcomm Incorporated Executing an operating system on processors having different instruction set architectures
US9396011B2 (en) 2013-03-12 2016-07-19 Qualcomm Incorporated Algorithm and apparatus to deploy virtual machine monitor on demand
WO2014165040A1 (en) * 2013-03-13 2014-10-09 Veriscape, Inc. Dynamic memory management for a virtual supercomputer
US10114756B2 (en) 2013-03-14 2018-10-30 Qualcomm Incorporated Externally programmable memory management unit
US9396012B2 (en) 2013-03-14 2016-07-19 Qualcomm Incorporated Systems and methods of using a hypervisor with guest operating systems and virtual processors
US9606818B2 (en) 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors

Also Published As

Publication number Publication date
EP2972851A1 (en) 2016-01-20
US9396012B2 (en) 2016-07-19
JP6199477B2 (ja) 2017-09-20
TWI552076B (zh) 2016-10-01
US20140282507A1 (en) 2014-09-18
US10133598B2 (en) 2018-11-20
WO2014159444A1 (en) 2014-10-02
US20160299780A1 (en) 2016-10-13
CN105051690A (zh) 2015-11-11
JP2016511489A (ja) 2016-04-14
JP2017204307A (ja) 2017-11-16
CN105051690B (zh) 2018-12-07
KR20150132218A (ko) 2015-11-25

Similar Documents

Publication Publication Date Title
TWI552076B (zh) 使用具有客作業系統及虛擬處理器之超管理器之系統及方法
US10606653B2 (en) Efficient priority-aware thread scheduling
KR102641520B1 (ko) 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법
JP6320520B2 (ja) 多数の優先順キューに対するスレッドの割り当ておよびスケジューリング
JP5723968B2 (ja) 便宜的マルチタスキング
US9201693B2 (en) Quota-based resource management
US9400677B2 (en) Adaptive handling of priority inversions using transactions
US9753771B2 (en) System-on-chip including multi-core processor and thread scheduling method thereof
JP6240745B2 (ja) 複数のハイパーバイザを実行するシステムおよび方法
US20160162337A1 (en) Multiple core real-time task execution
CN107577523B (zh) 一种任务执行的方法及装置
TW201411488A (zh) 在作業系統中藉由多個程序對現場可程式設計閘陣列的使用的管理
US10013264B2 (en) Affinity of virtual processor dispatching
JP2011523142A (ja) プロセス内のスケジューラインスタンス
TW201715381A (zh) 用於在存在衝突時進行高效任務排程的方法
US11301304B2 (en) Method and apparatus for managing kernel services in multi-core system
US9618988B2 (en) Method and apparatus for managing a thermal budget of at least a part of a processing system
JP2015148909A (ja) 並列計算機システム、並列計算機システムの制御方法及び管理ノードの制御プログラム
US9672067B2 (en) Data processing method and system with application-level information awareness
Hahn et al. Improving user experience of android smartphones using foreground app-aware I/O management
CN116578418A (zh) 一种基于quartz调度框架的任务调度方法、装置、设备及介质
JP2009193260A (ja) ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法
CN114443255A (zh) 一种线程调用方法和装置
CN112379980A (zh) 自动化运维任务的优先级处理方法和处理装置
Deshmukh et al. Comparison of Open Source RTOSs Using Various Performance Parameters