新四季網

一種嵌入式系統及其應用進程的休眠與喚醒方法

2023-10-30 05:24:02

專利名稱:一種嵌入式系統及其應用進程的休眠與喚醒方法
技術領域:
本發明涉及一種嵌入式系統技術領域,特別是涉及一種嵌入式系統及其應用進程的休眠與喚醒方法。
背景技術:
進程是作業系統中一個非常重要的概念,在層次結構的作業系統中,進程是系統分配資源的基本單位,也是在多任務處理下,進程CPU調度的基本單位。進程是程序在一個數據集上的運行過程,是系統進行資源分配和調度的基本單位,而處理器若要對進程識別並進行管理,就需要有描述進程存在並能夠反映起變化的物理實體,即進程的靜態描述。進程的靜態描述有三個部分組成,PCB (進程控制塊),程序段和數據結構集。PCB包含進程的描述信息,控制信息以及資源信息,系統根據PCB感知進程的存在並掌握進程的狀態以達到控制進程活動的目的。進程的程序部分描述進程所要完成的功能。而數據集是進程不可 缺少的工作區的操作對象。對進程的管理是作業系統中最重要的功能之一。進程從創建到撤銷,要經歷不同的階段,從系統資源角度出發,進程通常有3種基本狀態I)就緒狀態(Ready):這是進程已具有除處理器以外的其他資源,因為處理器資源的獨佔性,所以暫時不能運行,需要等其他進程釋放處理器資源。2)運行狀態(Running):進程獲得處理器資源,其程序正在執行,單處理器系統中,只有一個進程處於運行狀態;在沒有其他進程可以執行時(如所有進程都在阻塞狀態),通常會自動執行系統的空閒進程。3)阻塞狀態(Blocked):進程因等待某種事件的發生而暫時不能運行,如等待設備的中斷、等待其他進程的信號等,在這種狀態下,即使處理器空閒也無法使用。在作業系統中,對進程的調度是最重要的工作之一。每個處理器上同時只能處理一個進程,為了合理的利用系統資源,通常會採用分時執行的辦法讓多個進程共享存儲器資源,將處理器的執行時間分成較短間隔的時間段,每個進程按照分配到的時間段來運行,當時間段到了,就比換下一個進程執行,並有作業系統決定要執行的下一個進程。由於進程調度的存在,在進程的生命期裡,進程所處的狀態總是隨著外界條件的變化和自身的推進而不斷變化的。進程的調度涉及到進程間狀態的轉換涉、當前進程狀態的保存、新進程調度運行以及進程間的切換。為了便於管理、控制進程,系統設置的一個專門的數據結構一PCB,用它來記錄進程的外部特徵,描述進程的運動變化過程。系統調度時利用PCB來控制和管理各個進程的所有信息,所以PCB是系統感知進程存在的唯一標誌。進程與PCB是一一對應的。一般情況下,PCB中包含以下內容(I)進程標識符進程標識符是系統內部用於標識一個進程所賦予的編號,稱為進程的內部名。(2)處理機的信息,即進程由執行狀態變為其他狀態時保存的CPU現場信息,以便當該進程再次變成就緒狀態,被調度程序分配處理機時恢復信息,使進程能繼續正常執行。通常包括程序狀態字PSW、通用寄存器的內容(累加器和變址器的內容)、程序計數器的內容和用戶棧的指針等。(3)進程調度信息包括進程狀態,進程的優先級,進程調度所需的其它信息,事件等信息(4)進程控制信息包括程序的數據的地址,資源清單,進程同步和通信機制,連結指針等信息。通過對PCB的操作,系統為有關進程分配資源從而使得有關進程得以被調度執行;而完成進程所要求功能的程序段的有關地址,以及程序過程中因某種原因被停止執行後的現場信息也都在PCB中。最後,當進程執行結束後,則通過釋放PCB來釋放進程所佔用的各種資源。

基於上述進程特性、進程狀態轉換、系統調用的原理特性,傳統嵌入式系統在進程狀態轉換、系統調用過程中,進程的當前工作狀態的相對應的PCB控制塊信息或者保存在內存DRAM中或者保存在交換分區中,當系統掉電時或關閉時,系統中那些正在運打的進程或掛起的進程的相對應的PCB控制塊信息將全部丟失,當系統重新啟動進程或再次啟動被強制關閉的應用進程時,都需要基於文件系統中存放的應用程式的存儲代碼啟動該應用進程,同時要恢復該進程上次關閉前的工作狀態時需要經過多步重複性操作從而帶來內存浪費、時效性差等問題;現有的嵌入式系統具有休眠喚醒功能,一定程度上可實現基於系統的休眠喚醒實現進程工作狀態的快速恢復,加快進程的啟動,然而,系統休眠喚醒是以系統為單位來降低系統的功耗,系統休眠時需要保存內存中所有進程的PCB控制塊信息,同時需要較大的非易失存儲器空間來存儲系統休眠時的掛起進程是相關備份數據,雖然能保證系統下電後能基於非易失存儲器系統休眠時保存的備份信息快速恢復到進程休眠前的工作狀態,但是以系統休眠時對內存中所有進程PCB控制塊信息備份及犧牲較大容量的非易失存儲器換來的。鑑於此,如何基於進程級別的管理進一步降低嵌入式系統的功耗及系統休眠、喚醒過程中的工作量實現應用程式快速恢復到掛起前的工作狀態已成為一個亟待解決的問題。

發明內容
鑑於以上所述現有技術的缺點,本發明的目的在於提供一種嵌入式系統及其應用進程的休眠與喚醒方法,用於解決現有技術中嵌入式系統進程休眠過程中存在數據備份過大造成內存浪費、以及喚醒進程時裝載工作量相對較大、系統運行速度慢以及時效性差的問題。為實現上述目的及其他相關目的,本發明提出一種嵌入式系統的應用進程休眠與喚醒方法,所述嵌入式系統至少包括CPU控制器、非易失主存、以及DRAM內存,其中,所述非易失主存由引導程序存儲區、內核存儲區、文件系統存儲區、以及進程鏡像備份區組成,其特徵在於將所述進程鏡像備份區劃分為鏡像索引區和鏡像數據保存區;應用進程掛起,則該進程釋放CPU資源進入休眠狀態;
所述嵌入式系統應用進程休眠時,將該進程掛起到所述非易失存儲器,即該進程在所述DRAM內存中相對應的進程控制塊信息被置換出DRAM內存;或者所述進程的當前工作狀態相對應的進程控制塊信息仍保留在DRAM內存中;或者關閉該進程,並釋放所佔用DRAM內存空間;應用進程喚醒,則該進程獲得CPU資源並恢復工作狀態;所述嵌入式系統應用進程喚醒時,基於所述DRAM內存中保存的當前掛起的所述
進程相對應的進程控制塊信息喚醒該進程;或基於所述進程鏡像備份區中的進程鏡像備份數據喚醒所掛起的進程,即基於所述進程索引區中保存的該進程的索引記錄將所述鏡像數據保存區中保存的該進程的進程控制塊備份數據加載到DRAM內存以快速啟動該進程,並釋放該進程在所述進程鏡像備份區中保存的索引記錄以及進程控制塊備份數據信息;或直接重新啟動一進程,即當DRAM內存中及鏡像備份區均沒有該進程掛起時的相關存儲信息時,直接基於所述進程對應的應用程式的存儲代碼啟動該進程。可選地,所述嵌入式系統的應用進程喚醒時,至少包括以下步驟I)系統喚醒進程命令;2)掃描所述DRAM內存中進程信息保存情況;3)所述DRAM內存中是否保存有該進程掛起前工作狀態相對應的進程控制塊相關信息,若是,則進入下一步驟,若否,則轉至步驟5);4)基於所述DRAM內存中的該進程掛起前的進程控制塊相關信息喚醒該進程,快速恢復到該進程掛起前的工作狀態,轉至步驟13);5)掃描所述進程鏡像備份區中掛起的所述進程鏡像數據備份情況;6)判斷所述鏡像索引區內是否保存有該進程的鏡像索引記錄,若是,則轉至步驟
8),若否,則進入下一步驟;7)基於文件存儲區中保存的該進程代碼直接重新啟動該進程,轉至步驟13);8)判斷所述DRAM內存中是否有可用內存空間來加載所述進程鏡像備份數據,若是,則轉至步驟10),若否,則進入下一步驟;9)將所述DRAM內存中掛起時間超過一定時間段的進程的進程控制塊相關信息備份到所述鏡像備份區中並釋放其所佔DRAM內存,或直接將某些使用不頻繁的應用進程關閉以釋放其所佔內存,以獲得充足的內存空間;10)基於所述鏡像索引區內該進程的鏡像索引記將所述鏡像數據保存區內該進程的進程控制塊鏡像備份數據加載至所述DRAM內存中;11)基於加載至所述DRAM內存的該進程的鏡像備份數據喚醒該進程,快速恢復到進程掛起前的工作狀態;12)釋放所述鏡像索引區中保存的該進程的索引記錄信息、以及所述鏡像數據保存區中保存的該進程的進程控制塊鏡像備份數據;13)喚醒或啟動進程。可選地,所述休眠包括系統級休眠和單進程休眠。所述系統級休眠為嵌入式系統的休眠或關閉,並使DRAM內存中運行的應用進程進入休眠狀態;所述單進程休眠為單個應用進程進入休眠狀態。可選地,所述嵌入式系統系統級休眠時,所述休眠過程至少包括以下步驟
I)系統關閉或休眠命令;2)按進程標識符依次掃描內存中各進程屬性;3)判斷當前進程是否為應用進程,若是,則轉至步驟5),若否,則進入下一步驟;4)該進程為系統進程,無需備份當前進程的進程控制塊信息,並轉至步驟13);5)判斷當前應用進程是否需要掛起,若是則轉至步驟7),若否,則進入下一步驟;6)該應用進程為需要關閉進程,無需備份當前進程的進程控制塊信息,並轉至步驟 13);7)掃描進程鏡像備份區中掛起進程鏡像數據備份保存情況; 8)判斷進程鏡像備份區是否有滿足存放當前應用進程鏡像數據備份的存儲塊,若是,則轉至步驟10),若否,則進入下一步驟;9)搬移、整理、合併進程鏡像數據備份區中的離散存儲塊,以形成連續中可用存儲塊;10)基於進程鏡像數據備份區中連續、可用存儲塊保存當前進程鏡像備份數據;11)保存當前進程的進程控制塊索引標示符、備份進程控制塊存儲起始地址及長度到進程鏡像索引區的索引表中;12)保存該進程當前工作狀態對應的進程控制塊信息到該進程索引記錄指定的鏡像數據保存區的相應地址中;13)內存中進程是否被全部掃描,若是,則進入下一步驟,若否,則轉至步驟2);14)系統關閉或休眠。可選地,所述嵌入式系統單進程休眠時,休眠過程至少包括以下步驟I)進程掛起或關閉命令;2)掃描DRAM內存使用情況;3)判斷當前進程是否需要關閉,若是,則進入下一步驟,若否,則轉至步驟5);4)釋放DRAM中保存的當前進程的進程控制塊相關信息,並轉至步驟12);5)該進程掛起,並判斷是否置換出內存,若是,則進入下一步驟,若否,則轉至步驟12);6)掃描進程鏡像備份區中掛起進程鏡像數據備份保存情況;7)判斷進程鏡像備份區是否有滿足存放當前應用進程鏡像數據備份的存儲塊,若是,則轉至步驟9),若否,則進入下一步驟;8)搬移、整理、合併進程鏡像數據備份區中的離散存儲塊,以形成連續中可用存儲塊;9)基於進程鏡像數據備份區中連續、可用存儲塊保存當前進程鏡像備份數據;10)更新進程鏡像索引區保存的索引表,添加該進程鏡像數據對應的記錄,保存當前進程的進程控制塊的索引標示符、備份進程控制塊存儲起始地址及長度到進程鏡像索引區的索引表中;11)保存該進程當前工作狀態對應的進程控制塊信息到該進程索引記錄指定的鏡像數據保存區的相應地址中;12)休眠或關閉進程。此外,本發明的另一目的是提供一種嵌入式系統,其特徵在於,所述嵌入式系統至少包括CPU控制器、非易失主存、以及DRAM內存;所述非易失主存由引導程序存儲區、內核存儲區、文件系統存儲區、以及進程鏡像備份區組成;所述進程鏡像備份區劃分有鏡像索引區和鏡像數據保存區;所述鏡像索引區用來保存進程鏡像索引表,所述進程鏡像索引表用來記錄掛起進程對應的進程控制塊索引標示符、以及記錄所述進程對應的 進程控制塊在所述鏡像數據保存區中存儲的起始地址及長度;所述鏡像數據保存區用來保存掛起進程所對應的進程控制塊的備份數據。如上所述,本發明的一種嵌入式系統及其應用進程的休眠與喚醒方法,具有以下有益效果該嵌入式系統將傳統的非易失主存與DRAM內存構成的存儲架構的進程鏡像備份區劃分有鏡像索引區和鏡像數據保存區,可實現應用進程掛起到非易失存儲器,基於進程掛起時保存的鏡像備份數據實現應用進程快速恢復掛起前工作狀態,以進程為單位降低系統休眠、喚醒時的工作量,基於本發明提供的嵌入式系統進程休眠與喚醒的方法可實現系統級以及單進程的休眠,使進程休眠、喚醒管理更加靈活、方便,可降低傳統嵌入式系統休眠喚醒的數據備份及恢復的工作量以及系統休眠時數據備份所佔用的大量存儲空間,從而實現嵌入式系統進程的快速休眠與喚醒。


圖I顯示為本發明中嵌入式系統結構示意圖。圖2顯示為本發明的嵌入式系統單進程休眠方法流程示意圖。圖3顯示為本發明的嵌入式系統系統級休眠方法流程示意圖。圖4顯示為本發明的嵌入式系統進程喚醒方法流程示意圖。元件標號說明ICPU 控制器2非易失主存20NOR Flash 存儲器201Bootloader (引導程序存儲區)21NAND Flash 存儲器210Kernel (內核存儲區)211Rootfs (文件系統存儲區)212進程鏡像存儲區2120鏡像索引區2121鏡像數據保存區SI S12、S21 S34、S41 S54 步驟
具體實施例方式以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的具體實施方式
加以實施或應用,本說明書中的各項細節也可以基於不同觀點與應用,在沒有背離本發明的精神下進行各種修飾或改變。請參閱圖I至圖4。需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發明的基本構想,遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪製,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可能更為複雜。如圖I所述,本發明提供一種嵌入式系統,所述嵌入式系統至少包括CPU控制器I、非易失主存2、以及DRAM內存3,其中,非易失主存2包括NOR Flash存儲器20和NANDFlash存儲器21,且所述非易失主存2由引導程序存儲區200、內核存儲區210、文件系統存儲區211、以及進程鏡像備份區212組成;所述進程鏡像備份區212劃分有鏡像索引區2120和鏡像數據保存區2121 ;所述鏡像索引區2120用來保存進程鏡像索引表,所述進程鏡像索引表用來記錄掛起進程對應的PCB索引標示符、以及記錄所述進程對應的PCB在所述鏡像數據保存區中存儲的起始地址及長度;所述鏡像數據保存區2121用來保存掛起進程所對 應的PCB的備份數據。本發明的嵌入式系統將傳統的非易失主存與DRAM內存相結合構成的嵌入式存儲架構體系,在所述非易失主存中劃分出一進程鏡像備份區,嵌入式系統休眠或關閉時只需在所述進程鏡像備份區中保存所需要應用進程的狀態信息,而不需要的系統進程的狀態信息無需保存,可大大降低數據備份的工作量以及節省備份數據的存儲空間,同時在系統喚醒時使所述嵌入式系統快速啟動。本發明的另一目的是提供一種嵌入式系統應用進程的休眠與喚醒方法。參考圖I所示,所述嵌入式系統至少包括CPU控制器、非易失主存、以及DRAM內存,其中,所述非易失主存由引導程序存儲區、內核存儲區、文件系統存儲區、以及進程鏡像備份區組成;所述進程鏡像備份區劃分有鏡像索引區和鏡像數據保存區。應用進程掛起,則該進程釋放CPU資源進入休眠狀態。當系統對一應用進程發出休眠命令時,若掛起並置換出內存,則保存當前進程工作狀態相對應的PCB信息到進程鏡像備份區,並釋放當前進程所佔DRAM內存,否則只是掛起該進程,當前工作狀態的相對應的PCB控制塊信息仍保留在DRAM中。具體地,所述休眠包括系統級休眠和單進程休眠。所述系統級休眠為嵌入式系統休眠或關閉,使DRAM內存中運行的應用進程掛起進入休眠狀態;所述單進程休眠為單個應用進程掛起進入休眠狀態。為進一步闡明本發明單進程休眠的原理及功效,請參閱圖2,圖2顯示為本發明的嵌入式系統單進程的休眠流程示意圖。如圖2所示,在步驟SI中,系統對某一應用進程休眠時,CPU控制器發出掛起或關閉命令,接著轉至步驟S2中。在步驟S2中,系統掃描DRAM內存的使用情況,接著進入步驟S3中。在步驟S3中,判斷當前進程是否需要關閉,若否,則轉至步驟S5,若是,則進入步驟S4中。在步驟S4中,釋放DRAM中保存的當前進程的PCB相關信息,並轉至步驟S12中。
在步驟S5中,該進程掛起,並判斷是否置換出DRAM內存,若是,則進入步驟S6中,若否,則轉至步驟S12中。在步驟S6中,掃描所述進程鏡像備份區中掛起進程的鏡像數據備份區的使用情況,進入步驟S7中。在步驟S7中,判斷所述進程鏡像備份區是否有滿足存放當前應用進程鏡像數據備份的存儲塊,若是,則轉至步驟S9中,若否,則進入步驟S8。在步驟S8中,搬移、整理、合併所述進程鏡像數據備份區中的離散存儲塊,以形成連續中可用存儲塊,進入步驟S9中。在步驟S9中,在所述進程鏡像數據備份區中連續、可用存儲塊中保存當前進程鏡像備份數據,進入步驟S10。在步驟SlO中,更新所述進程鏡像索引區保存的索引表,添加該進程鏡像數據對應的記錄,保存當前進程的PCB索引標示符、備份PCB存儲起始地址及長度到所述進程鏡像 索引區的索引表中,進入步驟Sll中。在步驟Sll中,保存該進程當前工作狀態對應的PCB信息到該進程索引記錄指定的所述鏡像數據保存區的相應地址中,進入步驟S12中。在步驟S12中,完成休眠前的工作狀態保存,此時該進程可進入休眠狀態。由上可知,當僅僅單個進程掛起時,根據該進程的屬性決定是否備份其當前工作狀態相關數據到非易失存儲器,單進程休眠實現以進程為單位降低系統功耗,使進程休眠管理更加靈活。本發明中嵌入式系統關閉或休眠時,涉及到多進程的關閉與休眠。此時,系統將保存當前內存中所有掛起但無需關閉的應用進程的工作狀態相對應的PCB信息到鏡像備份區,當前內存中系統進程及需要關閉的應用進程的工作狀態相對應的PCB信息無需備份。為進一步闡明本發明嵌入式系統系統級休眠的原理及功效,請參閱圖3,圖3顯示為本發明的嵌入式系統的系統級休眠流程示意圖。在步驟S21中,CPU控制器發出系統掛起或關閉命令,接著轉至步驟S22中。在步驟S22中,系統按進程標識符依次掃描內存中各進程屬性,接著進入步驟S23中。在步驟S23中,判斷當前進程是否為應用進程,若是,則轉至步驟S25,若否,則進入下一步驟S24中。在步驟S24中,該進程為系統進程,無需備份當前進程的PCB信息,並轉至步驟S33中。在步驟S25中,判斷當前應用進程是否需要掛起,若是則轉至步驟S27中,若否,則進入下一步驟S26中。在步驟S26中,該應用進程為需要關閉進程,無需備份當前進程的PCB控制塊信息,並轉至步驟S33。在步驟S27中,掃描所述進程鏡像備份區中掛起進程的鏡像數據備份情況,接著進入下一步驟S28中。在步驟S28中,判斷所述進程鏡像備份區是否有滿足存放當前應用進程的鏡像數據備份的存儲塊,若是,則轉至步驟S30,若否,則進入下一步驟S29中。在步驟S29中,搬移、整理、合併進程鏡像數據備份區中的離散存儲塊,以形成連續中可用存儲塊,接著進入下一步驟S30中。在步驟S30中,基於所述進程鏡像數據備份區中連續、可用存儲塊保存當前進程鏡像備份數據,接著進入下一步驟S31中。在步驟S31中,保存當前進程的PCB索引標示符、以及所述PCB存儲起始地址及長度到所述進程鏡像索引區的索引表中,接著進入下一步驟S32中。在步驟S32中,將該進程當前工作狀態對應的PCB信息保存到該進程索引記錄指定的所述鏡像數據保存區的相應地址中,接著進入下一步驟S33中。在步驟S33中,內存中進程是否被全部掃描,若是,則進入下一步驟,若否,則轉至步驟S12,接著進入下一步驟S34中。在步驟S34中,完成所述嵌入式系統掛起或關閉前的工作狀態保存,此時系統可 進入休眠或關閉狀態。由上可知,本發明的嵌入式系統休眠時,只將所需要應用進程的狀態信息掛起到所述非易失存儲器中,而系統進程的狀態信息無需備份,可大大降低數據備份的工作量以及節省備份數據的存儲空間。針對本發明中嵌入式系統應用進程的休眠方法,則應用進程喚醒的方法包括I)基於DRAM中保存的當前進程相對應的PCB信息喚醒該進程。2)基於所述進程鏡像備份區中的進程鏡像備份數據喚醒所掛起的進程,若所述進程鏡像備份區中保存有該進程掛起時相對應的PCB信息的備份數據,則基於所述進程索引區保存的該進程的索引記錄加載所述鏡像數據區保存的該進程的PCB備份數據將所述進程掛起前狀態的鏡像備份數據到DRAM內存,並基於加載到DRAM內的所述鏡像備份數據快速啟動該進程並釋放該進程對應的所述進程鏡像備份區中保存的索引記錄及PCB備份信肩、O3)直接重新啟動一進程,即當所述DRAM內存及進程鏡像備份區中均沒有該進程掛起時的相關存儲信息時,則直接基於應用進程的存儲代碼啟動該進程。為進一步闡明本發明中所述嵌入式系統應用進程的喚醒原理及功效,請參閱圖4,圖4顯示為本發明的所述嵌入式系統應用進程的喚醒流程示意圖。在步驟S41中,系統發出喚醒進程命令,接著進入步驟S42中。在步驟S42中,掃描所述DRAM內存中進程信息保存情況,接著進入步驟S43中。在步驟S43中,判斷所述DRAM內存中是否保存有該進程掛起前工作狀態相對應的PCB相關信息,若是,則進入下一步驟,若否,則轉至步驟S45中。在步驟S44中,基於所述DRAM內存中的該進程掛起前的進程控制塊相關信息喚醒該進程,快速恢復到該進程掛起前的工作狀態,接著轉至步驟S53。在步驟S45中,掃描所述進程鏡像備份區中掛起的所述進程鏡像數據備份情況,接著轉至步驟S46。在步驟S46中,判斷所述鏡像索引區內是否保存有該進程的鏡像索引記錄,若是,則轉至步驟S48,若否,則進入下一步驟S47。在步驟S47中,直接基於該應用進程的存儲代碼重新啟動該進程,轉至步驟S53中。在步驟S48中,判斷所述DRAM內存中是否有可用內存空間來加載所述進程鏡像備份數據,若是,則轉至步驟S50,若否,則進入下一步驟S49中。
在步驟S49中,將所述DRAM內存中掛起時間超過一定時間段的進程的PCB相關信息備份到所述鏡像備份區中並釋放其所佔DRAM內存,或直接將某些使用不頻繁的應用進程關閉以釋放其所佔內存,以獲得充足的內存空間,接著進入下一步驟S50中。在步驟S50中,基於所述鏡像索引區內該進程的鏡像索引記錄將所述鏡像數據保存區內該進程的進程控制塊鏡像備份數據加載至所述DRAM內存中,接著進入下一步驟S51中。在步驟S51中,基於加載至所述DRAM內存的該進程的鏡像備份數據喚醒該進程,快速恢復到進程掛起前的工作狀態,接著進入下一步驟S52中 。在步驟S52中,釋放所述鏡像數據保存區中保存的該進程的PCB鏡像備份數據,接著進入下一步驟S53中。在步驟S53中,釋放所述鏡像索引區中保存的該進程的索引記錄,接著進入下一步驟S54中。在步驟S54中,完成所述進程的喚醒或啟動。由上可知,應用進程喚醒時,基於該進程掛起時保存的鏡像備份數據實現進程快速恢復掛起前工作狀態,以進程為單位降低系統喚醒時的工作量,提高了系統喚醒的速度,提高了工作效率。綜上所述,本發明提供一種嵌入式系統及其應用進程的休眠與喚醒的方法,該嵌入式系統由傳統的非易失主存及DRAM內存構成存儲架構,非易失主存又由引導程序存儲區、內核存儲區、文件系統存儲區、以及進程鏡像備份區組成,其中,進程鏡像備份區劃分有鏡像索引區和鏡像數據保存區,可實現應用進程掛起到非易失存儲器,基於應用進程掛起時保存的鏡像備份數據實現應用進程快速恢復掛起前工作狀態,以進程為單位降低系統休目民、喚醒時的工作量。本發明可實現系統級以及單進程的休眠,使進程休眠、喚醒管理更加靈活、方便,可降低傳統嵌入式系統休眠與喚醒的數據備份及恢復的工作量以及系統休眠時數據備份所佔用的大量存儲空間,從而提高嵌入式系統的運行效率。所以,本發明有效克服了現有技術中的種種缺點而具高度產業利用價值。上述實施例僅例示性說明本發明的原理及其功效,而非用於限制本發明。任何熟悉此技術的人士皆可在不違背本發明的精神及範疇下,對上述實施例進行修飾或改變。因此,舉凡所屬技術領域中具有通常知識者在未脫離本發明所揭示的精神與技術思想下所完成的一切等效修飾或改變,仍應由本發明的權利要求所涵蓋。
權利要求
1.一種嵌入式系統應用進程的休眠與喚醒方法,所述嵌入式系統至少包括CPU控制器、非易失主存、以及DRAM內存,其中,所述非易失主存由引導程序存儲區、內核存儲區、 文件系統存儲區、以及進程鏡像備份區組成,其特徵在於 將所述進程鏡像備份區劃分為鏡像索引區和鏡像數據保存區; 應用進程掛起,則該進程釋放CPU資源進入休眠狀態; 所述嵌入式系統應用進程休眠時,將該進程掛起到所述非易失存儲器,即該進程在所述DRAM內存中相對應的進程控制塊信息被置換出DRAM內存;或者所述進程的當前工作狀態相對應的進程控制塊信息仍保留在DRAM內存中;或者關閉該進程,並釋放所佔用DRAM內存空間; 應用進程喚醒,則該進程獲得CPU資源並恢復工作狀態; 所述嵌入式系統應用進程喚醒時,基於所述DRAM內存中保存的當前掛起的所述進程相對應的進程控制塊信息喚醒該進程;或基於所述進程鏡像備份區中的進程鏡像備份數據喚醒所掛起的進程,即基於所述進程索引區中保存的該進程的索引記錄將所述鏡像數據保存區中保存的該進程的進程控制塊備份數據加載到DRAM內存以快速啟動該進程,並釋放該進程在所述進程鏡像備份區中保存的索引記錄以及進程控制塊備份數據信息;或直接重新啟動一進程,即當DRAM內存中及鏡像備份區均沒有該進程掛起時的相關存儲信息時,直接基於所述進程對應的應用程式的存儲代碼啟動該進程。
2.根據權利要求I所述的嵌入式系統應用進程的休眠與喚醒方法,其特徵在於,所述嵌入式系統的應用進程喚醒時,至少包括以下步驟 1)系統喚醒進程命令; 2)掃描所述DRAM內存中進程信息保存情況; 3)所述DRAM內存中是否保存有該進程掛起前工作狀態相對應的進程控制塊相關信息,若是,則進入下一步驟,若否,則轉至步驟5); 4)基於所述DRAM內存中的該進程掛起前的進程控制塊相關信息喚醒該進程,快速恢復到該進程掛起前的工作狀態,轉至步驟13); 5)掃描所述進程鏡像備份區中掛起的所述進程鏡像數據備份情況; 6)判斷所述鏡像索引區內是否保存有該進程的鏡像索引記錄,若是,則轉至步驟8),若否,則進入下一步驟; 7)基於文件存儲區中保存的該進程代碼直接重新啟動該進程,轉至步驟13); 8)判斷所述DRAM內存中是否有可用內存空間來加載所述進程鏡像備份數據,若是,則轉至步驟10),若否,則進入下一步驟; 9)將所述DRAM內存中掛起時間超過一定時間段的進程的進程控制塊相關信息備份到所述鏡像備份區中並釋放其所佔DRAM內存,或直接將某些使用不頻繁的應用進程關閉以釋放其所佔內存,以獲得充足的內存空間; 10)基於所述鏡像索引區內該進程的鏡像索引記將所述鏡像數據保存區內該進程的進程控制塊鏡像備份數據加載至所述DRAM內存中; 11)基於加載至所述DRAM內存的該進程的鏡像備份數據喚醒該進程,快速恢復到進程掛起前的工作狀態; 12)釋放所述鏡像索引區中保存的該進程的索引記錄信息、以及所述鏡像數據保存區中保存的該進程的進程控制塊鏡像備份數據; 13)喚醒或啟動進程。
3.根據權利要求I所述的嵌入式系統應用進程的休眠與喚醒方法,其特徵在於所述休眠包括系統級休眠和單進程休眠。
4.根據權利要求3所述的嵌入式系統應用進程的休眠與喚醒方法,其特徵在於所述系統級休眠為嵌入式系統的休眠或關閉,並使DRAM內存中運行的應用進程進入休眠狀態;所述單進程休眠為單個應用進程進入休眠狀態。
5.根據權利要求4所述的嵌入式系統應用進程的休眠與喚醒方法,其特徵在於,所述嵌入式系統系統級休眠時,所述休眠過程至少包括以下步驟 1)系統關閉或休眠命令; 2)按進程標識符依次掃描內存中各進程屬性; 3)判斷當前進程是否為應用進程,若是,則轉至步驟5),若否,則進入下一步驟; 4)該進程為系統進程,無需備份當前進程的進程控制塊信息,並轉至步驟13); 5)判斷當前應用進程是否需要掛起,若是則轉至步驟7),若否,則進入下一步驟; 6)該應用進程為需要關閉進程,無需備份當前進程的進程控制塊信息,並轉至步驟13); 7)掃描進程鏡像備份區中掛起進程鏡像數據備份保存情況; 8)判斷進程鏡像備份區是否有滿足存放當前應用進程鏡像數據備份的存儲塊,若是,則轉至步驟10),若否,則進入下一步驟; 9)搬移、整理、合併進程鏡像數據備份區中的離散存儲塊,以形成連續中可用存儲塊; 10)基於進程鏡像數據備份區中連續、可用存儲塊保存當前進程鏡像備份數據; 11)保存當前進程的進程控制塊索引標示符、備份進程控制塊存儲起始地址及長度到進程鏡像索引區的索引表中; 12)保存該進程當前工作狀態對應的進程控制塊信息到該進程索引記錄指定的鏡像數據保存區的相應地址中; 13)內存中進程是否被全部掃描,若是,則進入下一步驟,若否,則轉至步驟2); 14)系統關閉或休眠。
6.根據權利要求4所述的嵌入式系統應用進程的休眠與喚醒方法,其特徵在於,所述嵌入式系統單進程休眠時,休眠過程至少包括以下步驟 1)進程掛起或關閉命令; 2)掃描DRAM內存使用情況; 3)判斷當前進程是否需要關閉,若是,則進入下一步驟,若否,則轉至步驟5); 4)釋放DRAM中保存的當前進程的進程控制塊相關信息,並轉至步驟12); 5)該進程掛起,並判斷是否置換出內存,若是,則進入下一步驟,若否,則轉至步驟12); 6)掃描進程鏡像備份區中掛起進程鏡像數據備份保存情況; 7)判斷進程鏡像備份區是否有滿足存放當前應用進程鏡像數據備份的存儲塊,若是,則轉至步驟9),若否,則進入下一步驟; 8)搬移、整理、合併進程鏡像數據備份區中的離散存儲塊,以形成連續中可用存儲塊; 9)基於進程鏡像數據備份區中連續、可用存儲塊保存當前進程鏡像備份數據;10)更新進程鏡像索引區保存的索引表,添加該進程鏡像數據對應的記錄,保存當前進程的進程控制塊的索引標示符、備份進程控制塊存儲起始地址及長度到進程鏡像索引區的索引表中; 11)保存該進程當前工作狀態對應的進程控制塊信息到該進程索引記錄指定的鏡像數據保存區的相應地址中; 12)休眠或關閉進程。
7.一種嵌入式系統,其特徵在於,至少包括 CPU控制器、非易失主存、以及DRAM內存; 所述非易失主存由引導程序存儲區、內核存儲區、文件系統存儲區、以及進程鏡像備份區組成; 所述進程鏡像備份區劃分有鏡像索引區和鏡像數據保存區; 所述鏡像索引區用來保存進程鏡像索引表,所述進程鏡像索引表用來記錄掛起進程對應的進程控制塊索引標示符、以及記錄所述進程對應的進程控制塊在所述鏡像數據保存區中存儲的起始地址及長度;所述鏡像數據保存區用來保存掛起進程所對應的進程控制塊的備份數據。
全文摘要
本發明提供一種嵌入式系統及其應用進程的休眠與喚醒方法,該嵌入式系統由傳統的非易失主存及DRAM內存構成存儲架構,非易失主存又由引導程序存儲區、內核存儲區、文件系統存儲區、以及進程鏡像備份區組成,其中,進程鏡像備份區劃分有鏡像索引區和鏡像數據保存區,可實現應用進程掛起到非易失存儲器。本發明可實現系統級以及單進程的休眠,使進程休眠、喚醒管理更加靈活、方便,可降低傳統嵌入式系統休眠喚醒的數據備份及恢復的工作量以及系統休眠時數據備份所佔用的大量存儲空間,從而提高嵌入式系統運行效率。
文檔編號G06F9/48GK102779072SQ20121019995
公開日2012年11月14日 申請日期2012年6月18日 優先權日2012年6月18日
發明者丁晟, 宋志棠, 李順芬, 王玉嬋, 許林海, 陳一峰, 陳後鵬, 陳小剛 申請人:中國科學院上海微系統與信息技術研究所

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀