專利名稱:用于除了操作一個(gè)主操作系統(tǒng)外還操作一個(gè)輔助操作系統(tǒng)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在一臺(tái)計(jì)算機(jī)上除了操作一個(gè)主操作系統(tǒng)外還操作一個(gè)輔助操作系統(tǒng)的方法和裝置。
操作一臺(tái)計(jì)算機(jī)上的、確切地說加載在一臺(tái)計(jì)算機(jī)的隨機(jī)訪問存儲(chǔ)器中的兩個(gè)操作系統(tǒng)是已知的,這兩個(gè)操作系統(tǒng)的操作無需重新起動(dòng)計(jì)算機(jī),不僅可以通過替代方式而且可以交替地運(yùn)行。
WO 98/09225展示了一種通過專用的微核(Microkernel)對(duì)傳統(tǒng)的不具有實(shí)時(shí)能力的微軟視窗系統(tǒng)進(jìn)行實(shí)時(shí)擴(kuò)展的操作系統(tǒng)。
DE 4406094 C2也示出了傳統(tǒng)微軟視窗系統(tǒng)的一種實(shí)時(shí)擴(kuò)展,它借助于一個(gè)完整的實(shí)時(shí)操作系統(tǒng)來實(shí)現(xiàn),這個(gè)操作系統(tǒng)獨(dú)立地、即與視窗系統(tǒng)無關(guān)地在計(jì)算機(jī)上運(yùn)行。這種輔助的實(shí)時(shí)操作系統(tǒng)在此只對(duì)處理器寄存器的底層和計(jì)算機(jī)的硬件單元進(jìn)行直接訪問。
在一個(gè)操作系統(tǒng)下仿真一個(gè)虛擬計(jì)算機(jī)(虛擬機(jī))也已被公開,在其上可以運(yùn)行第二個(gè)操作系統(tǒng)。這里輔助操作系統(tǒng)在仿真虛擬計(jì)算機(jī)的監(jiān)視程序的控制下運(yùn)行。輔助操作系統(tǒng)可以不直接訪問處理器的所有寄存器,而是僅在監(jiān)視程序的控制下進(jìn)行訪問?,F(xiàn)有技術(shù)中的主要問題在于,至少一個(gè)操作系統(tǒng)的源碼必須是已知的,因?yàn)樵谝粤餍械姆绞讲僮鲿r(shí)提供者不公開的部分同樣會(huì)受到攻擊,或者甚至在至少一個(gè)操作系統(tǒng)上,這些部分、尤其是相同的部分會(huì)出現(xiàn)變化。此外的缺點(diǎn)在于,一個(gè)操作系統(tǒng)必須在另一個(gè)操作系統(tǒng)“之下”運(yùn)行,即嵌入到另一個(gè)操作系統(tǒng)中。
本發(fā)明的目的在于提供一種方法和一種裝置,借助所述方法和裝置可以在一臺(tái)計(jì)算機(jī)上運(yùn)行至少兩個(gè)操作系統(tǒng),而不會(huì)降低它們的性能,尤其是保持實(shí)時(shí)能力而不影響輔助操作系統(tǒng),最多只影響其主板支持程序包,其中輔助操作系統(tǒng)在其被激活時(shí)在中央處理單元(CPU)中如此工作它就像唯一的操作系統(tǒng)那樣被加載,并從而可訪問整個(gè)處理器和它的虛擬存儲(chǔ)區(qū),而沒有任何限制。
按照本發(fā)明,上述關(guān)于方法的任務(wù)如此完成主操作系統(tǒng)的一個(gè)用于加載和控制輔助操作系統(tǒng)的輔助操作系統(tǒng)驅(qū)動(dòng)程序(SBS驅(qū)動(dòng)程序)被加載。
用于在一臺(tái)計(jì)算機(jī)上除了操作一個(gè)主操作系統(tǒng)外還操作一個(gè)輔助操作系統(tǒng)的裝置按照本發(fā)明具有主操作系統(tǒng)的一個(gè)用于加載和控制輔助操作系統(tǒng)的輔助操作系統(tǒng)驅(qū)動(dòng)程序(SBS驅(qū)動(dòng)程序)。
按照本發(fā)明,可以訪問輔助操作系統(tǒng),而無需借助于主操作系統(tǒng)。
兩個(gè)操作系統(tǒng)并行實(shí)現(xiàn)在一臺(tái)計(jì)算機(jī)上的設(shè)計(jì)意味著兩個(gè)操作系統(tǒng)完全相互獨(dú)立地在計(jì)算機(jī)上工作,特別是這些操作系統(tǒng)相互不構(gòu)成先決條件,即輔助操作系統(tǒng)也不以主操作系統(tǒng)的功能存在為前提。系統(tǒng)驅(qū)動(dòng)程序僅用于操作系統(tǒng)的更換。也可將包括系統(tǒng)驅(qū)動(dòng)程序在內(nèi)的主操作系統(tǒng)的整個(gè)安全區(qū)域在輔助操作系統(tǒng)中進(jìn)行改寫,而不損害其功能,反過來回到主操作系統(tǒng)自然不再可能。這意味著不是一個(gè)操作系統(tǒng)(特別是輔助操作系統(tǒng))安裝在另一個(gè)(特別是主操作系統(tǒng))之上,或者只是對(duì)其進(jìn)行訪問。在一個(gè)操作系統(tǒng)運(yùn)行時(shí)并不執(zhí)行另一個(gè)操作系統(tǒng)的代碼部分。特別是輔助操作系統(tǒng)在其運(yùn)行時(shí)也不訪問系統(tǒng)驅(qū)動(dòng)程序。按照本發(fā)明,沒有操作系統(tǒng)嵌入到另一個(gè)操作系統(tǒng)中,它也不永久性地預(yù)設(shè)。這對(duì)于輔助操作系統(tǒng)比主操作系統(tǒng)更為適用。為了調(diào)用和啟動(dòng)一個(gè)操作系統(tǒng),尤其是輔助操作系統(tǒng),在這個(gè)操作系統(tǒng)(輔助操作系統(tǒng))中也不需要包括系統(tǒng)驅(qū)動(dòng)程序在內(nèi)的另一操作系統(tǒng)一主操作系統(tǒng)的信息。兩個(gè)操作系統(tǒng),尤其是輔助操作系統(tǒng),是完全自主地運(yùn)行。
由于按照本發(fā)明設(shè)置了一個(gè)主操作系統(tǒng)的驅(qū)動(dòng)程序,用于通過其主板支持程序包控制和加載輔助操作系統(tǒng),從而避免了以下問題即為了除主操作系統(tǒng)之外還操作輔助操作系統(tǒng),必須改變輔助操作系統(tǒng)的內(nèi)核。
主板支持程序包是在一個(gè)硬件(主板)與一個(gè)操作系統(tǒng)之間建立連接(支持)的軟件。在多種主板類型(包括處理器、存儲(chǔ)器等在內(nèi)的硬件環(huán)境)上應(yīng)用的操作系統(tǒng)都具有一個(gè)BSP(主板支持程序包),它是操作系統(tǒng)的一個(gè)固定組成部分。嵌入式操作系統(tǒng)如Windows CE由一個(gè)操作系統(tǒng)內(nèi)核和BSP組成,人們通過改變BSP可使操作系統(tǒng)適配于專門的硬件主板類型,而無需了解操作系統(tǒng)內(nèi)核。
操作系統(tǒng)的主板支持程序包通常由操作系統(tǒng)的提供者在源代碼中給出,因?yàn)樗^的基礎(chǔ)硬件服務(wù),通過此服務(wù)對(duì)出問題的操作系統(tǒng)形成必要的硬件的接口,如中斷控制器、系統(tǒng)定時(shí)器等,并且用于不同主板類型的硬件系統(tǒng),即不同的CPU主板類型的主板支持系統(tǒng)已被開發(fā)出來,如由一家制造廠所指定的、與準(zhǔn)標(biāo)準(zhǔn)不同的硬件開發(fā)。從而通過本發(fā)明所述的解決方案,所有操作系統(tǒng)都可用作輔助操作系統(tǒng),它可借助于主板支持程序包被配置和適配,而在其用作輔助操作系統(tǒng)時(shí)不喪失其性能,并且對(duì)于實(shí)時(shí)操作系統(tǒng)也不會(huì)喪失其實(shí)時(shí)性。
在本發(fā)明所述方法的一個(gè)優(yōu)選的方案中,在切換所使用的操作系統(tǒng)時(shí),在易失性存儲(chǔ)器中完成中斷表的交換。本發(fā)明所述裝置據(jù)此來構(gòu)造。這樣基于輔助操作系統(tǒng)的中斷表登錄信息在一次中斷時(shí)輔助操作系統(tǒng)跳轉(zhuǎn)到輔助操作系統(tǒng)的正確的中斷服務(wù)程序中,從而在沒有主操作系統(tǒng)時(shí)完成了看起來相同的過程。從而可以在不了解源代碼的情況下并行或同時(shí)地運(yùn)行兩個(gè)操作系統(tǒng)。根據(jù)本發(fā)明,主操作系統(tǒng)的信息沒有存儲(chǔ)在輔助操作系統(tǒng)的存儲(chǔ)區(qū)內(nèi)。兩個(gè)操作系統(tǒng)都不具有關(guān)于其另一個(gè)的信息。
在本發(fā)明所述方法的另一個(gè)優(yōu)選的方案中,用主操作系統(tǒng)加載的輔助操作系統(tǒng)驅(qū)動(dòng)程序(SBS驅(qū)動(dòng)程序)來加載輔助操作系統(tǒng),而且加載到物理隨機(jī)訪問存儲(chǔ)器的未被主操作系統(tǒng)所使用的存儲(chǔ)區(qū)內(nèi),最好是其上部區(qū)域中。
在優(yōu)選的實(shí)施方式中,在計(jì)算機(jī)的中央單元(CPU)中獲得存儲(chǔ)器上下文(虛擬工作空間),其中尤其是SBS驅(qū)動(dòng)程序在中央單元(CPU)中可以占據(jù)一個(gè)隧道上下文,通過它作為操作系統(tǒng)的工作交換的中介。稱作“上下文”的虛擬工作空間由物理存儲(chǔ)器的任意一些塊組成。一個(gè)存儲(chǔ)器管理單元(MMU)管理這些在一個(gè)被稱作MMU表的存儲(chǔ)器分配表中的上下文,通過它來寫入上下文。在程序技術(shù)上,人們?cè)谔摂M地址空間中運(yùn)動(dòng),所述虛擬地址空間通過MMU的工作指令映射到物理存儲(chǔ)器上。
在改進(jìn)方案中,在加載輔助操作系統(tǒng)之后實(shí)現(xiàn)至該操作系統(tǒng)的跳轉(zhuǎn),精確說是到主板支持程序包的跳轉(zhuǎn),這個(gè)程序包在進(jìn)一步的設(shè)計(jì)中在處理器中建立一個(gè)主輔助操作系統(tǒng)的引導(dǎo)程序的上下文。
在另一種方案中,一個(gè)包含在驅(qū)動(dòng)程序中的隧道存儲(chǔ)器頁也被加載到隧道上下文中,程序進(jìn)程轉(zhuǎn)到這個(gè)隧道存儲(chǔ)器頁中,進(jìn)一步通過它將輔助操作系統(tǒng)的程序代碼加載到新的存儲(chǔ)器上下文中,并且輔助操作系統(tǒng)的整個(gè)引導(dǎo)過程繼續(xù)進(jìn)行。
為了實(shí)現(xiàn)上述方法步驟,在本發(fā)明所述裝置的優(yōu)選實(shí)施方式中,SBS驅(qū)動(dòng)程序具有一個(gè)SBS加載段和一個(gè)包含隧道存儲(chǔ)器頁的隧道區(qū)。
在本發(fā)明所述方法的一個(gè)優(yōu)選方案中,在輔助操作系統(tǒng)被加載后或者在其每次運(yùn)行中,當(dāng)輔助操作系統(tǒng)休止時(shí)(它進(jìn)入空循環(huán)(Idle-loop)),或者在輔助操作系統(tǒng)的程序運(yùn)行通過一個(gè)相應(yīng)的跳回命令而跳回到主操作系統(tǒng)時(shí),實(shí)現(xiàn)由輔助操作系統(tǒng)至主操作系統(tǒng)的切換。
為了實(shí)現(xiàn)這一方法步驟,本發(fā)明所述裝置中主板支持程序包具有一個(gè)相應(yīng)的跳回段。
本發(fā)明所述方法的另一個(gè)優(yōu)選方案中,從主操作系統(tǒng)到輔助操作系統(tǒng)的轉(zhuǎn)換通過一個(gè)為輔助操作系統(tǒng)所確定的SBS中斷請(qǐng)求來實(shí)現(xiàn)。
為此,SBS驅(qū)動(dòng)程序具有一個(gè)中斷表格段,借助于它SBS驅(qū)動(dòng)程序在主操作系統(tǒng)中產(chǎn)生一個(gè)中斷調(diào)用表(中斷表),它還包含一個(gè)用于調(diào)用輔助操作系統(tǒng)的中斷處理程序的調(diào)用子程序。
在本發(fā)明所述方法的優(yōu)選改進(jìn)中,一個(gè)中斷處理程序在SBS驅(qū)動(dòng)程序中讀出輔助操作系統(tǒng)的中斷調(diào)用表,并在中斷調(diào)用相關(guān)位置處完成或繼續(xù)進(jìn)行輔助操作系統(tǒng)的處理。
如果完成了一個(gè)不是為主操作系統(tǒng)所確定的中斷調(diào)用,則SPS系統(tǒng)驅(qū)動(dòng)程序截獲此中斷調(diào)用,并通過主板支持程序包將其送到輔助操作系統(tǒng),從而本發(fā)明借助于主操作系統(tǒng)的SBS驅(qū)動(dòng)程序和輔助操作系統(tǒng)的主板支持程序包實(shí)現(xiàn)操作系統(tǒng)間的切換。
特別是到目前為止處理器不支持上下文的直接切換,在本發(fā)明另一個(gè)方案中,借助于一個(gè)在附加到主操作系統(tǒng)上下文和輔助操作系統(tǒng)上下文的隧道上下文中的隧道區(qū)實(shí)現(xiàn)激活操作系統(tǒng)的切換。
在本發(fā)明所述方法的另一優(yōu)選方案中,在從一個(gè)操作系統(tǒng)切換到另一個(gè)操作系統(tǒng)時(shí)所有的系統(tǒng)狀態(tài)被存儲(chǔ)(在隨機(jī)訪問存儲(chǔ)器中),尤其是全部CPU寄存器被存儲(chǔ),并且最好全部的處理器內(nèi)部緩存被清空。在相應(yīng)的改進(jìn)中,在從一個(gè)操作系統(tǒng)切換到另一個(gè)操作系統(tǒng)時(shí),另一個(gè)操作系統(tǒng)的新的系統(tǒng)狀態(tài),尤其是CPU寄存器內(nèi)容和存儲(chǔ)器管理表(MMU表)被加載到處理器中。
最后,本發(fā)明在另一方案中建議用于輔助操作系統(tǒng)的時(shí)鐘產(chǎn)生由硬件主定時(shí)器(定時(shí)器)完成,即只有輔助操作系統(tǒng)對(duì)其進(jìn)行訪問,而用于主操作系統(tǒng)的時(shí)鐘產(chǎn)生由一個(gè)時(shí)鐘系統(tǒng)驅(qū)動(dòng)器完成。在下述情況下這是特別具有優(yōu)點(diǎn)的輔助操作系統(tǒng)是一個(gè)用于控制一臺(tái)工業(yè)設(shè)備或機(jī)器的實(shí)時(shí)操作系統(tǒng),同時(shí)主操作系統(tǒng)用于由一個(gè)操作人員進(jìn)行操作,并為操作人員特別提供了一個(gè)符合人體工程學(xué)的圖形界面以用于操作。
本發(fā)明的其它優(yōu)點(diǎn)和特征由權(quán)利要求和以下的說明給出,在以下的說明中借助附圖所示各個(gè)實(shí)施例詳細(xì)說明本發(fā)明。附圖中
圖1示出一臺(tái)計(jì)算機(jī)的各個(gè)資源對(duì)主操作系統(tǒng)和輔助操作系統(tǒng)的配置,并以輔助操作系統(tǒng)為例示出一個(gè)操作系統(tǒng)的結(jié)構(gòu);圖2示出加載輔助操作系統(tǒng)的過程以及在輔助操作系統(tǒng)休止時(shí)跳回主操作系統(tǒng)的過程;
圖3示出從主操作系統(tǒng)到輔助操作系統(tǒng)的切換;以及圖4說明主操作系統(tǒng)時(shí)鐘的同步。
圖1示出在本發(fā)明中一臺(tái)計(jì)算機(jī)的(硬件)資源HR對(duì)主操作系統(tǒng)PBS和輔助操作系統(tǒng)SBS的配置。此圖還以輔助操作系統(tǒng)SBS為例示出一個(gè)操作系統(tǒng)的原理結(jié)構(gòu)。
一個(gè)操作系統(tǒng)首先具有一個(gè)核K作為其中央核心。它還具有一個(gè)主板支持程序包,在此程序包中實(shí)現(xiàn)基本硬件服務(wù)BHD。這些服務(wù)描述了操作系統(tǒng)所必需的與硬件—如中斷控制器、系統(tǒng)時(shí)鐘發(fā)生器等的接口。BHD使得操作系統(tǒng)可以在不同的硬件系統(tǒng)上使用。習(xí)慣上BSP由制造廠以源形式提供,從而硬件制造廠可以使操作系統(tǒng)與其硬件相適配。
操作系統(tǒng)還具有結(jié)構(gòu)服務(wù)AD,它形成操作系統(tǒng)所必需的與專門針對(duì)中央計(jì)算機(jī)的服務(wù)—如異常處理、中斷處理、MMU管理等的接口。AD使得操作系統(tǒng)可以在不同的中央處理器單元主板類型(CPU主板類型)上使用。
操作系統(tǒng)還具有通用的操作系統(tǒng)服務(wù)BSD,它給應(yīng)用軟件AS(AS1,AS2)提供優(yōu)質(zhì)服務(wù),如存儲(chǔ)器管理、網(wǎng)絡(luò)服務(wù)、多任務(wù)服務(wù)等。在一個(gè)操作系統(tǒng)中,通常僅以源形式提供BSP,同時(shí)結(jié)構(gòu)服務(wù)和通用操作系統(tǒng)服務(wù)的適配是不可能的。此外描述了為兩個(gè)操作系統(tǒng)所配置的物理存儲(chǔ)器PS1和PS2以及中斷控制部分IC1和IC2,中斷控制部分控制對(duì)PBS或?qū)BS的中斷。
由圖1可見,計(jì)算機(jī)的主要資源對(duì)操作系統(tǒng)的分配如下所述兩個(gè)操作系統(tǒng)分別在它們激活的時(shí)刻應(yīng)用全部虛擬存儲(chǔ)器VS和整個(gè)CPU寄存器CPU-R,特別是如標(biāo)準(zhǔn)寄存器、浮點(diǎn)寄存器、控制寄存器。兩個(gè)操作系統(tǒng)首先分配隨機(jī)訪問存儲(chǔ)器RAM,其中每個(gè)操作系統(tǒng)占用此存儲(chǔ)器的一部分,并且輔助操作系統(tǒng)SBS最好被加載到隨機(jī)訪問存儲(chǔ)器RAM的上面部分。兩個(gè)操作系統(tǒng)還劃分中斷控制器IRC,其中為每個(gè)操作系統(tǒng)配置了明確的中斷。
輔助操作系統(tǒng)特別是單獨(dú)訪問系統(tǒng)定時(shí)器SZG,而主操作系統(tǒng)PBS單獨(dú)訪問硬盤EP。此外相應(yīng)的操作系統(tǒng)還配置有驅(qū)動(dòng)程序T1(主操作系統(tǒng)的驅(qū)動(dòng)程序)或T2(輔助操作系統(tǒng)的驅(qū)動(dòng)程序),用于管理相應(yīng)操作系統(tǒng)的附加硬件ZHP(用于主操作系統(tǒng)的附加硬件)或ZHS(用于輔助操作系統(tǒng)的附加硬件)。
主操作系統(tǒng)的一個(gè)驅(qū)動(dòng)程序是驅(qū)動(dòng)程序SBS-T,用于加載輔助操作系統(tǒng)。
圖2示出了輔助操作系統(tǒng)SBS的加載。
這里首先假設(shè),主操作系統(tǒng)PBS以通常的方式借助于一個(gè)引導(dǎo)程序被加載到計(jì)算機(jī)的存儲(chǔ)器中,并且與輔助操作系統(tǒng)SBS的系統(tǒng)驅(qū)動(dòng)程序SBS-T一起被加載。
在加載主操作系統(tǒng)PBS之后,首先SBS-T將輔助操作系統(tǒng)SBS加載到RAM存儲(chǔ)器的一個(gè)獨(dú)立的、未由主操作系統(tǒng)PBS所使用的存儲(chǔ)區(qū)中,最好是物理RAM的上部區(qū)域,從而輔助操作系統(tǒng)驅(qū)動(dòng)程序SBS-T形成了用于輔助操作系統(tǒng)SBS的引導(dǎo)程序。
除了以通常方式建立主操作系統(tǒng)PBS的存儲(chǔ)器上下文外,為了應(yīng)用輔助操作系統(tǒng)首先通過系統(tǒng)驅(qū)動(dòng)程序建立了一個(gè)至輔助操作系統(tǒng)的引導(dǎo)程序的上下文BK,并且在CPU中建立一個(gè)隧道上下文TK,用于在主操作系統(tǒng)的上下文PK和上述BK之間進(jìn)行切換。
在加載到輔助操作系統(tǒng)的主板支持程序包的過程之后完成由系統(tǒng)驅(qū)動(dòng)程序SBS-T到輔助操作系統(tǒng)的跳轉(zhuǎn)(圖2中的步驟1至2)。如圖中箭頭所示,系統(tǒng)驅(qū)動(dòng)程序SBS-T只是對(duì)于從主操作系統(tǒng)到輔助操作系統(tǒng)的切換是必要的。然后程序處理在輔助操作系統(tǒng)的主板支持程序包中進(jìn)行。主板支持程序包同時(shí)建立用于引導(dǎo)SBS所需的上下文BK。接著程序進(jìn)行到隧道上下文TK的隧道區(qū)TB(步驟3),引導(dǎo)上下文BK被加載(步驟4)并且繼續(xù)進(jìn)行輔助操作系統(tǒng)的引導(dǎo)過程(步驟5)。這里SBS建立其自己的上下文,在將來的每次從PBS到SBS的切換時(shí)轉(zhuǎn)到這個(gè)上下文中。為此隧道區(qū)包含在引導(dǎo)加載上下文或輔助上下文與隧道上下文之間的“轉(zhuǎn)換碼”。隧道區(qū)正好由一個(gè)存儲(chǔ)器頁組成,在其中存儲(chǔ)所述轉(zhuǎn)換碼。這些轉(zhuǎn)換碼在所有上下文(隧道上下文和引導(dǎo)加載上下文或輔助上下文)中位于其虛擬地址處。
在切換到輔助操作系統(tǒng)SBS之后以及在其運(yùn)行時(shí),輔助操作系統(tǒng)的系統(tǒng)驅(qū)動(dòng)程序SBS-T不再需要,不再訪問主操作系統(tǒng)PBS的這個(gè)部分或其它部分,并且不使用它們。輔助操作系統(tǒng)完全自主地工作。
如果輔助操作系統(tǒng)SBS進(jìn)入休止?fàn)顟B(tài)IL(空循環(huán)),則自動(dòng)完成到主操作系統(tǒng)的跳轉(zhuǎn)(步驟6,7,8)。只要輔助操作系統(tǒng)被激活,出現(xiàn)的中斷請(qǐng)求僅由輔助操作系統(tǒng)SBS處理。
在加載輔助操作系統(tǒng)SBS之前,以及在每次切換到它時(shí),主操作系統(tǒng)的全部CPU寄存器被存儲(chǔ),并且CPU內(nèi)部緩存被清空。
在加載輔助操作系統(tǒng)時(shí),以及在切換到輔助操作系統(tǒng)時(shí),輔助操作系統(tǒng)SBS的全部CPU寄存器及其MMU表被加載。
在從輔助操作系統(tǒng)SBS切換到主操作系統(tǒng)SBS時(shí),輔助操作系統(tǒng)的系統(tǒng)狀態(tài)的保護(hù)和系統(tǒng)狀態(tài)的加載以與主操作系統(tǒng)相應(yīng)的方式實(shí)現(xiàn)。
如果中央計(jì)算單元(CPU)支持上下文的直接轉(zhuǎn)換,例如借助于任務(wù)—安全程序段的Intel-x86結(jié)構(gòu)就是這種情況,也可以省去隧道上下文,操作系統(tǒng)之間的切換可直接通過主上下文PK和輔助上下文SK實(shí)現(xiàn)。
從調(diào)用主操作系統(tǒng)PBS使其激活到激活輔助操作系統(tǒng)SBS的切換只在一個(gè)為SBS所確定的中斷請(qǐng)求(中斷)中完成。在出現(xiàn)一次中斷請(qǐng)求時(shí),系統(tǒng)驅(qū)動(dòng)程序ST和輔助操作系統(tǒng)的BSP(主板支持程序包)轉(zhuǎn)到輔助操作系統(tǒng)SBS的存儲(chǔ)器上下文SK中,并在那里執(zhí)行相應(yīng)配置的中斷服務(wù)程序。
在主操作系統(tǒng)被激活時(shí)按照?qǐng)D3所示步驟完成至輔助操作系統(tǒng)的切換在主操作系統(tǒng)被激活且中斷過程進(jìn)行時(shí),中央計(jì)算單元最好基于中斷請(qǐng)求直接轉(zhuǎn)到系統(tǒng)驅(qū)動(dòng)程序(步驟A)—該中斷由系統(tǒng)驅(qū)動(dòng)程序獲取。系統(tǒng)驅(qū)動(dòng)程序ST保護(hù)所有的處理器寄存器,并轉(zhuǎn)換到隧道上下文TK(圖2)。系統(tǒng)驅(qū)動(dòng)程序直接轉(zhuǎn)到輔助操作系統(tǒng)的BSP的通用中斷處理。這里直接借助或通過訪問輔助操作系統(tǒng)的中斷表來獲知輔助操作系統(tǒng)的中斷服務(wù)程序SIR所在位置,處理應(yīng)轉(zhuǎn)到此處理程序中(步驟B)。
通用的中斷處理通過激活輔助操作系統(tǒng)上下文SK(步驟C)的隧道功能由系統(tǒng)驅(qū)動(dòng)程序轉(zhuǎn)入,然后指向輔助操作系統(tǒng)SBS中的中斷服務(wù)程序ISR(步驟D),并且不經(jīng)過輔助操作系統(tǒng)的任何專用代碼,因此此代碼在本發(fā)明中是不需要和不存在的。
接著輔助操作系統(tǒng)SBS進(jìn)行處理直到全部處理進(jìn)行完畢,并從而轉(zhuǎn)入輔助操作系統(tǒng)SBS的休止循環(huán)(空循環(huán))。
當(dāng)輔助操作系統(tǒng)SBS被激活且對(duì)它的一個(gè)中斷出現(xiàn)時(shí),中斷服務(wù)程序ISR的調(diào)用自動(dòng)實(shí)現(xiàn)而無需其它的訪問。處理器自己跳轉(zhuǎn)到那里,因?yàn)樵趶闹鞑僮飨到y(tǒng)以通常方式切換到輔助操作系統(tǒng)時(shí),在處理器中更換了中斷表,在這次切換中輔助操作系統(tǒng)SBS的中斷表被設(shè)置。在圖3中僅示出了步驟D。所以也可以清除主操作系統(tǒng)PBS和它的系統(tǒng)驅(qū)動(dòng)程序,而對(duì)輔助操作系統(tǒng)SBS沒有限制。
從休止循環(huán)出發(fā)通過隧道區(qū)轉(zhuǎn)入隧道上下文TK(圖2中的步驟6,7)。隧道功能重又回到主操作系統(tǒng)PBS的系統(tǒng)驅(qū)動(dòng)程序(步驟8),從那里出發(fā)驅(qū)動(dòng)程序又激活主上下文PK,繼續(xù)操作主操作系統(tǒng)PBS。
除了用輔助操作系統(tǒng)SBS的休止循環(huán)IL作為切換到主操作系統(tǒng)的跳轉(zhuǎn)點(diǎn)之外還存在以下可能性通過輔助操作系統(tǒng)SBS中的一個(gè)常規(guī)的過程觸發(fā)這種切換。為此在SBS中存在輔助操作系統(tǒng)SBS的一個(gè)功能,此功能可以被處理器調(diào)用。然后此調(diào)用又轉(zhuǎn)回主操作系統(tǒng)(步驟6至8),直至出現(xiàn)對(duì)輔助操作系統(tǒng)SBS的下一個(gè)中斷請(qǐng)求。
如上面已經(jīng)說明的,主系統(tǒng)定時(shí)器HSZG由輔助操作系統(tǒng)SBS來控制。為此主操作系統(tǒng)例如通過補(bǔ)丁被進(jìn)一步改變,使得對(duì)主系統(tǒng)定時(shí)器HSZG的整體訪問由系統(tǒng)驅(qū)動(dòng)程序ST來獲取。此驅(qū)動(dòng)程序存儲(chǔ)了關(guān)于主操作系統(tǒng)應(yīng)以什么節(jié)拍速率被操作的信息。輔助操作系統(tǒng)中的節(jié)拍速率必須比主操作系統(tǒng)的更高。如圖4所示,為了主操作系統(tǒng)的定時(shí)器的同步,除了主定時(shí)器HZG以外,在系統(tǒng)驅(qū)動(dòng)程序中還一起運(yùn)轉(zhuǎn)著一個(gè)具有較小節(jié)拍速率的虛擬定時(shí)器VZ,一旦實(shí)際經(jīng)過了相應(yīng)的時(shí)間,此定時(shí)器就始終以主操作系統(tǒng)PBS的節(jié)拍速率運(yùn)轉(zhuǎn)。如果輔助操作系統(tǒng)沒有給出一個(gè)更長(zhǎng)時(shí)間期的計(jì)算時(shí)間,則用于主操作系統(tǒng)的時(shí)鐘走得更快,直至?xí)r間差重又增大且以輔助操作系統(tǒng)的定時(shí)器的節(jié)拍運(yùn)行。這樣實(shí)現(xiàn)了主操作系統(tǒng)中的時(shí)鐘不落后。
附圖標(biāo)記列表AD 結(jié)構(gòu)服務(wù)BHD 基本硬件服務(wù)BSD 操作系統(tǒng)服務(wù)BSP 主板支持程序包CPU 中央處理單元CPU-R,CPU 寄存器EP 硬盤HR 硬件資源IC1 中斷控制器控制對(duì)PBS中斷的部分IC2中中斷控制器控制對(duì)SBS中斷的部分IL 空循環(huán)IRC 中斷控制器K核PBS 主操作程序PK 主操作系統(tǒng)的上下文PS1 配置給PBS的物理存儲(chǔ)器PS2 配置給SBS的物理存儲(chǔ)器RAM 隨機(jī)訪問存儲(chǔ)器SBS 輔助操作系統(tǒng)SBS-T用于加載輔助操作系統(tǒng)的驅(qū)動(dòng)程序SK 輔助操作系統(tǒng)的上下文
SK 存儲(chǔ)器上下文ST-T 系統(tǒng)驅(qū)動(dòng)程序區(qū)SZG 系統(tǒng)定時(shí)器T1 主操作系統(tǒng)的驅(qū)動(dòng)程序T2 輔助操作系統(tǒng)的驅(qū)動(dòng)程序TB 隧道區(qū)TK 隧道上下文ZHP 主操作系統(tǒng)的附加硬件ZHS 輔助操作系統(tǒng)的附加硬件
權(quán)利要求
1.用于在一臺(tái)計(jì)算機(jī)上除了操作一個(gè)主操作系統(tǒng)之外還操作一個(gè)輔助操作系統(tǒng)的方法,其特征在于,主操作系統(tǒng)的一個(gè)用于加載和控制輔助操作系統(tǒng)的輔助操作系統(tǒng)驅(qū)動(dòng)程序(SBS驅(qū)動(dòng)程序)被加載。
2.如權(quán)利要求1所述的方法,其特征在于,輔助操作系統(tǒng)驅(qū)動(dòng)程序(SBS驅(qū)動(dòng)程序)接著加載輔助操作系統(tǒng)。
3.如權(quán)利要求1或2所述的方法,其特征在于,輔助操作系統(tǒng)驅(qū)動(dòng)程序加載輔助操作系統(tǒng)。
4.如權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,在計(jì)算機(jī)的中央單元(CPU)中建立存儲(chǔ)器上下文(虛擬工作空間)。
5.如權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,借助于主操作系統(tǒng)的SBS驅(qū)動(dòng)程序和主板支持程序包(BSP)實(shí)現(xiàn)操作系統(tǒng)之間的切換。
6.方法,特別是如上述權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,在切換所使用的操作系統(tǒng)時(shí)完成中斷表的更換。
7.如權(quán)利要求1至6中任一項(xiàng)所述的方法,其特征在于,輔助操作系統(tǒng)控制至主操作系統(tǒng)的切換。
8.如權(quán)利要求7所述的方法,其特征在于,在輔助操作系統(tǒng)的休止期(進(jìn)入空循環(huán))時(shí)完成從輔助操作系統(tǒng)至主操作系統(tǒng)的切換。
9.如權(quán)利要求8所述的方法,其特征在于,從輔助操作系統(tǒng)至主操作系統(tǒng)的切換通過輔助操作系統(tǒng)程序流程中的一個(gè)指令而進(jìn)行。
10.如權(quán)利要求1至9中任一項(xiàng)所述的方法,其特征在于,從主操作系統(tǒng)至輔助操作系統(tǒng)的切換由一個(gè)中斷調(diào)用(中斷)完成。
11.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,操作系統(tǒng)之間的切換借助于存儲(chǔ)在存儲(chǔ)器的一個(gè)隧道區(qū)中的程序代碼來完成。
12.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,在輔助操作系統(tǒng)工作過程中主操作系統(tǒng)的中斷調(diào)用被封鎖。
13.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,SBS驅(qū)動(dòng)程序中的中斷服務(wù)程序讀取輔助操作系統(tǒng)的中斷調(diào)用表,并且在出現(xiàn)該中斷調(diào)用的位置上進(jìn)行或繼續(xù)進(jìn)行輔助操作系統(tǒng)的處理。
14.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,系統(tǒng)驅(qū)動(dòng)程序?qū)ε渲媒o輔助操作系統(tǒng)的每個(gè)中斷(它應(yīng)該觸發(fā)輔助操作系統(tǒng)中的一個(gè)中斷調(diào)用)產(chǎn)生一個(gè)登錄到主操作系統(tǒng)中的中斷調(diào)用表中的操作,該表然后又觸發(fā)輔助操作系統(tǒng)中相應(yīng)中斷服務(wù)程序的調(diào)用。
15.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,借助于在系統(tǒng)驅(qū)動(dòng)程序中的一個(gè)中斷調(diào)用服務(wù)程序獲取存儲(chǔ)在輔助操作系統(tǒng)(SBS)的中斷表中的關(guān)于應(yīng)在輔助操作系統(tǒng)中的什么位置處完成中斷調(diào)用(中斷)處理的信息。
16.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,在輔助操作系統(tǒng)(SBS)應(yīng)一個(gè)中斷請(qǐng)求被激活時(shí),通過存儲(chǔ)在輔助操作系統(tǒng)的中斷調(diào)用表中的、關(guān)于應(yīng)在輔助操作系統(tǒng)中的什么位置處進(jìn)行中斷調(diào)用(中斷)處理的信息,直接通過系統(tǒng)驅(qū)動(dòng)程序、僅由輔助操作系統(tǒng)調(diào)用輔助操作系統(tǒng)(SBS)的中斷調(diào)用服務(wù)程序。
17.如權(quán)利要求12至16中任一項(xiàng)所述的方法,其特征在于,在出現(xiàn)相應(yīng)的中斷調(diào)用、并確定在輔助操作系統(tǒng)中實(shí)現(xiàn)中斷處理的位置以后,中斷處理在輔助操作系統(tǒng)中對(duì)應(yīng)于此中斷調(diào)用的位置處繼續(xù)進(jìn)行。
18.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,在從一個(gè)操作系統(tǒng)至另一個(gè)操作系統(tǒng)的切換中,所述一個(gè)操作系統(tǒng)的所有系統(tǒng)狀態(tài)被存儲(chǔ)。
19.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,在從一個(gè)操作系統(tǒng)至另一個(gè)操作系統(tǒng)的切換中,所述另一個(gè)操作系統(tǒng)的所有系統(tǒng)狀態(tài)被存儲(chǔ)。
20.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,對(duì)于輔助操作系統(tǒng)的節(jié)拍產(chǎn)生由硬件主定時(shí)器(定時(shí)器)完成。
21.如以上權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,對(duì)于主操作系統(tǒng)的節(jié)拍產(chǎn)生由一個(gè)節(jié)拍系統(tǒng)驅(qū)動(dòng)程序完成。
22.用于在一臺(tái)計(jì)算機(jī)上除了操作一個(gè)主操作系統(tǒng)之外還操作一個(gè)輔助操作系統(tǒng)的裝置,其特征在于主操作系統(tǒng)的一個(gè)用于加載和控制輔助操作系統(tǒng)的輔助操作系統(tǒng)驅(qū)動(dòng)程序(SBS驅(qū)動(dòng)程序)。
23.如權(quán)利要求22所述的裝置,其特征在于,SBS驅(qū)動(dòng)程序具有一個(gè)用于在中央單元(CPU)中建立一個(gè)隧道上下文的隧道—上下文建立程序。
24.裝置,特別是如權(quán)利要求22或23所述的裝置,其特征在于,它被構(gòu)造為用于在切換操作系統(tǒng)動(dòng)作時(shí)更換中斷表。
25.如權(quán)利要求22或24所述的裝置,其特征在于,SBS驅(qū)動(dòng)程序具有一個(gè)中斷調(diào)用表改變程序,用于產(chǎn)生登錄到主操作系統(tǒng)的中斷調(diào)用表中的操作,此程序至少對(duì)輔助操作系統(tǒng)的中斷調(diào)用進(jìn)行登錄。
26.如權(quán)利要求22至25中任一項(xiàng)所述的裝置,其特征在于,主板支持程序包(BSP)具有一個(gè)用于跳回到主操作系統(tǒng)(PBS)的程序段。
27.如權(quán)利要求22至26中任一項(xiàng)所述的裝置,其特征在于,輔助操作系統(tǒng)驅(qū)動(dòng)程序(SBS驅(qū)動(dòng)程序)具有一個(gè)中斷表段,借助于這個(gè)中斷表段,此系統(tǒng)驅(qū)動(dòng)程序在主操作系統(tǒng)中產(chǎn)生一個(gè)中斷調(diào)用表(中斷表),其包含用于調(diào)用輔助操作系統(tǒng)的中斷服務(wù)程序的調(diào)用。
28.如權(quán)利要求22至27中任一項(xiàng)所述的裝置,其特征在于,系統(tǒng)驅(qū)動(dòng)程序被設(shè)計(jì)為用于對(duì)于分配給輔助操作系統(tǒng)(SBS)的每一個(gè)中斷(它應(yīng)觸發(fā)輔助操作系統(tǒng)(SBS)中的一個(gè)中斷調(diào)用)產(chǎn)生一個(gè)登錄到主操作系統(tǒng)(PBS)的中斷調(diào)用表中的操作,并且中斷調(diào)用表被設(shè)計(jì)用來調(diào)用輔助操作系統(tǒng)(SBS)中的相應(yīng)中斷服務(wù)程序。
29.如權(quán)利要求22至28中任一項(xiàng)所述的裝置,其特征在于,系統(tǒng)驅(qū)動(dòng)程序中的一個(gè)中斷調(diào)用服務(wù)程序被設(shè)計(jì)用來獲取存儲(chǔ)在輔助操作系統(tǒng)(SBS)的中斷表中的、關(guān)于應(yīng)在輔助操作系統(tǒng)中的什么位置處進(jìn)行中斷調(diào)用(中斷)處理的信息。
30.如權(quán)利要求22至29中任一項(xiàng)所述的裝置,其特征在于,它被設(shè)計(jì)用來在輔助操作系統(tǒng)(SBS)應(yīng)中斷請(qǐng)求被激活時(shí),通過存儲(chǔ)在輔助操作系統(tǒng)的中斷調(diào)用表中的、關(guān)于應(yīng)在輔助操作系統(tǒng)的什么位置處進(jìn)行中斷調(diào)用(中斷)處理的信息,直接通過系統(tǒng)驅(qū)動(dòng)程序、僅由輔助操作系統(tǒng)調(diào)用輔助操作系統(tǒng)(SBS)的中斷調(diào)用服務(wù)程序。
全文摘要
為了在一臺(tái)計(jì)算機(jī)中操作兩個(gè)操作系統(tǒng)而不會(huì)造成性能損傷,本發(fā)明建議了一種方法,其中主操作系統(tǒng)的一個(gè)用于加載和控制輔助操作系統(tǒng)的輔助操作系統(tǒng)驅(qū)動(dòng)程序(SBS-驅(qū)動(dòng)程序)被加載,該驅(qū)動(dòng)程序接著加載輔助操作系統(tǒng)。本發(fā)明還涉及一種具有主操作系統(tǒng)的一個(gè)相應(yīng)輔助操作系統(tǒng)驅(qū)動(dòng)程序(SBS-驅(qū)動(dòng)程序)的裝置,此驅(qū)動(dòng)程序在控制主板支持程序包之前工作。
文檔編號(hào)G06F9/455GK1867895SQ200480029966
公開日2006年11月22日 申請(qǐng)日期2004年10月14日 優(yōu)先權(quán)日2003年10月16日
發(fā)明者安德雷亞斯·格羅切爾, 約爾格·埃爾林斯皮爾, 斯特凡·金特格拉夫 申請(qǐng)人:庫卡-羅伯特有限公司