[發明專利]一種任務處理的方法和虛擬機有效
| 申請號: | 201210543870.4 | 申請日: | 2012-12-14 |
| 公開(公告)號: | CN103049334A | 公開(公告)日: | 2013-04-17 |
| 發明(設計)人: | 顧磷;馬志強;盛中華;文劉飛 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F9/455 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 黃厚剛 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 任務 處理 方法 虛擬機 | ||
技術領域
本發明涉及計算機技術領域,特別涉及一種任務處理的方法和虛擬機。
背景技術
在計算機技術領域中,虛擬技術是一種通過組合或分割現有的計算機資源,使得這些資源表現為一個或多個操作環境,從而提供優于原有資源配置的訪問方式的技術。
現有技術中通過軟件的方式將多個X86系統聚合成一個虛擬的對稱多處理機。使用一個虛擬機監視器或者虛擬機仿真器實現單個結點的物理資源的虛擬化,提供統一的運行環境。虛擬機對內存的管理是通過軟件的方式實現的,將所有物理資源中的內存在邏輯上視為一個整體的內存,內存是按照虛擬頁面劃分的。當虛擬機在執行任務時,會隨機選取等待隊列中的任務,然后按照任務涉及的相關數據所需的內存空間,在邏輯內存中為任務按順序的分配內存地址,是一種按需分配內存的機制。
在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
由于虛擬機系統是按照頁面來劃分是否存在數據沖突的,當兩個不同的任務所涉及的數據被分配在同一個虛擬頁面之后,兩個任務同時訪問該虛擬頁面中的兩個不同地址,虛擬機會認為兩個任務訪問的是同一個數據,因此會認為兩個任務發生了數據共享沖突,會中端兩個任務的執行過程,而事實上并未發生真正的共享沖突,即產生了假共享現象,影響任務的執行。
發明內容
為了解決現有技術的問題,本發明實施例提供了一種任務處理的方法和虛擬機。所述技術方案如下:
第一方面,本發明實施例提供的一種任務處理的方法,包括:
當接收到虛擬指令層下發的創建任務的指令時,為所述任務選取一個用于執行所述任務的空閑資源,其中所述指令中至少包括所述任務運行時的起始地址,所述任務涉及的全局變量的地址信息和同步變量的地址信息;
根據所述全局變量的地址信息獲取與所述全局變量地址信息對應的全局變量狀態信息;
根據全局變量狀態信息為全局變量創建本地全局變量快照;
根據所述本地全局變量快照在選取的所述空閑資源中預先分配的私有內存空間中執行所述任務;
當所述任務執行完畢后,獲取所述全局變量對應的新的全局變量快照,根據所述本地全局變量快照以及所述新的全局變量快照獲取已更新的全局變量;
判斷同步任務等待隊列中的待執行任務的同步變量是否包括了現在已更新的全局變量,如果有,把這個任務放入執行任務等待隊列;
其中所述同步任務等待隊列中的任務是等待同步變量觸發的任務所在的隊列,當同步任務等待隊列中的任務的同步變量觸發后,將任務放入所述執行任務等待隊列中排隊等待調度;所述執行任務等待隊列中的任務是等待調度執行的任務所在的隊列。
在第一方面的第一種可能的實現方式中,所述判斷同步任務等待隊列中的待執行任務的同步變量是否包括了現在已更新的全局變量,如果有,把這個任務放入執行任務等待隊列,包括:
在執行任務等待隊列中選取一個第一特定任務由第一空閑資源來運行,其中,所述第一特定任務涉及的全局變量的地址信息與當前執行的所有任務所涉及的全局變量的地址信息不沖突;或,
在執行任務等待隊列中選取一個第二特定任務由第二空閑資源來運行,其中,所述第二特定任務涉及的全局變量的地址信息與第二空閑資源已執行完畢的任務所涉及的全局變量的地址信息盡可能多的相同或相近,以增加數據親和性。
在第一方面的第二種可能的實現方式中,所述全局變量狀態信息包括所述全局變量的內存地址,創建時間以及版本標記,所述根據全局變量狀態信息為全局變量創建全局變量快照包括:根據所述全局變量狀態信息,將所述全局變量狀態信息進行復制,生成所述全局變量的全局變量快照;
相應的,所述根據所述本地全局變量快照以及所述新的全局變量快照獲取已更新的全局變量包括:
判斷所述本地全局變量快照中的版本標記與所述新的全局變量快照的版本標記是否相同,如果相同則表示所述全局變量未被其他任務更新;如果不相同則表示所述全局變量已被其他任務更新。
根據第一方面的第二種可能的實現方式,在第三種可能的實現方式中,所述根據所述本地全局變量快照以及所述新的全局變量快照獲取已更新的全局變量之后,所述方法還包括:
當全局變量未被其他任務更新時,在執行所述任務的資源中的公用內存空間中保存所述本地全局變量快照,并更新全局變量的內存地址為執行所述任務的資源中的公用內存空間中保存所述全局變量快照的內存地址,將所述本地全局變量快照更新為所述本地全局變量快照。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210543870.4/2.html,轉載請聲明來源鉆瓜專利網。





