專利名稱:實施于計算機系統(tǒng)中的方法及使用該方法的計算機系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及一種計算機技術,尤其是涉及一種在一操作系統(tǒng)已加載且執(zhí)行后讓一輔助程序執(zhí)行于計算機系統(tǒng)中而不須重新開機該計算機系統(tǒng)的方法及系統(tǒng)。
背景技術:
在一典型個人計算機中,存在有一處理器、一基本輸出入系統(tǒng)(BIOS)、一主存儲器、及儲存一操作系統(tǒng)與一或多個應用程序的一硬盤。該BIOS通常采用儲存于一只讀存儲器(ROM)上的可執(zhí)行指令的形式。在一正規(guī)啟動處理期間,該處理器存取與執(zhí)行BIOS中的指令,且在BIOS的指導下,該處理器實施該開機處理。該BIOS導致該處理器執(zhí)行某些低階設定功能,以準備該計算機正規(guī)操作。在該設定功能執(zhí)行后,該BIOS導致該處理器加載與執(zhí)行儲存于該硬盤上的操作系統(tǒng)。通過這種步驟,該BIOS事實上自其本身轉換控制至該操作系統(tǒng)。在該操作系統(tǒng)由該處理器加載與執(zhí)行后,該啟動處理完成,且該計算機準備好操作。
BIOS存在處的ROM(只讀存儲器)(此后稱為BIOS ROM)一般很小。然而,除了這個小尺寸外,已觀察到一或多個輔助程序可儲存于BIOS ROM上。這些輔助程序可在該開機處理期間該硬盤上的操作系統(tǒng)之前甚至代替該操作系統(tǒng)執(zhí)行,以提供特定想要的功能。輔助程序的一范例為于1999年11月24日申請的美國專利申請案第09/449,065號,標題為“自足式瀏覽器架構”中的自足式瀏覽器,其內容在此并入?yún)⒄?。輔助程序一般為自足式,意思是指其包含必須操作的所有元件。如此一來,其不需要該硬盤上的操作系統(tǒng)運作。這可能是很有利的,由于即使該硬盤失效或該操作系統(tǒng)出現(xiàn)錯誤,該輔助程序不會被影響,其仍可運作。因此,該輔助程序是不會被許多系統(tǒng)故障所影響的。
目前,輔助程序在轉換控制至該操作系統(tǒng)前的啟動處理期間執(zhí)行。用以在一啟動處理期間呼叫一輔助程序的一機構是在2003年3月14日申請的美國專利申請案第10/390,262號,標題為“用以在計算機開機處理期間直覺性呼叫一或多個輔助程序的機構”中,其內容在此并入?yún)⒄铡H欢?,一旦該操作系統(tǒng)回復控制,該輔助程序一般不再可被存取。這是指若一使用者希望在該操作系統(tǒng)已經(jīng)加載與執(zhí)行后執(zhí)行一輔助程序,該使用者必須重新開機該計算機。這可能為不方便且耗時的處理。
發(fā)明內容
本發(fā)明所要解決的技術問題在于提供一種實施于計算機系統(tǒng)中的方法及使用該方法的計算機系統(tǒng),以在一操作系統(tǒng)已加載且執(zhí)行后讓一輔助程序執(zhí)行于計算機系統(tǒng)中而不須重新開機該計算機系統(tǒng)的裝置。
為了實現(xiàn)上述目的,本發(fā)明提供了一種實施于計算機系統(tǒng)中的方法,該計算機系統(tǒng)具有一操作系統(tǒng)執(zhí)行于其上,其特點在于,該方法包含儲存定義該計算機系統(tǒng)的一目前狀態(tài)的狀態(tài)信息;中斷該操作系統(tǒng)的執(zhí)行;當該操作系統(tǒng)的執(zhí)行中斷時執(zhí)行一程序模塊;及回復該操作系統(tǒng)的執(zhí)行,并根據(jù)該狀態(tài)信息,復原該計算機系統(tǒng)至該目前狀態(tài)。
上述方法,其特點在于,該計算機系統(tǒng)包含一內存,該方法還包含在一啟動處理期間提供一指示給該操作系統(tǒng),指示該內存的特定部分不可由該操作系統(tǒng)使用;且其中執(zhí)行該程序模塊的步驟包含加載該程序模塊至該操作系統(tǒng)不可使用的內存的一特定部分。
上述方法,其特點在于,該計算機系統(tǒng)包含一內存,且其中該方法在中斷該操作系統(tǒng)之前還包含傳送一內存配置請求至該操作系統(tǒng);從該操作系統(tǒng)接收一內存配置,該內存配置指示自由且可使用的內存的一特定部分;儲存關于該內存配置的信息于該程序模塊了解要存取的一位置中;存取關于該內存配置的信息;及使用由該內存配置指示的內存的特定部分,以儲存該程序模塊執(zhí)行期間產生的數(shù)據(jù)。
上述方法,其特點在于,該程序模塊不需要該操作系統(tǒng)的操作而具有其本身的操作系統(tǒng)元件組的一自足式程序模塊。
上述方法,其特點在于,該程序模塊包含有一網(wǎng)頁瀏覽器、一媒體播放器、一調整程序及其組合的其中之一。
上述方法,其特點在于,該計算機系統(tǒng)包含一基本輸出/入系統(tǒng),而中斷該操作系統(tǒng)的執(zhí)行步驟包含命令該操作系統(tǒng)進入一省電模式,導致該操作系統(tǒng)中斷執(zhí)行;檢測欲執(zhí)行的一指令,將導致該操作系統(tǒng)的一個或多個硬件元件切斷電源;及呼叫設于基本輸出/入系統(tǒng)中將導致該程序模塊執(zhí)行的一模式,而設陷該指令使其不能執(zhí)行,從而避免該一個或多個硬件元件切斷電源。
本發(fā)明還提供一種計算機系統(tǒng),其特點在于,包含用以導致一操作系統(tǒng)的執(zhí)行中斷的一機構;用以導致當該操作系統(tǒng)的執(zhí)行中斷時執(zhí)行一程序模塊的一機構;及用以導致該操作系統(tǒng)的執(zhí)行回復的一機構。
上述計算機系統(tǒng),其特點在于,還包含一操作系統(tǒng),該操作系統(tǒng)包含用以接收一指令以進入一省電模式的一機構;用以儲存定義該計算機的一目前狀態(tài)的狀態(tài)信息的一機構,該狀態(tài)信息讓該計算機系統(tǒng)的目前狀態(tài)在一段時間后復原;用以中斷該操作系統(tǒng)執(zhí)行的一機構;及用以當該操作系統(tǒng)的執(zhí)行回復時根據(jù)該狀態(tài)信息復原該操作系統(tǒng)為該目前狀態(tài)的一機構。
上述計算機系統(tǒng),其特點在于,該計算機系統(tǒng)還包含一內存,該操作系統(tǒng)還包含有用以在一啟動處理期間提供一指示給該操作系統(tǒng)的一機構,指示該內存的一特定部分不可由該操作系統(tǒng)使用;且該用以導致該程序模塊在該操作系統(tǒng)執(zhí)行中斷時執(zhí)行的機構包含用以導致該程序模塊加載不可由該操作系統(tǒng)使用的內存的該特定部分中。
上述計算機系統(tǒng),其特點在于,該計算機系統(tǒng)還包含一內存;用以傳送一內存配置請求至該操作系統(tǒng)的一機構;用以從該操作系統(tǒng)接收一內存配置的一機構,該內存配置指示自由且可使用的內存的一特定部分;及用以傳遞關于該內存配置的信息至該程序模塊,以讓該程序模塊在執(zhí)行期間使用內存的特定部分的一機構。
上述計算機系統(tǒng),其特點在于,關于該內存配置的信息在該操作系統(tǒng)的執(zhí)行中斷前傳遞至該程序模塊;而用以傳遞關于該內存配置的信息的機構包含用以導致關于該內存配置的信息儲存于該程序模塊了解要存取的一位置中的一機構。
上述計算機系統(tǒng),其特點在于,還包含該程序模塊,該程序模塊包含用以存取關于該內存配置的信息的一機構;及用以使用由該內存配置指示的內存的特定部分,以儲存該程序模塊執(zhí)行期間所產生的數(shù)據(jù)的一機構。
上述計算機系統(tǒng),其特點在于,還包含該程序模塊,該程序模塊為不需要該操作系統(tǒng)以操作而具有其本身的操作系統(tǒng)元件組的一自足式程序模塊。
上述計算機系統(tǒng),其特點在于,還包含該程序模塊,該程序模塊包含有一網(wǎng)頁瀏覽器、一媒體播放器、一調諧器及其組合的其中之一。
上述計算機系統(tǒng),其特點在于,用以導致該操作系統(tǒng)的執(zhí)行中斷的機構包含用以命令該操作系統(tǒng)進入導致該操作系統(tǒng)的執(zhí)行中斷的一省電模式的一機構;用以檢測將導致該計算機系統(tǒng)的一個或多個元件關閉電源的欲執(zhí)行的一指令的一機構;及用以設陷該指令導致其不能執(zhí)行,從而避免該一個或多個硬件元件關閉電源的一機構。
上述計算機系統(tǒng),其特點在于,還包含用以為導致該指令在相遇時陷補設定一陷阱的一機構。
根據(jù)本發(fā)明的一實施例,提供有用以讓一輔助程序在一操作系統(tǒng)已加載與執(zhí)行后執(zhí)行于一計算機系統(tǒng)中而不須重新開機該計算機系統(tǒng)的一機構。在一實施例中,這通過中斷該操作系統(tǒng)的執(zhí)行、在該操作系統(tǒng)的執(zhí)行中斷時執(zhí)行該輔助程序,接著回復該操作系統(tǒng)的執(zhí)行而實現(xiàn)。在中斷該操作系統(tǒng)的執(zhí)行中,儲存定義該計算機系統(tǒng)的一目前狀態(tài)的狀態(tài)信息。在回復該操作系統(tǒng)的執(zhí)行中,該已儲存狀態(tài)信息用于復原該計算機系統(tǒng)至中斷執(zhí)行前的目前狀態(tài)。由于這樣,中斷與回復該操作系統(tǒng)的執(zhí)行的結果不應遺失任何狀態(tài)信息或數(shù)據(jù)。因此,從該操作系統(tǒng)與執(zhí)行于由該操作系統(tǒng)提供的環(huán)境中的應用程序(若有)的觀點來看,該輔助程序的執(zhí)行相對為透明的。
在一實施例中,定義該計算機系統(tǒng)的目前狀態(tài)的狀態(tài)信息儲存于該計算機系統(tǒng)的一內存中。為了確保此與其它信息不會被該輔助程序在執(zhí)行期間被覆蓋或出現(xiàn)錯誤,該輔助程序在一實施例中加載與執(zhí)行于該操作系統(tǒng)不可存取的內存的一部分中(如此一來,確保該操作系統(tǒng)無法儲存任何信息于該內存部分中)。在執(zhí)行期間,該輔助程序可能必須使用該內存的某些其它部分以儲存執(zhí)行期間產生的數(shù)據(jù)。在一實施例中,此內存的部分通過該操作系統(tǒng)在該操作系統(tǒng)的執(zhí)行中斷前配置。由于此內存部分通過該操作系統(tǒng)本身配置,確保該內存部分還未被該操作系統(tǒng)使用,因此為自由且有效的。因此,該輔助程序可將數(shù)據(jù)寫至該已配置內存部分,而不須擔心覆蓋或錯誤任何預先存在的信息。
在此方式中,根據(jù)本發(fā)明的一實施例,一輔助程序執(zhí)行于一操作系統(tǒng)已加載且執(zhí)行后,而不須重新開機該計算機系統(tǒng)。
以下結合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
圖1為本發(fā)明一實施例的實施方法之一高階操作流程圖圖2為本發(fā)明一實施例的一計算機系統(tǒng)的方塊圖;圖3為主存儲器內存中已保留部分的示意圖;圖4為圖3中內存的動態(tài)配置部分示意圖。
其中,附圖標記步驟104-中斷操作系統(tǒng)的執(zhí)行步驟108-執(zhí)行輔助程序步驟112-回復操作系統(tǒng)的執(zhí)行200-計算機系統(tǒng),202-處理器206-總線,208-BIOS ROM210-BIOS,212-輔助程序模塊214-儲存媒體,216-大量儲存模塊218-操作系統(tǒng),220-應用程序模塊222-其它裝置,224-音/視頻信號元件226-主存儲器,228-輸入裝置230-外圍設備,240-模式242-APIA,302-保留部分,402-動態(tài)配置部分具體實施方式
圖1為本發(fā)明一實施例中方法的高階操作流程圖。圖1中的方法在一操作系統(tǒng)已經(jīng)加載與執(zhí)行后實施于一計算機系統(tǒng)中。該方法讓一輔助程序執(zhí)行,而不須重新開機該計算機系統(tǒng)。
如圖1中所示,該方法開始于步驟104,中斷該操作系統(tǒng)的執(zhí)行。通過中斷執(zhí)行,指的是該計算機系統(tǒng)的處理器停止執(zhí)行關于該操作系統(tǒng)的任何指令。在該操作系統(tǒng)的執(zhí)行中斷后,步驟108,執(zhí)行該輔助程序模塊。在此執(zhí)行期間,使用者可能以使用任何輸入/輸出機構(鍵盤、鼠標、屏幕等)的任何方式與該輔助程序模塊互動。在某些時候,該輔助程序模塊的執(zhí)行會暫停(如通過該使用者關閉該程序)。當此發(fā)生時,步驟112,回復該操作系統(tǒng)的執(zhí)行。在圖1中所示的整個處理期間,該計算機系統(tǒng)不被重新開機。
圖1的方法在概念上相當直覺。然而,為了適當實施,必須考慮許多因素。其中一因素為狀態(tài)維護。為了精致化,在中斷該操作系統(tǒng)的執(zhí)行前,該計算機系統(tǒng)具有一特定狀態(tài)。此狀態(tài)由該計算機系統(tǒng)中所有元件的狀態(tài)加以定義,舉例來說,包含該操作系統(tǒng)的狀態(tài)、執(zhí)行于該操作系統(tǒng)所提供的環(huán)境中的應用程序的狀態(tài)、該計算機系統(tǒng)的硬件元件的狀態(tài)等。該計算機系統(tǒng)知此狀態(tài)不應在當該操作系統(tǒng)之執(zhí)行中斷時遺失(否則,中斷該操作系統(tǒng)的執(zhí)行與重新開機并無差別)。而是,狀態(tài)應被保留,使得當該操作系統(tǒng)的執(zhí)行回復時,該計算機系統(tǒng)會放回至當該操作系統(tǒng)的執(zhí)行被中斷時的相同狀態(tài)。此狀態(tài)維護確保中斷該操作系統(tǒng)的執(zhí)行結果不會有信息遺失,且讓該輔助程序模塊的執(zhí)行以相對透明的方式執(zhí)行。在一實施例中,為了保留該計算機系統(tǒng)的狀態(tài),在中斷該操作系統(tǒng)的執(zhí)行前儲存一組定義該計算機系統(tǒng)的一目前狀態(tài)的狀態(tài)信息。接著,當回復該操作系統(tǒng)的執(zhí)行時,該狀態(tài)信息用以復原該計算機系統(tǒng)至該目前狀態(tài)(即中斷該操作系統(tǒng)的執(zhí)行前該計算機系統(tǒng)具有的狀態(tài))。
實施上述方法中另一要考慮的因素是內存保留。當該操作系統(tǒng)執(zhí)行時,且當執(zhí)行于該操作系統(tǒng)提供的環(huán)境中的應用程序模塊執(zhí)行時,其程序代碼會儲存于內存中,且其寫入信息至內存。同樣地,在一實施例中,上述討論的狀態(tài)信息在中斷該操作系統(tǒng)的執(zhí)行前儲存至內存。所有信息應維持完整。也就是用于儲存此信息的所有內存部分應被保留(即不應被覆蓋);否則,中斷與回復該操作系統(tǒng)執(zhí)行的結果將會遺失狀態(tài)信息與其它數(shù)據(jù)。一般由于該輔助程序模塊使用與該操作系統(tǒng)與應用程序模塊使用相同的內存的因素,使得內存保留變得困難。除非該輔助程序模塊以某種方式避免使用已經(jīng)占用的內存部分,信息將會遺失。在此情況中,該輔助程序模塊的執(zhí)行必須仔細管理。
在一實施例中,為了確保內存保留,至少采取兩個手段。首先,該輔助程序模塊的程序代碼加載與執(zhí)行于該操作系統(tǒng)不可存取的內存的一部分中。舉例來說,此內存部分可保留于啟動時間。由于該操作系統(tǒng)無法存取此內存部分,確保該內存部分將不含有任何操作系統(tǒng)與應用程序信息。
在執(zhí)行期間,該輔助程序模塊可能必須使用內存的某些其它部分以儲存在執(zhí)行期間產生的數(shù)據(jù)。在一實施例中,作為確保內存保留的一第二手段,此內存部分在中斷該操作系統(tǒng)執(zhí)行前由該操作系統(tǒng)配置,且傳遞至該輔助程序。由于此內存部分由該操作系統(tǒng)本身配置,確保該內存部分未被該操作系統(tǒng)使用,因此為自由且有效的。因此,該輔助程序模塊可將數(shù)據(jù)寫入該內存部分,而不須考慮覆蓋或錯誤任何預先存在的信息。根據(jù)此方式管理內存的使用,本發(fā)明的此實施例讓該輔助程序模塊在中斷該操作系統(tǒng)執(zhí)行時安全執(zhí)行(即以內存保留方式)。
請參照圖2,為本發(fā)明的一實施例可實施的計算機系統(tǒng)200的方塊圖。如圖所示,計算機系統(tǒng)200包含一處理器202、BIOS ROM 208、主存儲器226、儲存媒體214、輸入裝置228、音/視頻信號元件224、及外圍設備230,都由一系統(tǒng)總線206耦合在一起。該BIOS ROM 208包含一BIOS 210及一或多個輔助程序模塊212。該儲存媒體214包含一大量儲存模塊216與零或多個其它裝置222。該大量儲存模塊216包含一操作系統(tǒng)218、一個或多個正規(guī)應用程序模塊220、及一特殊輔助程序調用系統(tǒng)(此后稱為APIA)242。為了簡化起見,只顯示上述元件。如有需要,計算機系統(tǒng)200可包含額外元件。
處理器202負責用以執(zhí)行指令以提供該計算機系統(tǒng)200的全面功能的元件。對于本發(fā)明的目的來說,處理器202可為由任何廠商制作可執(zhí)行任何型態(tài)計算機指令的任何型態(tài)處理器。為了簡化起見,只將一處理器202顯示于圖2中,應注意若想要,該計算機系統(tǒng)200可包含額外處理器。
主存儲器226提供處理器202所需的內存以執(zhí)行程序。尤其是,當指令執(zhí)行時,處理器202使用主存儲器226儲存這些程序指令。除此之外,處理器202使用主存儲器226儲存于執(zhí)行指令期間所產生的數(shù)據(jù)與其它信息。此外,主存儲器226可用于儲存先前所討論的計算機系統(tǒng)狀態(tài)信息。主存儲器226的使用與管理將在稍后一節(jié)中詳細討論。
使用者接口該音/視頻信號元件224與輸入裝置228讓一使用者與該計算機系統(tǒng)200互動。舉例來說,該音/視頻信號元件224可包含一視頻卡、一視頻顯示器、一聲頻卡、及一組喇叭。這些元件224讓該計算機系統(tǒng)200提供信息至一使用者。該輸入裝置228讓該使用者提供信息至該計算機系統(tǒng)200。舉例來說,該輸入裝置228可包含一鍵盤、用以接收紅外線信號(例如來自一遠程控制器的信號)的一紅外線接收器、及一光標控制裝置,例如一鼠標、一軌跡球、一遠程控制指針裝置等?;旧希屧撚嬎銠C系統(tǒng)200與一使用者互動的任何事物可包含為元件224與228。
BIOS ROM該BIOS ROM 208儲存該計算機系統(tǒng)200的基本輸出入系統(tǒng)(BIOS)(注BIOS ROM 208顯示為一只讀存儲器(ROM)只為舉例說明的目的;對于本發(fā)明的目的來說,BIOS ROM 208可采用任何計算機可讀取媒體的形式)。在一實施例中,BIOS ROM 208另外包含一或多個輔助程序模塊212(為了簡化起見,只顯示一輔助程序212)。
在一實施例中,BIOS 210采取可由處理器202執(zhí)行的一組計算機指令的形式。BIOS 210包含用以導致處理器202實施一正規(guī)啟動處理的指令。在此一處理期間,BIOS 210導致處理器202實施各種標準功能(如初使化計算機系統(tǒng)200的所有硬件元件、加載一操作系統(tǒng)218及轉換控制至該操作系統(tǒng)218等)。此標準功能為已知,且在此將不詳加說明。
在一實施例中,除了該標準功能之外,BIOS 210另導致處理器202執(zhí)行一般不在一啟動處理期間執(zhí)行的某些其它功能。在一實施例中,這些功能包含保留主存儲器226的一部分,及設定一指令陷阱。
為了精致化,當BIOS 210導致處理器202轉換控制至一操作系統(tǒng)218時,BIOS 210提供擴充系統(tǒng)配置數(shù)據(jù)(ESCD)至該操作系統(tǒng)218。此ESCD為該操作系統(tǒng)218指示該計算機系統(tǒng)200的哪些元件可讓該操作系統(tǒng)218使用。指定于該ESCD中的項目其中之一為主存儲器226,且尤其該ESCD指定該為主存儲器226的哪個部分可用于該操作系統(tǒng)218。在一實施例中,由BIOS 210提供給該操作系統(tǒng)218的ESCD指示主存儲器226的一特定部分不可用于該操作系統(tǒng)218。
舉例來說,若該主存儲器226的內存地址范圍自地址0至地址z,該ESCD可指定主存儲器的部分自地址0至地址x,且自地址y至地址z可由該操作系統(tǒng)218使用。此暗示主存儲器226的部分介于地址x與地址y之間不可用于該操作系統(tǒng)218(顯示于圖3中)。根據(jù)此方式提供ESCD中的適當信息,BIOS 210可指示該操作系統(tǒng)主存儲器226的一特定部分(保留部分)302不可使用,且因此可導致該部分302被保留。在一實施例中,此保留的內存保留部分302由處理器202使用以執(zhí)行輔助程序212,將在之后部分詳加說明。
除了保留部分302之外,BIOS 210也導致處理器202為一特定切斷電源指令設定一陷阱。通過放置此陷阱,當處理器202遇到該切斷電源指令時,處理器202不會執(zhí)行該指令。而是會觸發(fā)一系統(tǒng)管理中斷,導致處理器202執(zhí)行一陷阱處理程序。在一實施例中,該陷阱處理模式240為BIOS 210的部分,且當被呼叫時,導致處理器202(1)執(zhí)行某些低階功能;及(2)執(zhí)行該輔助程序模塊212。此陷阱/模式機構用于一實施例中以于一操作系統(tǒng)218的執(zhí)行已中斷后執(zhí)行該輔助程序212。
如先前所注意,BIOS ROM 208另外包含一或多個輔助程序212。如在此所使用者,輔助程序該詞廣泛指可執(zhí)行于該計算機系統(tǒng)200之通用目的操作系統(tǒng)218所提供的一作業(yè)環(huán)境外的任何程序。一輔助程序212可提供任何型態(tài)的所需功能。輔助程序功能的范例包含但不限于瀏覽器功能、媒體播放器功能(如CD播放器、DVD播放器、MP3播放器等)、及調諧器(如TV、收音機等等)功能。在一實施例中,一輔助程序212為一自足式程序,指的是其包含其必須操作的所有元件。舉例來說,一輔助程序212可包含其本身的操作系統(tǒng)核心與裝置驅動程序。如此一來,一輔助程序212不需要該計算機系統(tǒng)200的通用目的操作系統(tǒng)218以運作。
對于例示目的來說,輔助程序212顯示于圖2中位于該BIOS ROM 208上。然而,應注意此并非為必要條件。若需要,輔助程序212可位于一分離儲存媒體(未顯示)上。
儲存媒體該儲存媒體214為該計算機系統(tǒng)200提供非揮發(fā)性儲存部分。在一實施例中,儲存媒體214包含一大量儲存磁性硬盤(大量儲存模塊)216,及一個或多個其它裝置222。舉例來說,該其它裝置222可包含一軟盤、一CD-ROM裝置、一DVD裝置、一CD-RW裝置等等。裝置222讓該計算機系統(tǒng)200讀取自與寫入至硬盤(大量儲存模塊)216硬盤外之儲存媒體。在一實施例中,所有儲存媒體214通過一共同控制器接口加以存取,例如一IDE接口(未顯示)。在所示實施例中,儲存媒體214顯示為裝置。然而,應注意儲存媒體214必須要為裝置,而可采取其它形式,舉例來說,單芯片磁盤模塊、閃存等。所有可能的形式都在本發(fā)明的范疇中。
如圖所示,大量儲存模塊216包含多個程序,包含一操作系統(tǒng)218、一個或多個應用程序220、及一APIA 242。該操作系統(tǒng)218在一正規(guī)啟動處理期間加載與執(zhí)行的通用目的操作系統(tǒng),以為該計算機系統(tǒng)200提供一全面作業(yè)環(huán)境。該應用程序模塊220及該APIA 242執(zhí)行于該操作系統(tǒng)218所提供之環(huán)境中。為了本發(fā)明的目的,操作系統(tǒng)218可為任何操作系統(tǒng),包含但不限于Windows XP。
在一實施例中,操作系統(tǒng)218具有一中斷功能。也就是說,該操作系統(tǒng)218可將其本身與該計算機系統(tǒng)200放入所有指令執(zhí)行都中斷的一中斷模式中。一般會呼叫此功能以節(jié)省電力。
當操作系統(tǒng)218將該計算機系統(tǒng)200放入中斷模式中時,其首先收集定義該計算機系統(tǒng)200的一目前狀態(tài)的所有狀態(tài)信息。舉例來說,此狀態(tài)信息可包含關于該操作系統(tǒng)218的狀態(tài)信息、關于執(zhí)行于該操作系統(tǒng)218所提供的環(huán)境中的任何應用程序模塊220、242的狀態(tài)信息、關于該計算機系統(tǒng)200的硬件元件的狀態(tài)信息等。在此狀態(tài)信息收集完后,該操作系統(tǒng)218會儲存該信息至主存儲器226中(或若需要,儲存在硬盤216中,旦儲存該狀態(tài)信息至主存儲器226中使該操作系統(tǒng)218的回復執(zhí)行處理較快)。一旦完成,該操作系統(tǒng)218準備好中斷執(zhí)行。作為最后一個步驟,該操作系統(tǒng)218提供一電源切斷指令至該處理器202(將在下方另加討論,此為設陷的電源切斷指令)。當(且若)執(zhí)行時,此電源切斷指令會導致該處理器202寫入一組信息至該計算機系統(tǒng)200的一系統(tǒng)管理端口(未顯示)。當此信息寫入至該系統(tǒng)管理端口時,該計算機系統(tǒng)200的幾乎所有元件(除了主存儲器226之外)會切斷電源。如此一來,該操作系統(tǒng)218將該計算機系統(tǒng)200放入沒有指令由該處理器202執(zhí)行的省電中斷模式中。
該計算機系統(tǒng)200接著等待指示正規(guī)操作應回復的某些硬件驅動事件(如使用者按壓該鍵盤上的按鍵、敲擊鼠標按鈕等)。在響應此事件中,該計算機系統(tǒng)200中的硬件導至處理器202回復該操作系統(tǒng)218的執(zhí)行。在回復執(zhí)行后,該操作系統(tǒng)218使用該主存儲器226中儲存的狀態(tài)信息復原該計算機系統(tǒng)200至中斷執(zhí)行前其具有的狀態(tài)。如此一來,該操作系統(tǒng)218使其出現(xiàn)為如同執(zhí)行從未被中斷般。
在一實施例中,開拓(部分)該操作系統(tǒng)218的此中斷功能,讓該輔助程序212在該操作系統(tǒng)218已加載且執(zhí)行后執(zhí)行,而不須重新開機該計算機系統(tǒng)200。開拓此功能的方法將在稍后一節(jié)中詳加解釋。
如先前所注意,大量儲存模塊216還包含APIA 242。APIA 242是可在該操作系統(tǒng)218所提供的作業(yè)環(huán)境中呼叫與執(zhí)行的一應用程序。也就是說,在該操作系統(tǒng)218已被加載與執(zhí)行后,APIA 242出現(xiàn)于該操作系統(tǒng)接口中如同一正規(guī)可執(zhí)行程序。在一實施例中,APIA 242由一使用者呼叫以導致該輔助程序模塊212執(zhí)行的應用程序。當執(zhí)行時,APIA 242導致該操作系統(tǒng)218的執(zhí)行中斷,接著導致該輔助程序模塊212執(zhí)行(將在稍后一節(jié)中詳加解釋)。在一實施例中,APIA 242執(zhí)行幾個功能。
APIA 242執(zhí)行的功能之一為自該操作系統(tǒng)218獲得一內存配置。自先前的討論回想,該輔助程序模塊212可能必須使用主存儲器226的一部分以儲存該輔助程序模塊212執(zhí)行期間所產生的數(shù)據(jù)。該輔助程序模塊212無法直接要求該操作系統(tǒng)218配置此部分的主存儲器226給它,由于在該輔助程序模塊212執(zhí)行時,該操作系統(tǒng)218的執(zhí)行將已經(jīng)被中斷。為了避免此問題,APIA 242代表該輔助程序模塊212自該操作系統(tǒng)218獲得該內存配置,且接著傳遞關于該內存配置的信息至該輔助程序模塊212。此信息可以各種方式傳遞至該輔助程序模塊212,舉例來說,包含寫入該信息至該主存儲器226的保留部分302(圖3)的一個或多個特定位置、寫入該信息至一個或多個特定硬件緩存器等。當該輔助程序模塊212執(zhí)行時,其查看該特定位置或緩存器以獲得該內存配置信息。一旦該輔助程序模塊212具有該內存配置信息,其了解主存儲器226的哪個部分使用以儲存其執(zhí)行產生的數(shù)據(jù)。由于此內存部分由該操作系統(tǒng)218本身配置,確保該內存部分還未由該操作系統(tǒng)218使用,且因此為自由且有效的。因此,該輔助程序模塊212可寫入數(shù)據(jù)至該內存部分,而不須擔心覆蓋或錯誤任何預先存在的信息。如此一來,APIA 242以一內存保留的方式促進輔助程序模塊212的執(zhí)行。
除了為該輔助程序模塊212獲得一內存配置之外,APIA 242也導致該操作系統(tǒng)218進入中斷模式。在一實施例中,APIA 242通過提出一中斷指令至該操作系統(tǒng)218而實現(xiàn)。在響應至此指令中,該操作系統(tǒng)218初始化將其本身與該計算機系統(tǒng)200放入中斷模式中的處理。此導致該操作系統(tǒng)218的執(zhí)行中斷,且導致該輔助程序模塊212執(zhí)行。如打印機、掃描儀、網(wǎng)絡卡等。這些外圍230可通過各種端口與接口處理與該計算機系統(tǒng)200的接口,例如并列端口、串行端口、USB端口、SCSI接口等。一般來說,可處理與該計算機系統(tǒng)200的接口的任何裝置可包含為該外圍230其中之一。
樣本操作已經(jīng)揭示計算機系統(tǒng)200的元件。參照各個圖,現(xiàn)在將說明根據(jù)本發(fā)明一實施例的計算機系統(tǒng)200的一樣本操作。
在一實施例中,操作開始于當一使用者開啟該計算機系統(tǒng)200的電源或重新開機時。在開啟電源或重新開機后,該處理器202(圖2)存取該BIOS 210,并開始執(zhí)行BIOS 210中的指令。在該BIOS 210的控制下,處理器202執(zhí)行某些標準啟動功能(如初使化各種元件,以準備正規(guī)操作)。除此之外,BIOS 210導致該處理器202為一特定電源切斷指令設定一陷阱。通過放置此陷阱,當處理器202接著于正規(guī)操作期間遇到該特定電源切斷指令時,該處理器202將不會執(zhí)行該指令。而將觸發(fā)一系統(tǒng)管理中斷,將導致處理器202開始執(zhí)行該BIOS210的陷阱處理模式240。
在該陷阱設定后,BIOS 210導致處理器202執(zhí)行該輔助程序模塊212或加載與執(zhí)行該操作系統(tǒng)218。為了舉例說明,將在本討論中假設處理器202進行加載與執(zhí)行該操作系統(tǒng)218。然而,在控制自該BIOS 210轉換至該操作系統(tǒng)218之前,該BIOS 210提供一組ESCD至該操作系統(tǒng)218。此ESCD的部分指示該主存儲器226的某些部分可讓該操作系統(tǒng)218使用。在一實施例中,該ESCD指示該主存儲器226的一特定部分(舉例來說,圖3的部分302)不可由該操作系統(tǒng)218使用。通過在該ESCD中指定此,該BIOS 210導致該操作系統(tǒng)218保留該內存部分302以供其它使用。在一實施例中,該保留部分302足夠保存該輔助程序模塊212。在提供該ESCD后,該BIOS 210自其本身轉換控制至該操作系統(tǒng)218。
在控制轉換后,該操作系統(tǒng)218導致該處理器202執(zhí)行所有必要工作,以準備該計算機系統(tǒng)200的正規(guī)操作。在所有準備工作執(zhí)行前(包含使該應用程序220與APIA 242出現(xiàn)于該操作系統(tǒng)接口中如同可被呼叫的程序),該計算機系統(tǒng)200準備好正規(guī)操作。在正規(guī)操作期間,可執(zhí)行任何想要的操作,包含任何應用程序220與/或APIA 242的執(zhí)行。
在某些時候,一使用者可能呼叫APIA 242,借此指示該使用者希望執(zhí)行該輔助程序模塊212。當該APIA 242被呼叫時,其執(zhí)行幾個功能。首先,其傳送一內存配置請求至該操作系統(tǒng)218,以請求目前自由的主存儲器226的一部分。此內存部分欲由該輔助程序模塊212在該輔助程序模塊212執(zhí)行期間使用,以儲存執(zhí)行產生的數(shù)據(jù)。該操作系統(tǒng)218通過配置一自由內存部分響應此請求(舉例來說,圖4的內存部分402)至該APIA 242。在接收此內存配置后,該APIA 242傳遞關于該內存配置的信息至該輔助程序模塊212。在一實施例中,該APIA 242通過寫入該信息至該保留部分302(圖3)的一個或多個特定位置,或通過寫入該信息至一個或多個特定硬件暫存器中實現(xiàn)。
在獲得該內存配置,且關于該內存配置的信息傳遞至該輔助程序模塊212后,該APIA 242傳送一中斷指令至該操作系統(tǒng)218,以導致該操作系統(tǒng)218中斷執(zhí)行。在響應至此指令中,該操作系統(tǒng)218收集定義該計算機系統(tǒng)200的一目前狀態(tài)的所有狀態(tài)信息。舉例來說,此狀態(tài)信息可包含關于該操作系統(tǒng)218的狀態(tài)信息、關于執(zhí)行于該操作系統(tǒng)218所提供的環(huán)境中的任何應用程序220、242的狀態(tài)信息、關于該計算機系統(tǒng)200的硬件元件的狀態(tài)信息等。在收集此狀態(tài)信息后,該操作系統(tǒng)218儲存該信息至主存儲器226中。一旦完成,該操作系統(tǒng)218準備好中斷執(zhí)行。
作為最后一個步驟,該操作系統(tǒng)218提供一電源切斷指令至該處理器202。此指令欲導致該計算機系統(tǒng)200的幾乎所有硬件元件(除了該主存儲器226之外)切斷電源。然而,為此電源切斷指令已設定一陷阱,因此,不會執(zhí)行此指令,該處理器202跳至該陷阱處理模式240中,并開始執(zhí)行其中包含的指令。如此一來,該計算機系統(tǒng)200實際上不會切斷電源。通過呼叫該操作系統(tǒng)218的中斷功能,且接著根據(jù)此方式設陷該電源切斷指令,可能中斷該操作系統(tǒng)218的執(zhí)行而不會中斷該計算機系統(tǒng)200。由于該計算機系統(tǒng)200不中斷,操作可繼續(xù),即使該操作系統(tǒng)218的執(zhí)行中斷也相同。
在該陷阱處理模式240的控制下,該處理器202執(zhí)行幾個功能。首先,該處理器202重新初始化該計算機系統(tǒng)200的至少某些硬件元件,以準備好操作。此處至少一例外為該主存儲器226,其不會被重新初始化。其后,該陷阱處理模式240導致該處理器202執(zhí)行輔助程序模塊212。首先,該陷阱處理模式240導致該處理器202自該BIOS ROM 208加載該輔助程序模塊212至主存儲器226的保留部分302(圖3)中(在一實施例中,該輔助程序模塊212編譯以執(zhí)行于該主存儲器226的此保留部分302中)。接著,該陷阱處理模式240導致該處理器202執(zhí)行該保留部分302中的輔助程序模塊212??刂埔虼俗栽撓葳逄幚砟J?40轉換至該輔助程序模塊212。
當該輔助程序模塊212執(zhí)行時,首先決定其可安全使用哪些內存部分,以儲存于執(zhí)行期間產生的數(shù)據(jù)。該輔助程序模塊212通過存取由該APIA 242傳遞關于該內存動態(tài)配置部分402(圖4)的信息做成此決定。在一實施例中,該輔助程序模塊212通過存取該內存保留部分302中的一個或多個特定位置,或一個或多個特定硬件緩存器而實現(xiàn)(在一實施例中,該輔助程序模塊212程序設計具有到哪個位置尋找此信息的知識)。在獲得該內存配置信息后,該輔助程序模塊212了解內存的哪些部分(圖4的動態(tài)配置部分402)其可使用以儲存執(zhí)行產生的數(shù)據(jù)。具備此知識,該輔助程序模塊212進行完整執(zhí)行。
如先前所述,在一實施例中,該輔助程序模塊212包含其必須操作的所有元件(包含某些操作系統(tǒng)元件與裝置驅動程序)的一自足式程序。因此,在執(zhí)行期間,該輔助程序模塊212可使用任何計算機系統(tǒng)元件,且一使用者可使用任何輸出裝置(音/視頻信號)224、輸入裝置228與該輔助程序模塊212互動。當該輔助程序模塊212執(zhí)行時,其寫入于執(zhí)行期間產生的數(shù)據(jù)(若有)至先前由該操作系統(tǒng)218配置的內存動態(tài)配置部分402。由于該輔助程序模塊212只寫入至此內存的動態(tài)配置部分402,且由于該輔助程序模塊212本身自該主存儲器226的保留部分302加載與執(zhí)行,確保該輔助程序模塊212的執(zhí)行將不會打擾該主存儲器226的任何已有內容。因此,該輔助程序模塊212以一內存保留方式執(zhí)行。只要使用者需要,該輔助程序模塊212便可執(zhí)行。
在某些時候,該使用者可能決定終止該輔助程序模塊212的執(zhí)行。當發(fā)生此情況時,控制轉換回該BIOS 210的陷阱處理模式240。該陷阱處理模式240在其后導致該處理器202回復該操作系統(tǒng)218的執(zhí)行。在回復執(zhí)行后,該操作系統(tǒng)218存取該主存儲器226,且從此獲得先前儲存的狀態(tài)信息。使用此狀態(tài)信息,該操作系統(tǒng)218將該計算機系統(tǒng)200恢復至中斷該操作系統(tǒng)218的執(zhí)行前其具有的狀態(tài)。在該計算機系統(tǒng)200恢復后,該APIA 242終止執(zhí)行。此過程在某些時候導致該操作系統(tǒng)218解除配置先前配置給APIA 242的內存動態(tài)配置部分402。該計算機系統(tǒng)200因此放入如同該輔助程序模塊212未曾執(zhí)行過的相同狀態(tài)中。
根據(jù)上述方式,一輔助程序可在一操作系統(tǒng)已加載且執(zhí)行后執(zhí)行于一計算機系統(tǒng)中,而不須重新開機該計算機系統(tǒng)。
在此時,應注意雖然本發(fā)明已參照特定實施例加以說明,不應視為如此受限。熟悉該項記憶人士在不超出本發(fā)明精神外對此揭示可做出各種修改。
當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1.一種實施于計算機系統(tǒng)中的方法,該計算機系統(tǒng)具有一操作系統(tǒng)執(zhí)行于其上,其特征在于,該方法包含儲存定義該計算機系統(tǒng)的一目前狀態(tài)的狀態(tài)信息;中斷該操作系統(tǒng)的執(zhí)行;當該操作系統(tǒng)的執(zhí)行中斷時執(zhí)行一程序模塊;及回復該操作系統(tǒng)的執(zhí)行,并根據(jù)該狀態(tài)信息,復原該計算機系統(tǒng)至該目前狀態(tài)。
2.根據(jù)權利要求1所述的方法,其特征在于,該計算機系統(tǒng)包含一內存,該方法還包含在一啟動處理期間提供一指示給該操作系統(tǒng),指示該內存的特定部分不可由該操作系統(tǒng)使用;且其中執(zhí)行該程序模塊的步驟包含加載該程序模塊至該操作系統(tǒng)不可使用的內存的一特定部分。
3.根據(jù)權利要求1所述的方法,其特征在于,該計算機系統(tǒng)包含一內存,且其中該方法在中斷該操作系統(tǒng)之前還包含傳送一內存配置請求至該操作系統(tǒng);從該操作系統(tǒng)接收一內存配置,該內存配置指示自由且可使用的內存的一特定部分;儲存關于該內存配置的信息于該程序模塊了解要存取的一位置中;存取關于該內存配置的信息;及使用由該內存配置指示的內存的特定部分,以儲存該程序模塊執(zhí)行期間產生的數(shù)據(jù)。
4.根據(jù)權利要求1所述的方法,其特征在于,該程序模塊不需要該操作系統(tǒng)的操作而具有其本身的操作系統(tǒng)元件組的一自足式程序模塊。
5.根據(jù)權利要求1所述的方法,其特征在于,該程序模塊包含有一網(wǎng)頁瀏覽器、一媒體播放器、一調整程序及其組合的其中之一。
6.根據(jù)權利要求1所述的方法,其特征在于,該計算機系統(tǒng)包含一基本輸出/入系統(tǒng),而中斷該操作系統(tǒng)的執(zhí)行步驟包含命令該操作系統(tǒng)進入一省電模式,導致該操作系統(tǒng)中斷執(zhí)行;檢測欲執(zhí)行的一指令,將導致該操作系統(tǒng)的一個或多個硬件元件切斷電源;及呼叫設于基本輸出/入系統(tǒng)中將導致該程序模塊執(zhí)行的一模式,而設陷該指令使其不能執(zhí)行,從而避免該一個或多個硬件元件切斷電源。
7.一種計算機系統(tǒng),其特征在于,包含用以導致一操作系統(tǒng)的執(zhí)行中斷的一機構;用以導致當該操作系統(tǒng)的執(zhí)行中斷時執(zhí)行一程序模塊的一機構;及用以導致該操作系統(tǒng)的執(zhí)行回復的一機構。
8.根據(jù)權利要求7所述的計算機系統(tǒng),其特征在于,還包含一操作系統(tǒng),該操作系統(tǒng)包含用以接收一指令以進入一省電模式的一機構;用以儲存定義該計算機的一目前狀態(tài)的狀態(tài)信息的一機構,該狀態(tài)信息讓該計算機系統(tǒng)的目前狀態(tài)在一段時間后復原;用以中斷該操作系統(tǒng)執(zhí)行的一機構;及用以當該操作系統(tǒng)的執(zhí)行回復時根據(jù)該狀態(tài)信息復原該操作系統(tǒng)為該目前狀態(tài)的一機構。
9.根據(jù)權利要求7所述的計算機系統(tǒng),其特征在于,該計算機系統(tǒng)還包含一內存,該操作系統(tǒng)還包含有用以在一啟動處理期間提供一指示給該操作系統(tǒng)的一機構,指示該內存的一特定部分不可由該操作系統(tǒng)使用;且該用以導致該程序模塊在該操作系統(tǒng)執(zhí)行中斷時執(zhí)行的機構包含用以導致該程序模塊加載不可由該操作系統(tǒng)使用的內存的該特定部分中。
10.根據(jù)權利要求7所述的計算機系統(tǒng),其特征在于,該計算機系統(tǒng)還包含一內存;用以傳送一內存配置請求至該操作系統(tǒng)的一機構;用以從該操作系統(tǒng)接收一內存配置的一機構,該內存配置指示自由且可使用的內存的一特定部分;及用以傳遞關于該內存配置的信息至該程序模塊,以讓該程序模塊在執(zhí)行期間使用內存的特定部分的一機構。
11.根據(jù)權利要求10所述的計算機系統(tǒng),其特征在于,關于該內存配置的信息在該操作系統(tǒng)的執(zhí)行中斷前傳遞至該程序模塊;而用以傳遞關于該內存配置的信息的機構包含用以導致關于該內存配置的信息儲存于該程序模塊了解要存取的一位置中的一機構。
12.根據(jù)權利要求11所述的計算機系統(tǒng),其特征在于,還包含該程序模塊,該程序模塊包含用以存取關于該內存配置的信息的一機構;及用以使用由該內存配置指示的內存的特定部分,以儲存該程序模塊執(zhí)行期間所產生的數(shù)據(jù)的一機構。
13.根據(jù)權利要求7所述的計算機系統(tǒng),其特征在于,還包含該程序模塊,該程序模塊為不需要該操作系統(tǒng)以操作而具有其本身的操作系統(tǒng)元件組的一自足式程序模塊。
14.根據(jù)權利要求7所述的計算機系統(tǒng),其特征在于,還包含該程序模塊,該程序模塊包含有一網(wǎng)頁瀏覽器、一媒體播放器、一調諧器及其組合的其中之一。
15.根據(jù)權利要求7所述的計算機系統(tǒng),其特征在于,用以導致該操作系統(tǒng)的執(zhí)行中斷的機構包含用以命令該操作系統(tǒng)進入導致該操作系統(tǒng)的執(zhí)行中斷的一省電模式的一機構;用以檢測將導致該計算機系統(tǒng)的一個或多個元件關閉電源的欲執(zhí)行的一指令的一機構;及用以設陷該指令導致其不能執(zhí)行,從而避免該一個或多個硬件元件關閉電源的一機構。
16.根據(jù)權利要求15所述的計算機系統(tǒng),其特征在于,還包含用以為導致該指令在相遇時陷補設定一陷阱的一機構。
全文摘要
本發(fā)明涉及一種實施于計算機系統(tǒng)中的方法,該計算機系統(tǒng)具有操作系統(tǒng)執(zhí)行于其上,該方法包含儲存定義該計算機系統(tǒng)的目前狀態(tài)的狀態(tài)信息;中斷該操作系統(tǒng)的執(zhí)行;當該操作系統(tǒng)的執(zhí)行中斷時執(zhí)行程序模塊;及回復該操作系統(tǒng)的執(zhí)行,并根據(jù)該狀態(tài)信息,復原該計算機系統(tǒng)至該目前狀態(tài)。本發(fā)明通過將輔助程序執(zhí)行于操作系統(tǒng)加載且執(zhí)行,而不須重新開機該計算機系統(tǒng)。
文檔編號G06F9/48GK1629811SQ20051000058
公開日2005年6月22日 申請日期2005年1月13日 優(yōu)先權日2004年6月30日
發(fā)明者張榮文 申請人:雅勁科技公司