新四季網

一種基於物理內存實現軟體快速切換的方法及裝置的製作方法

2023-09-20 13:56:40

專利名稱:一種基於物理內存實現軟體快速切換的方法及裝置的製作方法
技術領域:
本發明涉及計算機領域,特別是關於一種基於物理內存實現軟體快速切換的方法及裝置。
背景技術:
計算機例如包括臺式計算機、筆記本計算機、智能型行動電話、平板計算機等,在計算機上運行程序前都需要進行開機操作,所述開機操作包括基本輸入輸出系統(BIOS) 以及作業系統(OS)的啟動,在開機完畢後才允許用戶以正常的方式啟動各種程序,例如文字編輯程序(如word)、圖像編輯程序(如f lasKWiotoshop)、電子表格程序(如excel)、 演示程序(如power point)、多媒體播放程序等。但是,隨著人們需求的增長,程序越來越複雜且數量也越來越多,當要啟動執行某個程序時,由處理器從硬碟等非易失性存儲器中獲取程序文件,再在動態隨機存取內存 (DRAM)等快速存儲器中開闢運行空間,在快速存儲器中加載該程序,當關閉該程序時,系統要回收這部分被佔用的隨機存儲器空間,而在再一次啟動該程序時,還需要重複執行上述步驟過程,而由於處理器從硬碟等非易失性存儲器中獲取程序文件的過程通常較慢,這樣就造成了程序啟動時的延遲,造成效率低、用戶使用體驗差的問題。雖然磁碟等外部接口也從以前的ATA33發展到今天的SATA 6Gbit/s。但是,這還是不能徹底解決磁碟瓶頸的問題,特別是在運行一些對數據存取速度要求很高的程序,如數字影像處理或玩3D遊戲裝入紋理數據時,受磁碟存取速度的影響,屏幕畫面時常會出現延遲和停頓。在現有技術中,例如申請號為200810108323.7的中國專利,發明名稱為《用以快速開啟程序的計算機執行系統以及方法》的發明專利公開了一種通過在計算機起動時預先加載程序運行文件的方式提高程序啟動的速度,但是並無法提高海量新奇的程序運行啟動、關閉後再次啟動等情況下的啟動效率。

發明內容
本發明實施例提供一種基於物理內存實現軟體快速切換的方法及裝置,用於提高軟體再次啟動速度。—種基於物理內存實現軟體快速切換的方法,包括,在作業系統啟動時,在所述物理內存中劃分出一段內存空間,將該內存空間虛擬為設備,所述虛擬設備不受作業系統內存管理機制管理;根據觸發條件獲取進程的上下文信息和進程的識別信息,將所述進程上下文信息和識別信息遷移到所述虛擬設備中,並將遷移到虛擬設備中的進程上下文信息和識別信息備份到使用非易失性存儲器的備份存儲器中;當用戶啟動進程時,根據啟動進程的識別信息將所述虛擬設備或者備份存儲器中相應的進程上下文信息加載到作業系統的內存中,並恢復該進程各寄存器狀態執行該進程。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的方法的一個進一步的方面,所述觸發條件為按照一定的時間間隔定時獲取該軟體進程的上下文信息和進程的識別信息並遷移到存儲器中。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的方法的再一個進一步的方面,所述觸發條件為用戶指令,根據該指令獲取該軟體進程的上下文信息和進程的識別信息並遷移到存儲器中。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的方法的另一個進一步的方面,所述觸發條件為用戶進行軟體關閉的操作或計算機系統關閉的操作,根據該操作獲取該軟體進程的上下文信息和進程的識別信息並遷移到存儲器中。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的方法的另一個進一步的方面,當所述虛擬設備已滿,將所述虛擬設備內被遷移出進程的使用頻率和時間進行排隊,將最長時間沒有使用的進程上下文信息和識別信息從所述虛擬設備中刪除。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的方法的另一個進一步的方面,將遷移到虛擬設備中的進程上下文信息和識別信息備份到使用非易失性存儲器的備份存儲器中還包括,根據處理器的工作負荷或者定時將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到備份存儲器中。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的方法的另一個進一步的方面,根據處理器的工作負荷或者定時將備份存儲器中的進程上下文信息和識別信息恢復到所述虛擬設備中。本發明實施例還提供了一種基於物理內存實現軟體快速切換的裝置,包括,內存劃分單元,設備虛擬單元,觸發條件單元,進程獲取單元,進程管理器,物理內存,備份單元,備份存儲器;所述內存劃分單元,用於在計算機啟動時,在所述物理內存中劃分出一段內存空間;所述設備虛擬單元,用於將所述內存空間虛擬為設備,所述虛擬設備不受作業系統內存管理機制管理;在軟體運行時,所述觸發條件單元,用於根據預設的觸發條件向所述進程獲取單元發出指令;所述進程獲取單元,用於根據觸發條件單元發出的指令獲取進程的上下文信息和進程的識別信息,將所述進程上下文信息和識別信息遷移到所述虛擬設備中;所述備份單元,用於將遷移到虛擬設備中的進程上下文信息和識別信息備份到使用非易失性存儲器的備份存儲器中;當用戶啟動進程時,所述進程管理器根據啟動進程的識別信息將所述虛擬設備或者備份存儲器中相應的進程上下文信息加載到作業系統的內存中,並恢復該進程各寄存器狀態執行該進程。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的裝置的一個進一步的方面,還包括指令接收單元,用於接收用戶發出的遷移進程上下文信息和識別信息的指令,並將該指令發送給所述觸發條件單元,所述觸發條件單元向所述進程獲取單元發出獲取該進程上下文和識別信息並遷移到虛擬設備中的指令。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的裝置的再一個進一步的方面,還包括定時器,在預定的時間向條件觸發單元發出定時信號,所述觸發條件單元向所述進程獲取單元發出獲取該進程上下文和識別信息並遷移到虛擬設備中的指令。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的裝置的另一個進一步的方面,還包括操作監測單元,用於獲取用戶進行軟體關閉的操作或計算機系統關閉的操作,將監測結果發送給所述觸發條件單元,所述觸發條件單元向所述進程獲取單元發出獲取該進程上下文和識別信息並遷移到虛擬設備中的指令。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的裝置的另一個進一步的方面,還包括監控單元,用於當所述虛擬設備已滿,將所述虛擬設備內被遷移出進程的使用頻率和時間進行排隊,將最長時間沒有使用的進程上下文信息和識別信息從所述虛擬設備中刪除。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的裝置的另一個進一步的方面,還包括處理器監測單元,用於監測處理器的工作負荷,所述備份單元根據所述處理器監測單元的監測結果將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到備份存儲器中;或者,包括定時器,用於在預定的時間向觸發條件單元發出定時信號,所述觸發條件單元通知所述備份單元根據所述定時信號將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到備份存儲器中。根據本發明實施例所述的一種基於物理內存實現軟體快速切換的裝置的另一個進一步的方面,所述處理器監測單元還用於監測處理器的工作負荷,所述備份單元根據所述處理器監測單元的監測結果將所述備份存儲器中的進程上下文信息和識別信息恢復到所述虛擬設備中;所述定時器還用於在預定的時間向觸發條件單元發出定時信號,所述觸發條件單元通知所述備份單元根據所述定時信號將所述備份存儲器中的進程上下文信息和識別信息恢復到所述虛擬設備中。通過本發明實施例,在本地計算機或者終端中通過將進程遷移到虛擬設備中,通過用戶的控制恢復進程,即重新啟動該進程,可以大幅度提高進程的啟動速度,並且可以恢復進程在上一次關閉時的所有數據;並且通過獨立於作業系統的虛擬設備,可以減輕作業系統管理龐大地址空間的工作負荷,並且作業系統不會影響存儲空間內的進程遷移數據; 而且由於使用的是外部非易失性存儲器作為遷出進程備份的載體,因此即使計算機重新啟動,非易失性存儲器中的進程上下文信息、識別信息和特徵信息等數據也不會丟失,可以恢復到虛擬設備中。


為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1所示為本發明實施例一種基於物理內存實現軟體快速切換方法的流程圖;圖2所示為本發明實施例建立虛擬設備的方法流程圖;圖3a為現有技術中進程佔用作業系統內存的示意圖;圖北為本發明實施例將計算機系統內存劃分出一段作為虛擬設備的示意圖;圖4所示為本發明實施例嵌入式瀏覽器Konqueror進程遷出的流程圖;圖5所示為本發明實施例嵌入式瀏覽器Konqueror進程遷入的流程圖;圖6所示為本發明實施例一種基於進程遷出/遷入的軟體快速切換裝置的結構7a為現有技術中實現故障恢復的系統結構圖;圖7b為現有技術中實現負載平衡的系統結構圖;圖8所示為本發明實施例軟體快速切換的數據備份方法流程圖;圖9所示為本發明實施例啟動某個進程時將備份恢復的流程圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。如圖1所示為本發明實施例一種基於物理內存實現軟體快速切換方法的流程圖。包括,步驟101,在作業系統啟動時,在所述物理內存中劃分出一段內存空間,將該內存空間虛擬為設備,所述虛擬設備不受作業系統內存管理機制管理。可以通過在計算機的基本輸入輸出系統(BIOS)進行設置或者修改BIOS功能來實現劃分出一段內存空間並進行隱藏,該部分內存空間不受到作業系統的管理。步驟102,根據觸發條件獲取進程的上下文信息和進程的識別信息,將所述進程上下文信息和識別信息遷移到所述虛擬設備中,並將遷移到虛擬設備中的進程上下文信息和識別信息備份到使用非易失性存儲器的備份存儲器中。步驟103,當用戶啟動進程時,根據啟動進程的識別信息將所述虛擬設備或者備份存儲器中相應的進程上下文信息加載到作業系統的內存中,並恢復該進程各寄存器狀態執行該進程。在所述步驟101之中,將一段內存空間虛擬為設備,例如可以採用Ramdisk技術將計算機系統的物理內存的一部分模擬為硬碟分區,也就是說將這部分物理內存虛擬為設備,這樣可以提高這部分內存的處理速度,而且還可以降低作業系統管理內存的壓力,並且採用虛擬設備自身的數據維護機制管理遷移數據,完全隔離作業系統的內存管理機制,不受作業系統內存管理的影響。所述內存空間不包含在作業系統的內存地址空間內,是為了使得內存空間或虛擬內存不會被作業系統回收,或者被其它進程佔用,從而提高遷移進程的穩定性。在上述步驟101中還包括,所述觸發條件為按照一定的時間間隔定時獲取該軟體進程的上下文信息和進程的識別信息並遷移到存儲器中;或者,所述觸發條件為用戶指令, 根據該指令獲取該軟體進程的上下文信息和進程的識別信息並遷移到存儲器中;或者,所述觸發條件為用戶進行軟體關閉的操作或計算機系統關閉的操作,根據該操作獲取該軟體進程的上下文信息和進程的識別信息並遷移到存儲器中。在上述步驟中還包括,當所述虛擬設備已滿,將所述虛擬設備內被遷移出進程的使用頻率和時間進行排隊,將最長時間沒有使用的進程上下文信息和識別信息從所述虛擬設備中刪除。在上述步驟102中還包括,根據處理器的工作負荷或者定時將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到非易失性存儲器的備份存儲器中,或者根據處理器的工作負荷或者定時將非易失性存儲器的備份存儲器中的進程上下文信息和識別信息恢復到所述虛擬設備中。例如在計算機或者終端的處理器處於空閒狀態時將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到非易失性存儲器中,或者將非易失性存儲器的中的進程上下文信息和識別信息恢復到所述虛擬設備中,這樣可以減輕處理器的工作負荷,避免正在運行的進程受到影響。在所述步驟102中,在所述遷移中將進程的上下文信息和識別信息遷移到虛擬設備中,當一個進程在執行時,CPU的所有寄存器中的值、進程的狀態以及堆棧中的內容被稱為該進程的上下文,進程的上下文信息就是進程執行時的環境,各個變量和數據,包括所有的寄存器變量、進程打開的文件、內存信息等。一個進程的上下文可以分為三個部分用戶級上下文、寄存器上下文以及系統級上下文,其中用戶級上下文包括正文、數據、用戶堆棧以及共享存儲區;寄存器上下文包括通用寄存器、程序寄存器(IP)、處理器狀態寄存器 (EFLAGS)、棧指針(ESP);系統級上下文包括進程控制塊taSk_Struct、內存管理信息(mm_ struct、vm_area_struct> pgd、pte)、內核棧。所述識別信息包括,所述進程上下文信息遷移時的用戶名、文件名和時間等信息。例如當用戶1登錄作業系統,將word進程的上下文遷移到內存中,該進程識別信息包括當前用戶(用戶1),執行時間(2011年8月1日),文件路徑為C:\Program Files\ Microsoft0ffice\0FFICEll ;當用戶2登錄到作業系統中,也將word進程的上下文遷移到內存中,該進程識別信息包括當前用戶(用戶2),執行時間(2011年8月1日),文件路徑為C:\ProgramFiles\Microsoft 0ffice\0FFICEll ;在內存中存儲有兩個word進程的上下文,當用戶1想要啟動word進程時,可以在屏幕上顯示內存中的兩個word進程識別信息, 用戶可以選擇遷入用戶1的word進程,或者遷入用戶2的word進程,亦或者正常啟動一個 word進程。當用戶選擇遷移word進程,或者由設定的定時器發出遷移指令遷移word進程的上下文到內存中後,在內存中保存該進程的識別信息,包括執行時間(2011年8月1日); 該用戶又一次遷移了 word進程的上下文到內存中,其保存的進程識別信息為,執行時間 (2011年8月2日);在內存中有兩個word進程的上下文,當用戶想要啟動word進程時,可以在屏幕上顯示存儲器中的兩個word進程的識別信息,即兩個被存儲進程的執行時間,用戶可以選擇遷入2011年8月1日的word進程,或者遷入2011年8月2日的word進程,亦或者正常啟動一個word進程。通過上述實施例,在本地計算機或者終端通過將進程遷移到內存中,並將遷移出的進程備份到非易失性存儲器中,在用戶的控制下恢復進程,即重新啟動該進程,可以大幅度提高進程的啟動速度,並且可以恢復進程在上一次關閉時的所有數據;並且通過獨立於作業系統內存的內存空間,可以減輕作業系統管理龐大地址空間的工作負荷,並且作業系統不會影響存儲空間內的進程遷移數據;而且由於使用的是外部非易失性存儲器作為遷出進程的備份存儲載體,因此即使計算機重新啟動,非易失性存儲器中的進程上下文信息、識別信息等數據也不會丟失,可以在用戶的控制下或者在處理器空閒時將進程的上下文和識別信息恢復到虛擬設備中,並且外部非易失性存儲器的存儲空間很大,可以存儲用戶的很多進程數據,如果通過高速網絡可以將遷出的進程數據存儲於位於網絡的存儲器中,這樣的進程數據的安全係數更高。如圖2所示為本發明實施例建立虛擬設備的方法流程圖。包括步驟201,硬體層加載啟動加載器(boot loader) 0步驟202,啟動加載器檢測計算機系統物理內存大小。步驟203,加載內存劃分單元。步驟204,內存劃分單元將計算機系統中的內存劃分出一段,將劃分出來的內存進行隱藏,並將這部分隱藏內存的地址,即接口信息,進行存儲。其中,沒有劃分出來的內存由作業系統使用,劃分出來的內存將交由設備虛擬單元將這部分內存虛擬為設備。如圖3a所示為現有技術中進程佔用作業系統內存的示意圖,圖北為本發明實施例將計算機系統內存劃分出一段作為虛擬設備的示意圖,可以看出,在現有技術中佔用的是作業系統內存,受到作業系統的內存管理機制管理,在進程關閉後就會被其它進程佔用,而在本發明中的劃分內存中,這部分的內存是獨立於作業系統的,不受作業系統的內存管理機制管理,因此不會被其它進程佔用。步驟205,引導作業系統啟動。步驟206,作業系統初始化。步驟207,作業系統加載設備虛擬單元驅動。步驟208,所述設備虛擬單元將所述隱藏的內存虛擬成設備。步驟209,作業系統加載所述虛擬設備的初始化程序。步驟210,作業系統將該虛擬設備初始化為指定格式的設備,例如Swap格式,包括單不限於Swap格式。步驟211,檢測該虛擬設備的接口是否可用,即檢測上述接口信息中的內存地址是否可用,如果不可用則報錯,否則進入步驟212。步驟212,作業系統加載該虛擬設備。如圖4所示為本發明實施例嵌入式瀏覽器Konqueror進程遷出的流程圖。包括步驟401,用戶關閉嵌入式瀏覽器Konqueror進程時,作業系統發出關閉進程指令。或者用戶可以通過選項發出遷出某個進程的指令。步驟402,獲取該被關閉進程的上下文信息和進程的識別信息,在本例中可以提取進程執行時間2011年8月1日22:00作為該進程的識別信息。具體的,觸發條件單元獲取用戶關閉進程的指令,進程獲取單元根據該指令獲取進程的上下文信息和進程的識別信息,通知進程管理器是嵌入式瀏覽器Konqueror進程關閉。步驟403,通過內存的接口保存進程上下文信息、識別信息和各寄存器狀態到虛擬設備,在本例中可以記錄進程執行時間2011年8月1日22:00。步驟404,作業系統關閉進程。
在上述步驟401和402中,也可以通過定時器等方式在預定的時間由進程獲取單元獲得當前用戶正在操作的進程上下文信息,定時的保存進程上下文信息、識別信息,這樣做可以隨時保持進程的工作狀態,重新遷入該進程時可以由用戶選擇遷入的工作狀態,並且,本發明實施例保存進程本身的工作狀態,包括其使用的數據的狀態,在進程遷入時恢復成遷出時的狀態,而不是現有技術中一些文字處理軟體保存數據文件的變化日誌,根據數據文件不同版本信息恢復以前版本。如圖5所示為本發明實施例嵌入式瀏覽器Konqueror進程遷入的流程圖。在虛擬設備中保存有兩個識別信息為Konqueror的進程上下文,一個進程的執行時間是2011年8月1日22:00,另一個進程執行時間為2011年8月1日20:00。包括步驟501,用戶啟動嵌入式瀏覽器Konqueror進程,作業系統準備運行進程。步驟502,進程管理器在內存中搜索是否有相應的Konqueror進程存在,如果有則進入步驟503,否則進入步驟504。步驟503,進程管理器在虛擬設備中匹配出兩個識別信息為Konqueror的進程,提示單元將該進程的兩次執行時間提取出來顯示在屏幕上,在屏幕的選擇界面上還可以包括一個重新啟動一個Konqueror的進程的選項,供用戶選擇。步驟504,按照現有技術中那樣正常啟動嵌入式瀏覽器Konqueror進程,其中向作業系統內存中加載數據等步驟均為現有技術,在此不再贅述。步驟505,用戶根據屏幕提示的進程執行時間,選擇了 2011年8月1日20:00的進程。步驟506,進程管理器通過與虛擬設備的接口從內存中加載執行時間為2011年8 月1日20:00的嵌入式瀏覽器Konqueror進程的上下文到作業系統的內存中。步驟507,進程管理器恢復該進程各寄存器狀態。步驟508,作業系統執行該進程。以上步驟506和507即為進程重構過程。如圖6所示為本發明實施例一種基於進程遷出/遷入的軟體快速切換裝置的結構圖。包括內存劃分單元601,設備虛擬單元602,觸發條件單元603,進程獲取單元604, 進程管理器605,物理內存606,備份單元607,備份存儲器608 ;所述內存劃分單元601,用於在計算機啟動時,在所述物理內存606中劃分出一段內存空間;所述設備虛擬單元602,用於將所述內存空間虛擬為設備,所述虛擬設備不受作業系統內存管理機制管理;在軟體運行時,所述觸發條件單元603,用於根據預設的觸發條件向所述進程獲取單元604發出指令;所述進程獲取單元604,用於根據觸發條件單元603發出的指令獲取進程的上下文信息和進程的識別信息,將所述進程上下文信息和識別信息遷移到所述虛擬設備中;所述備份單元607,用於將遷移到虛擬設備中的進程上下文信息和識別信息備份到非易失性存儲器的備份存儲器608中;當用戶啟動進程時,所述進程管理器605根據啟動進程的識別信息將所述虛擬設備或者備份存儲器608中相應的進程上下文信息加載到作業系統的內存中,並恢復該進程各寄存器狀態執行該進程。所述存儲劃分單元601還可以通知所述進程管理器605所述存儲空間的地址信
肩、ο所述裝置還包括,指令接收單元609,用於接收用戶發出的遷移進程上下文信息和識別信息的指令,並將該指令發送給所述觸發條件單元603,所述觸發條件單元603向所述進程獲取單元604發出獲取該進程上下文和識別信息並遷移到虛擬設備中的指令。所述裝置還包括,定時器610,在預定的時間向條件觸發單元發出定時信號,所述觸發條件單元603向所述進程獲取單元604發出獲取該進程上下文和識別信息並遷移到虛擬設備中的指令。所述裝置還包括,操作監測單元611,用於獲取用戶進行軟體關閉的操作或計算機系統關閉的操作,將監測結果發送給所述觸發條件單元603,所述觸發條件單元603向所述進程獲取單元604發出獲取該進程上下文和識別信息並遷移到虛擬設備中的指令。所述裝置還包括,監控單元612,用於當所述虛擬設備已滿,將所述虛擬設備內被遷移出進程的使用頻率和時間進行排隊,將最長時間沒有使用的進程上下文信息和識別信息從所述虛擬設備中刪除。所述裝置還包括,處理器監測單元613,用於監測計算機或者終端處理器的工作負荷,所述備份單元607根據所述處理器監測單元613的監測結果將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到非易失性存儲器的備份存儲器608中;該備份單元 607還可以根據所述處理器監測單元的監測結果將所述備份存儲器608中的進程上下文信息和識別信息恢復到所述虛擬設備中或者,所述定時器610,還可以用於在預定的時間向觸發條件單元603發出定時信號,所述觸發條件單元603通知所述備份單元607根據所述定時信號將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到非易失性存儲器的備份存儲器608中;或者所述觸發條件單元603還可以通知所述備份單元607根據所述定時信號將所述備份存儲器608 中的進程上下文信息和識別信息恢復到所述虛擬設備中。通過上述實施例,通過進程獲取單元可以獲取用戶指定的進程,即不是所有的進程都被遷移,而只有用戶指定的進程被遷移,以便於將來重新啟動該進程時可以提高進程的切換速度;所述進程管理器是通過用戶的指令進行進程遷移的操作,並不像現有技術中那樣,由於故障或者負載平衡而進行的遷移,可控性強,並且在重新啟動該進程時,從虛擬設備中將進程加載到作業系統內存中,可以明顯提高進程啟動速度,特別是對大型軟體或者遊戲來說,每一次啟動都需要很差時間加載,而通過在現有的計算機系統或者終端系統中可以提高再次啟動大型軟體或者遊戲時的速度,縮短用戶等待時間,提升用戶體驗。在現有技術中進程遷移主要由兩個方面,其中之一就是故障恢復中的進程遷移, 其利用了如圖7a所示的系統結構圖實現了故障恢復中的進程遷移,另一種就是負載平衡中進程遷移,其利用了如圖7b所示的系統結構圖實現了負載平衡中的進程遷移。在圖7a中,進程管理器定期保存本地CPU或者計算節點進程重構必須的上下文信息,任務管理器發現CPU或者計算節點故障後,任務管理器選擇其它CPU或者計算節點,並激活進程遷移信息提取模塊,進程遷移信息提取模塊提取重構進程必須的上下文信息,所述進程遷移傳輸模塊將所述重構信息傳送給目標CPU或者計算節點,由進程管理器進行進程的重構。在圖7b中,負載監視器定期檢查本節點的負載,並與負載收集器中的節點信息比較,決定是否遷移,當負載達到門限值時,負載監視器激活進程遷移選擇模塊進行進程的選擇,激活進程遷移信息提取模塊提取遷移進程必須的上下文信息,進程遷移傳輸模塊將進程的重構信息傳送給目標CPU或者計算節點,由進程管理器進行進程的重構。如圖8所示為本發明實施例軟體快速切換的數據備份方法流程圖。步驟801,當定時器到時通知進程獲取單元進行進程遷出,進程獲取單元獲取用戶指定進程的上下文信息和識別信息,所述識別信息可以為進行遷出操作的時間。步驟802,進程獲取單元將所述進程的上下文信息、識別信息存儲於虛擬設備中。步驟803,所述備份單元將所述虛擬設備中的進程上下文信息、識別信息備份到非易失性存儲器(例如硬碟,或者網絡存儲器等)的備份存儲器中。作為本實施例的一個進一步的方面,當計算機或者終端在重新啟動後,即內存中的進程數據丟失,備份單元根據定時器定時發送來的指令,將備份存儲器中的進程上下文信息、識別信息恢復到虛擬設備中。如圖9所示為本發明實施例啟動某個進程時將備份恢復的流程圖。步驟901,用戶選擇啟動某個進程。步驟902,進程管理器在虛擬設備中搜索是否有該進程。步驟903,如果在虛擬設備中沒有該進程,則進程管理器在備份存儲器中搜索該進程。步驟904,如果在備份存儲器中也沒有該進程,則進程管理器正常啟動該進程。步驟905,如果在備份存儲器中有該進程,則備份單元將該進程上下文信息、識別信息恢復到虛擬設備中。作為可選的,備份單元可以通知進程管理器將所述進程的上下文信息加載到作業系統的內存中,並恢復該進程各寄存器狀態。步驟906,進程管理器將所述進程的上下文信息加載到作業系統的內存中,並恢復該進程各寄存器狀態。通過本發明實施例,通過將一部分內存進行隱藏並虛擬為設備,使得作業系統不能對該部分內存進行管理,並且將遷移出的進程保存於該虛擬設備中,進程的指定和遷移均是在用戶的控制下進行的,可以實現對特定的進程快速切換的目的,而且進程遷入也是將進程頁面中的應用代碼和數據同時遷入到作業系統的內存中,CPU的狀態被保持,應用頁在中斷點開始運行,可以應用於單核CPU的計算機系統,也可以應用於多核CPU的計算機系統;並且可以明顯提高再次啟動大型軟體或者遊戲時的速度,縮短用戶等待時間,提升用戶體驗;而且由於使用的是外部非易失性存儲器作為遷出進程的備份載體,因此即使計算機重新啟動,非易失性存儲器中的進程上下文信息、識別信息和特徵信息等數據也不會丟失, 並且可以在用戶的控制下或者CPU空閒時恢復到虛擬設備或者作業系統的內存中,如果通過高速網絡可以將遷出的進程數據存儲於位於網絡的存儲器中,這樣的進程數據的安全係數更高。以上所述的具體實施方式
,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施方式
而已,並不用於限定本發明的保護範圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種基於物理內存實現軟體快速切換的方法,其特徵在於包括,在作業系統啟動時,在物理內存中劃分出一段內存空間,將該內存空間虛擬為設備,所述虛擬設備不受作業系統內存管理機制管理;根據觸發條件獲取進程的上下文信息和進程的識別信息,將所述進程上下文信息和識別信息遷移到所述虛擬設備中,並將遷移到虛擬設備中的進程上下文信息和識別信息備份到使用非易失性存儲器的備份存儲器中;當用戶啟動進程時,根據啟動進程的識別信息將所述虛擬設備或者備份存儲器中相應的進程上下文信息加載到作業系統的內存中,並恢復該進程各寄存器狀態執行該進程。
2.根據權利要求1所述的一種基於物理內存實現軟體快速切換的方法,其特徵在於, 所述觸發條件為按照一定的時間間隔定時獲取該軟體進程的上下文信息和進程的識別信息並遷移到存儲器中。
3.根據權利要求1所述的一種基於物理內存實現軟體快速切換的方法,其特徵在於, 所述觸發條件為用戶指令,根據該指令獲取該軟體進程的上下文信息和進程的識別信息並遷移到存儲器中。
4.根據權利要求1所述的一種基於物理內存實現軟體快速切換的方法,其特徵在於, 所述觸發條件為用戶進行軟體關閉的操作或計算機系統關閉的操作,根據該操作獲取該軟體進程的上下文信息和進程的識別信息並遷移到存儲器中。
5.根據權利要求1-4任意一項所述的一種基於物理內存實現軟體快速切換的方法,其特徵在於,當所述虛擬設備已滿,將所述虛擬設備內被遷移出進程的使用頻率和時間進行排隊,將最長時間沒有使用的進程上下文信息和識別信息從所述虛擬設備中刪除。
6.根據權利要求1-4任意一項所述的一種基於物理內存實現軟體快速切換的方法,其特徵在於,將遷移到虛擬設備中的進程上下文信息和識別信息備份到使用非易失性存儲器的備份存儲器中還包括,根據處理器的工作負荷或者定時將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到備份存儲器中。
7.根據權利要求1-4任意一項所述的一種基於物理內存實現軟體快速切換的方法,其特徵在於,根據處理器的工作負荷或者定時將備份存儲器中的進程上下文信息和識別信息恢復到所述虛擬設備中。
8.一種基於物理內存實現軟體快速切換的裝置,其特徵在於包括,內存劃分單元,設備虛擬單元,觸發條件單元,進程獲取單元,進程管理器,物理內存, 備份單元,備份存儲器;所述內存劃分單元,用於在計算機啟動時,在所述物理內存中劃分出一段內存空間;所述設備虛擬單元,用於將所述內存空間虛擬為設備,所述虛擬設備不受作業系統內存管理機制管理;在軟體運行時,所述觸發條件單元,用於根據預設的觸發條件向所述進程獲取單元發出指令;所述進程獲取單元,用於根據觸發條件單元發出的指令獲取進程的上下文信息和進程的識別信息,將所述進程上下文信息和識別信息遷移到所述虛擬設備中;所述備份單元,用於將遷移到虛擬設備中的進程上下文信息和識別信息備份到使用非易失性存儲器的備份存儲器中;當用戶啟動進程時,所述進程管理器根據啟動進程的識別信息將所述虛擬設備或者備份存儲器中相應的進程上下文信息加載到作業系統的內存中,並恢復該進程各寄存器狀態執行該進程。
9.根據權利要求8所述的一種基於物理內存實現軟體快速切換的裝置,其特徵在於還包括,指令接收單元,用於接收用戶發出的遷移進程上下文信息和識別信息的指令,並將該指令發送給所述觸發條件單元,所述觸發條件單元向所述進程獲取單元發出獲取該進程上下文和識別信息並遷移到虛擬設備中的指令。
10.根據權利要求8所述的一種基於物理內存實現軟體快速切換的裝置,其特徵在於還包括,定時器,在預定的時間向條件觸發單元發出定時信號,所述觸發條件單元向所述進程獲取單元發出獲取該進程上下文和識別信息並遷移到虛擬設備中的指令。
11.根據權利要求8所述的一種基於物理內存實現軟體快速切換的裝置,其特徵在於還包括,操作監測單元,用於獲取用戶進行軟體關閉的操作或計算機系統關閉的操作,將監測結果發送給所述觸發條件單元,所述觸發條件單元向所述進程獲取單元發出獲取該進程上下文和識別信息並遷移到虛擬設備中的指令。
12.根據權利要求8-11任意一項所述的一種基於物理內存實現軟體快速切換的裝置, 其特徵在於還包括監控單元,用於當所述虛擬設備已滿,將所述虛擬設備內被遷移出進程的使用頻率和時間進行排隊,將最長時間沒有使用的進程上下文信息和識別信息從所述虛擬設備中刪除。
13.根據權利要求8所述的一種基於物理內存實現軟體快速切換的裝置,其特徵在於還包括處理器監測單元,用於監測處理器的工作負荷,所述備份單元根據所述處理器監測單元的監測結果將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到備份存儲器中;或者,包括定時器,用於在預定的時間向觸發條件單元發出定時信號,所述觸發條件單元通知所述備份單元根據所述定時信號將所述遷移到虛擬設備中的進程上下文信息和識別信息備份到備份存儲器中。
14.根據權利要求8所述的一種基於物理內存實現軟體快速切換的裝置,其特徵在於還包括,處理器監測單元,用於監測處理器的工作負荷,所述備份單元根據所述處理器監測單元的監測結果將所述備份存儲器中的進程上下文信息和識別信息恢復到所述虛擬設備中;或者,包括定時器,用於在預定的時間向觸發條件單元發出定時信號,所述觸發條件單元通知所述備份單元根據所述定時信號將所述備份存儲器中的進程上下文信息和識別信息恢復到所述虛擬設備中。
全文摘要
本發明涉及計算機領域,用於提高軟體再次啟動速度,本發明實施例提供了一種基於物理內存實現軟體快速切換的方法及裝置,其中方法包括在作業系統啟動時,將物理內存中的一部分內存空間虛擬為設備;根據觸發條件將所述進程上下文信息和識別信息遷移到所述虛擬設備中並備份到備份存儲器中;當用戶啟動進程時,根據啟動進程的識別信息將所述虛擬設備或者備份存儲器中相應的進程上下文信息加載到作業系統的內存中,並恢復該進程各寄存器狀態執行該進程。通過上述實施例,可以在獨立於作業系統內存的虛擬設備中保存進程遷移數據,並且提供了非易失性存儲器作為備份存儲器可以使得虛擬設備中的數據丟失後及時得到恢復。
文檔編號G06F9/445GK102467404SQ20111031148
公開日2012年5月23日 申請日期2011年10月14日 優先權日2011年10月14日
發明者喻子達, 王襲, 翟翌立, 馬國軍 申請人:海爾集團公司, 海爾集團技術研發中心

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀