專利名稱:計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng),尤其是對(duì)計(jì)算機(jī)系統(tǒng)中的OS(OperatingSystem操作系統(tǒng))的控制。
背景技術(shù):
根據(jù)一個(gè)現(xiàn)有技術(shù),當(dāng)其他OS對(duì)某OS進(jìn)行處理請(qǐng)求的通信時(shí),將處理請(qǐng)求臨時(shí)保存在延遲請(qǐng)求隊(duì)列中。接收到處理請(qǐng)求的OS通過中斷處理從延遲請(qǐng)求隊(duì)列中取出請(qǐng)求,進(jìn)行請(qǐng)求的處理。采用這種方式,即使某OS封鎖了資源,仍可以執(zhí)行其他OS的中斷處理程序,所以其他OS的中斷處理不延遲。(參照專利文獻(xiàn)1)[專利文獻(xiàn)1]日本特開2001-282558號(hào)公報(bào)發(fā)明內(nèi)容在上述現(xiàn)有技術(shù)中,在某OS與其他OS之間進(jìn)行處理請(qǐng)求通信時(shí),通過中斷處理來處理請(qǐng)求,但是一般進(jìn)行中斷處理時(shí),需要對(duì)CPU(Central Processing Unit)所具有的全部寄存器進(jìn)行保存,而該寄存器的保存比較花費(fèi)時(shí)間。另外,當(dāng)CPU具有指令預(yù)取機(jī)制時(shí),由于該機(jī)制不發(fā)揮功能,所以指令的執(zhí)行也會(huì)延遲。
另外,人們考慮將其他OS(客戶機(jī)OS)或應(yīng)用程序作為某OS(主機(jī)OS)上的任務(wù)(task)來運(yùn)行的方式。在這種方式下,運(yùn)行在客戶機(jī)OS上的中斷處理程序和任務(wù),按照主機(jī)OS上規(guī)定的規(guī)則運(yùn)行。在主機(jī)OS正對(duì)一些資源進(jìn)行排他性控制的狀態(tài)下,為避免資源沖突,客戶機(jī)OS中斷也一并被禁止。
在主機(jī)OS上運(yùn)行的任務(wù)發(fā)出API(Application Program Interface應(yīng)用程序接口),具體說是發(fā)出OS服務(wù)調(diào)用(service call),結(jié)果,在產(chǎn)生了進(jìn)行任務(wù)的啟動(dòng)或停止的需要時(shí),主機(jī)OS的API處理單元將任務(wù)啟動(dòng)或停止的請(qǐng)求傳送給處理該請(qǐng)求的調(diào)度單元。調(diào)度單元本身在運(yùn)行時(shí),封鎖資源以表示其正在運(yùn)行。此時(shí),為了避免資源的沖突而禁止中斷,因此,即使發(fā)生對(duì)客戶機(jī)OS的中斷,也要在封鎖解除以后客戶機(jī)OS的中斷處理才進(jìn)行動(dòng)作。另外,即使在不禁止客戶機(jī)OS中斷的情況下,在客戶機(jī)OS的中斷處理程序內(nèi),也必須禁止可能發(fā)生資源沖突的API的發(fā)出。同樣地,由應(yīng)用程序發(fā)出API的情況也要受到制約。因此,在這樣的計(jì)算機(jī)系統(tǒng)中,就產(chǎn)生了如下課題,即受主機(jī)OS的運(yùn)行狀態(tài)影響,客戶機(jī)OS或應(yīng)用程序的運(yùn)行延遲。
本發(fā)明的目的在于提供一種計(jì)算機(jī)系統(tǒng),具有一個(gè)OS和作為至少一個(gè)的任務(wù)而在該OS上運(yùn)行的軟件組件,在該計(jì)算機(jī)系統(tǒng)中能夠不受該OS的運(yùn)行狀態(tài)影響地從該軟件組件發(fā)出API。
為了達(dá)到上述目的,本發(fā)明決定采用這樣的結(jié)構(gòu),即一種計(jì)算機(jī)系統(tǒng),包括一個(gè)OS和作為在該OS上運(yùn)行的至少一個(gè)任務(wù)的軟件組件,該計(jì)算機(jī)系統(tǒng)中還包括OS中斷處理程序和OS任務(wù),分別在上述OS上運(yùn)行并具有發(fā)出API的功能;第1API處理單元,具有基于由上述OS中斷處理程序和上述OS任務(wù)中的任意一個(gè)所發(fā)出的API輸出變更上述OS的任務(wù)狀態(tài)的指令的功能;第2API處理單元,具有基于涉及上述軟件組件的API輸出變更上述OS的任務(wù)狀態(tài)的指令的功能;指令存儲(chǔ)單元,依次存儲(chǔ)從上述第2API處理單元輸出的指令,并按存儲(chǔ)的順序輸出這些指令;指令同步定時(shí)控制單元,將上述第1API處理單元的輸出和上述指令存儲(chǔ)單元的輸出作為輸入,優(yōu)先選擇這些輸入中從上述指令存儲(chǔ)單元輸出的指令,并輸出該所選擇的指令;調(diào)度單元,通過處理從上述指令同步定時(shí)控制單元輸出的指令,來選擇應(yīng)啟動(dòng)的任務(wù);關(guān)聯(lián)切換單元,按照上述調(diào)度單元的選擇,執(zhí)行上述OS的任務(wù)切換。
上述軟件組件,既可以是以上述OS作為主機(jī)OS,在該主機(jī)OS上作為至少一個(gè)任務(wù)運(yùn)行的客戶機(jī)OS,也可以是上述OS上的作為至少一個(gè)任務(wù)運(yùn)行的應(yīng)用程序。
根據(jù)本發(fā)明,能夠不受主機(jī)OS的運(yùn)行狀態(tài)影響地從客戶機(jī)OS的中斷處理程序和任務(wù)發(fā)出API,并且,能夠不受主機(jī)OS的運(yùn)行狀態(tài)影響地從該主機(jī)OS上運(yùn)行的應(yīng)用程序發(fā)出API。
圖1是與本發(fā)明的第1實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)圖。
圖2是表示圖1中的第1和第2指令存儲(chǔ)單元的各個(gè)操作的流程圖。
圖3是表示圖1中的指令同步定時(shí)控制單元的操作的示意圖。
圖4是與本發(fā)明的第2實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)圖。
圖5是表示圖4中的指令同步定時(shí)控制單元的操作的流程圖。
圖6是與本發(fā)明的第3實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)圖。
圖7是與本發(fā)明的第4實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)圖。
圖8是與本發(fā)明的第5實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施例方式
以下,參照
本發(fā)明的計(jì)算機(jī)系統(tǒng)的實(shí)施方式。
圖1表示與本發(fā)明的第1實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)。圖1的計(jì)算機(jī)系統(tǒng)包括作為硬件資源的CPU10、和作為在CPU10上運(yùn)行的軟件資源的主機(jī)OS20以及客戶機(jī)OS40。主機(jī)OS20是例如不要求實(shí)時(shí)性的通用OS,在CPU10上運(yùn)行??蛻魴C(jī)OS40是例如實(shí)時(shí)OS,作為主機(jī)OS20上的至少一個(gè)任務(wù)運(yùn)行。在這里,所謂的任務(wù)是指在處理器上的處理的執(zhí)行單位。另外,在具備虛擬存儲(chǔ)管理功能的OS上,多個(gè)任務(wù)能夠共享地址空間,將這些任務(wù)的集合叫做任務(wù)群組??蛻魴C(jī)OS可由至少一個(gè)任務(wù)群組構(gòu)成。
在主機(jī)OS20上,運(yùn)行主機(jī)OS中斷處理程序31和主機(jī)OS任務(wù)32。主機(jī)OS中斷處理程序31由硬件中斷啟動(dòng),并能夠發(fā)出主機(jī)OS20上定義的API。另外,主機(jī)OS任務(wù)32也能夠發(fā)出主機(jī)OS20的API。根據(jù)這些API,進(jìn)行使主機(jī)OS任務(wù)32啟動(dòng)或停止等任務(wù)狀態(tài)的變更。
在客戶機(jī)OS40上,運(yùn)行客戶機(jī)OS中斷處理程序51和客戶機(jī)OS任務(wù)52??蛻魴C(jī)OS中斷處理程序51由硬件中斷啟動(dòng),并能夠發(fā)出客戶機(jī)OS40上定義的API。另外,客戶機(jī)OS任務(wù)52也能夠發(fā)出客戶機(jī)OS40的API。根據(jù)這些API,進(jìn)行使客戶機(jī)OS任務(wù)52啟動(dòng)或停止等任務(wù)狀態(tài)的變更。各客戶機(jī)OS任務(wù)52都有作為主機(jī)OS任務(wù)的識(shí)別信息。
主機(jī)OS20上有API處理單元21、調(diào)度單元22、以及關(guān)聯(lián)切換單元23??蛻魴C(jī)OS40上具有單獨(dú)的API處理單元41。主機(jī)OS20的API由主機(jī)OS20內(nèi)部的API處理單元21處理。當(dāng)主機(jī)OS20的處理要進(jìn)行使任務(wù)啟動(dòng)或停止等的任務(wù)狀態(tài)的變更時(shí),API處理單元21輸出能在調(diào)度單元22中處理的任務(wù)狀態(tài)變更指令??蛻魴C(jī)OS40的API由客戶機(jī)OS40內(nèi)部的API處理單元41處理。當(dāng)客戶機(jī)OS40的處理要進(jìn)行使任務(wù)啟動(dòng)或停止等的任務(wù)狀態(tài)的變更時(shí),API處理單元41輸出能在調(diào)度單元22中處理的任務(wù)狀態(tài)變更指令。作為包含在這些任務(wù)狀態(tài)變更指令中的信息,可列舉對(duì)象任務(wù)的識(shí)別信息、和表示啟動(dòng)或停止等任務(wù)狀態(tài)變更的信息。
圖1的計(jì)算機(jī)系統(tǒng)還具有第1和第2指令存儲(chǔ)單元61、62以及指令同步定時(shí)控制單元63。第1和第2指令存儲(chǔ)單元61、62任意一個(gè)都具有能夠存儲(chǔ)多個(gè)指令的緩沖區(qū),用于向該緩沖區(qū)存儲(chǔ)指令的裝置,以及用于從該緩沖區(qū)取出指令的裝置。第1指令存儲(chǔ)單元61依次存儲(chǔ)主機(jī)OS的API處理單元21輸出的指令,并按存儲(chǔ)的順序輸出這些指令。第2指令存儲(chǔ)單元62依次存儲(chǔ)客戶機(jī)OS的API處理單元41輸出的指令,并按存儲(chǔ)的順序輸出這些指令。在圖1中,將第1指令存儲(chǔ)單元61的輸出指令作為Qa,將第2指令存儲(chǔ)單元62的輸出指令作為Qb。指令同步定時(shí)控制單元63將第1指令存儲(chǔ)單元61的輸出指令Qa和第2指令存儲(chǔ)單元62的輸出指令Qb作為輸入指令,并在這些輸入指令中優(yōu)先選擇從第2指令存儲(chǔ)單元62輸出的指令,并將該所選擇的指令輸出到調(diào)度單元22。在圖1中,將這樣從指令同步定時(shí)控制單元63輸出到調(diào)度單元22的指令作為Qs。
調(diào)度單元22根據(jù)從指令同步定時(shí)控制單元63輸入的指令Qs,進(jìn)行主機(jī)OS任務(wù)32或者客戶機(jī)OS任務(wù)52的啟動(dòng)、停止等操作,確定要執(zhí)行的任務(wù)。當(dāng)要執(zhí)行的任務(wù)發(fā)生了變化時(shí),調(diào)度單元22向關(guān)聯(lián)切換單元23輸出任務(wù)切換信息。
關(guān)聯(lián)切換單元23根據(jù)任務(wù)切換信息,進(jìn)行關(guān)聯(lián)信息的切換。作為包含在關(guān)聯(lián)信息中的信息,可列舉CPU10的寄存器信息,表示任務(wù)32、52各自特有的存儲(chǔ)空間的信息等。
圖2表示圖1中第1和第2指令存儲(chǔ)單元61、62各自的操作。在此,用圖2說明第1指令存儲(chǔ)單元61的操作。首先,在步驟S11判斷指令輸入的有無。有輸入時(shí),在步驟S12將指令存儲(chǔ)在第1指令存儲(chǔ)單元61內(nèi)的緩沖區(qū)內(nèi),沒有輸入時(shí),進(jìn)入步驟S13。然后,在步驟S13判斷有無存儲(chǔ)在緩沖區(qū)中的指令,沒有指令時(shí)結(jié)束,有指令時(shí)進(jìn)入步驟S14。在步驟S14,判斷先前從第1指令存儲(chǔ)單元61輸出的指令是否被指令同步定時(shí)控制單元63接收。當(dāng)先前輸出的指令還沒有被接收時(shí),暫時(shí)結(jié)束處理,再次從步驟S11開始處理。當(dāng)先前輸出的指令已經(jīng)被接收時(shí),在步驟S15取出最早存儲(chǔ)在緩沖區(qū)的指令,將其輸出到指令同步定時(shí)控制單元63,并返回到步驟S13繼續(xù)處理。另外,第2指令存儲(chǔ)單元62的操作也與圖2相同,所以省略說明。
圖3表示在圖1中指令同步定時(shí)控制單元63輸出指令Qs時(shí),第2指令存儲(chǔ)單元62的輸出指令Qb優(yōu)先。當(dāng)沒有從第1和第2指令存儲(chǔ)單元61、62中任合一個(gè)輸入的指令時(shí),也就沒有指令Qs的輸出。當(dāng)只有第1指令存儲(chǔ)單元61的輸出指令Qa輸入到指令同步定時(shí)控制單元63時(shí),不管指令Qs的先前輸出如何,都為Qs=Qa。另外,當(dāng)?shù)?指令存儲(chǔ)單元62的輸出指令Qb輸入到指令同步定時(shí)控制單元63時(shí),不管有無第1指令存儲(chǔ)單元61的輸出指令Qa或者指令Qs的先前輸出如何,都為Qs=Qb。
按照以上說明,根據(jù)本實(shí)施方式,通過在客戶機(jī)OS40的指令處理中使用第2指令存儲(chǔ)單元62,能夠使客戶機(jī)OS中斷處理程序51和客戶機(jī)OS任務(wù)52發(fā)出API而不受主機(jī)OS20的運(yùn)行狀態(tài)影響。并且,優(yōu)選的是,來自要求實(shí)時(shí)性的客戶機(jī)OS40的API,比主機(jī)OS20的API優(yōu)先。另外,通過在主機(jī)OS20的指令處理中使用第1指令存儲(chǔ)單元61,能夠使主機(jī)OS中斷處理程序31和主機(jī)OS任務(wù)32發(fā)出API,而不受客戶機(jī)OS40的運(yùn)行狀態(tài)影響。
圖4表示與本發(fā)明的第2實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)。和圖1的結(jié)構(gòu)相比,不同點(diǎn)在于省略了第1指令存儲(chǔ)單元61,而追加了主機(jī)OS中斷狀態(tài)信息輸出單元24、客戶機(jī)OS中斷狀態(tài)信息輸出單元42、以及第1和第2中斷狀態(tài)信息控制單元64、65。
主機(jī)OS中斷狀態(tài)信息輸出單元24,將主機(jī)OS中斷處理程序31是否正在執(zhí)行作為主機(jī)OS中斷狀態(tài)信息輸出??蛻魴C(jī)OS中斷狀態(tài)信息輸出單元42,將客戶機(jī)OS中斷處理程序51是否正在執(zhí)行作為客戶機(jī)OS中斷狀態(tài)信息輸出。
當(dāng)用來指定是否使主機(jī)OS中斷狀態(tài)信息和客戶機(jī)OS中斷狀態(tài)信息各信息無效的API發(fā)出時(shí),主機(jī)OS的API處理單元21,將對(duì)應(yīng)該API的控制信息輸出到第1和第2中斷狀態(tài)信息控制單元64、65??蛻魴C(jī)OS的API處理單元41也同樣,當(dāng)用來指定是否使主機(jī)OS中斷狀態(tài)信息和客戶機(jī)OS中斷狀態(tài)信息各信息無效的API發(fā)出時(shí),將對(duì)應(yīng)該API的控制信息輸出到第1和第2中斷狀態(tài)信息控制單元64、65。例如這些控制信息表示將主機(jī)OS中斷狀態(tài)信息和客戶機(jī)OS中斷狀態(tài)信息不進(jìn)行修正地輸出,或?qū)⑵湫拚杀硎局鳈C(jī)OS中斷處理程序31和客戶機(jī)OS中斷處理程序51并非正在執(zhí)行的信息。
第1中斷狀態(tài)信息控制單元64根據(jù)其控制信息,控制主機(jī)OS中斷狀態(tài)信息的有效性;第2中斷狀態(tài)信息控制單元65根據(jù)其控制信息,控制客戶機(jī)OS中斷狀態(tài)信息的有效性。具體來講,當(dāng)使主機(jī)OS中斷狀態(tài)信息無效時(shí),認(rèn)為主機(jī)OS中斷處理程序31并非正在執(zhí)行;當(dāng)使客戶機(jī)OS中斷狀態(tài)信息為無效時(shí),認(rèn)為客戶機(jī)OS中斷處理程序51并非正在執(zhí)行。根據(jù)第1中斷狀態(tài)信息控制單元64帶來的主機(jī)OS中斷狀態(tài)信息、和第2中斷狀態(tài)信息控制單元65帶來的客戶機(jī)OS中斷狀態(tài)信息,當(dāng)主機(jī)OS中斷處理程序31和客戶機(jī)OS中斷處理程序51均并非正在執(zhí)行時(shí),指令同步定時(shí)控制單元63,執(zhí)行用圖3說明的指令的選擇和輸出。
圖5表示圖4中指令同步定時(shí)控制單元63的操作。指令同步定時(shí)控制單元63按照?qǐng)D5確定指令同步的時(shí)間。為此,首先在步驟S21判斷主機(jī)OS中斷狀態(tài)信息是否是表示主機(jī)OS中斷處理程序31正在執(zhí)行的信息,當(dāng)并非正在執(zhí)行時(shí)進(jìn)入步驟S22;當(dāng)正在執(zhí)行時(shí)結(jié)束。然后,在步驟S22判斷客戶機(jī)OS中斷狀態(tài)信息是否是表示中斷處理程序51正在執(zhí)行的信息,當(dāng)并非正在執(zhí)行時(shí)進(jìn)入步驟S23;當(dāng)正在執(zhí)行時(shí)結(jié)束。然后,在步驟S23,根據(jù)圖3進(jìn)行輸出指令的選擇和指令的輸出。圖3中的第1指令存儲(chǔ)單元(Qa)61被替換成主機(jī)OS的API處理單元(Qa)21。
根據(jù)本實(shí)施方式,當(dāng)各OS20、40的狀態(tài)為未執(zhí)行中斷處理程序31、51的狀態(tài)時(shí),進(jìn)行指令同步,從而能夠在中斷處理程序31、51正在執(zhí)行時(shí)抑止指令同步定時(shí)控制單元63的運(yùn)行。一般在OS中,中斷處理程序正在執(zhí)行時(shí)不能進(jìn)行任務(wù)的關(guān)聯(lián)切換,因此能夠在中斷處理程序31、51執(zhí)行結(jié)束時(shí)使指令同步定時(shí)控制單元63運(yùn)行,能夠減少該指令同步定時(shí)控制單元63的運(yùn)行次數(shù)。
還有,根據(jù)各OS20、40的中斷狀態(tài),主機(jī)OS20或者客戶機(jī)OS40能夠控制是否取得指令同步定時(shí),由此,能夠動(dòng)態(tài)地控制指令同步定時(shí)。特別是,當(dāng)主機(jī)OS20是不要求實(shí)時(shí)性的通用OS、客戶機(jī)OS40是實(shí)時(shí)OS、由客戶機(jī)OS中斷處理程序51和客戶機(jī)OS任務(wù)52正在進(jìn)行要求實(shí)時(shí)性的處理時(shí),能夠更高速地進(jìn)行指令同步定時(shí)的動(dòng)態(tài)控制,這一點(diǎn)是很有利的。
圖6表示與本發(fā)明的第3實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)。與圖1的結(jié)構(gòu)相比,不同點(diǎn)在于省略了第1指令存儲(chǔ)單元61,追加了其他客戶機(jī)OS70和存儲(chǔ)指令選擇單元66。
所追加的客戶機(jī)OS70也作為至少一個(gè)任務(wù)而在主機(jī)OS20上運(yùn)行。在該客戶機(jī)OS70上,執(zhí)行客戶機(jī)OS中斷處理程序81和客戶機(jī)OS任務(wù)82??蛻魴C(jī)OS中斷處理程序81由硬件中斷啟動(dòng),能夠發(fā)出客戶機(jī)OS70上定義的API。另外,客戶機(jī)OS任務(wù)82也能夠發(fā)出客戶機(jī)OS70的API。根據(jù)這些API進(jìn)行使客戶機(jī)OS任務(wù)82啟動(dòng)或停止等任務(wù)狀態(tài)的變更。各客戶機(jī)OS任務(wù)82具有作為主機(jī)OS任務(wù)的識(shí)別信息。
客戶機(jī)OS70具有單獨(dú)的API處理單元71??蛻魴C(jī)OS70的API由客戶機(jī)OS70內(nèi)部的API處理單元71處理。通過該處理進(jìn)行使任務(wù)啟動(dòng)或停止等任務(wù)狀態(tài)的變更時(shí),API處理單元71輸出能在調(diào)度單元22中處理的任務(wù)狀態(tài)變更指令Qc。
圖6的計(jì)算機(jī)系統(tǒng)中的指令存儲(chǔ)單元62,將客戶機(jī)OS的API處理單元41的輸出指令Qb和其他客戶機(jī)OS的API處理單元71的輸出指令Qc作為輸入指令,并具有優(yōu)先存儲(chǔ)與這些輸入指令中的一者相關(guān)的指令的功能。存儲(chǔ)指令選擇單元66控制在指令存儲(chǔ)單元62中Qb和Qc哪個(gè)優(yōu)先。指令同步定時(shí)控制單元63將主機(jī)OS的API處理單元21的輸出指令Qa和指令存儲(chǔ)單元62的輸出指令Qb或Qc作為輸入指令,并在這些輸入指令中優(yōu)先選擇從指令存儲(chǔ)單元62輸出的指令Qb或Qc,并將該所選擇的指令輸出到調(diào)度單元22。
根據(jù)本實(shí)施方式,能夠運(yùn)行多個(gè)客戶機(jī)OS40,70,從而能夠集成以往作為各單獨(dú)系統(tǒng)所運(yùn)行的多個(gè)系統(tǒng)。另外,也可以省略存儲(chǔ)指令選擇單元66,由指令存儲(chǔ)單元62進(jìn)行固定的優(yōu)先控制。另外,本實(shí)施方式中客戶機(jī)OS的個(gè)數(shù)是2個(gè),即使是3個(gè)以上時(shí),也同樣能夠執(zhí)行。另外,當(dāng)多個(gè)客戶機(jī)OS作為同一任務(wù)群組執(zhí)行時(shí),也同樣能夠執(zhí)行。
圖7表示與本發(fā)明的第4實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)。與圖1的結(jié)構(gòu)相比,不同點(diǎn)在于追加了其他客戶機(jī)OS70、第3指令存儲(chǔ)單元67、以及同步指令選擇單元68。
所追加的客戶機(jī)OS70作為至少一個(gè)任務(wù)而在主機(jī)OS20上的運(yùn)行,在該客戶機(jī)OS70上,執(zhí)行客戶機(jī)OS中斷處理程序81和客戶機(jī)OS任務(wù)82,客戶機(jī)OS70具有單獨(dú)的API處理單元71,這一點(diǎn)與圖6相同。
與第1和第2指令存儲(chǔ)單元61、62相同,第3指令存儲(chǔ)單元67也具有能存儲(chǔ)多個(gè)指令的緩沖區(qū),用于向該緩沖區(qū)存儲(chǔ)指令的裝置,以及用于從該緩沖區(qū)取出指令的裝置。第3指令存儲(chǔ)單元67依次存儲(chǔ)客戶機(jī)OS的API處理單元71輸出的指令,并按存儲(chǔ)的順序輸出這些指令。在圖7中,將第1指令存儲(chǔ)單元61的輸出指令作為Qa,將第2指令存儲(chǔ)單元62的輸出指令作為Qb,將第3指令存儲(chǔ)單元67的輸出指令作為Qc。指令同步定時(shí)控制單元63將第1指令存儲(chǔ)單元61的輸出指令Qa、第2指令存儲(chǔ)單元62的輸出指令Qb、以及第3指令存儲(chǔ)單元67的輸出指令Qc作為輸入指令,并在這些輸入指令中,將從第2或第3指令存儲(chǔ)單元62、67輸出的指令優(yōu)先輸出到調(diào)度單元22。同步指令選擇單元68控制在指令同步定時(shí)控制單元63中,使Qb和Qc哪個(gè)優(yōu)先。
根據(jù)本實(shí)施方式,為多個(gè)客戶機(jī)OS40、70的每一個(gè),設(shè)置專用的指令存儲(chǔ)單元62、67,從而能夠在這些客戶機(jī)OS40、70之間建立優(yōu)先度。另外,也可以省略同步指令選擇單元68,由指令同步定時(shí)控制單元63執(zhí)行固定的優(yōu)先控制。另外,本實(shí)施方式中客戶機(jī)OS的個(gè)數(shù)是2個(gè),即使是3個(gè)以上時(shí),也同樣能執(zhí)行。另外,當(dāng)多個(gè)客戶機(jī)OS作為同一任務(wù)群組執(zhí)行時(shí)也同樣能執(zhí)行。
圖8表示與本發(fā)明的第5實(shí)施方式相關(guān)的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)。與圖1的結(jié)構(gòu)相比,不同點(diǎn)在于省略了第1指令存儲(chǔ)單元61,代替客戶機(jī)OS40而具有應(yīng)用程序90。
應(yīng)用程序90是作為至少一個(gè)任務(wù)而在OS20上運(yùn)行的程序,具有單獨(dú)的API處理單元91。OS中斷處理程序31或著OS任務(wù)32能夠?qū)υ搼?yīng)用程序90發(fā)出API。應(yīng)用程序90的API由應(yīng)用程序90內(nèi)部的API處理單元91處理。通過該處理進(jìn)行使任務(wù)啟動(dòng)或停止等的任務(wù)狀態(tài)的變更時(shí),API處理單元91輸出能在調(diào)度單元22中處理的任務(wù)狀態(tài)變更指令。
圖8的計(jì)算機(jī)系統(tǒng)中的指令存儲(chǔ)單元62依次存儲(chǔ)應(yīng)用程序的API處理單元91所輸出的指令,并按存儲(chǔ)的順序輸出這些指令。指令同步定時(shí)控制單元63將OS的API處理單元21的輸出指令Qa和指令存儲(chǔ)單元62的輸出指令Qb作為輸入指令,在這些輸入指令中,優(yōu)先選擇從指令存儲(chǔ)單元62輸出的指令,將該所選擇的指令輸出到調(diào)度單元22。
根據(jù)本實(shí)施方式,能夠從應(yīng)用程序90發(fā)出API,而不受主機(jī)OS20的運(yùn)行狀態(tài)影響。
如上所述,本發(fā)明對(duì)切換多個(gè)OS而運(yùn)行的計(jì)算機(jī)系統(tǒng)的控制特別有用。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),具有一個(gè)OS和作為在該OS上運(yùn)行的至少一個(gè)任務(wù)的軟件組件,該計(jì)算機(jī)系統(tǒng)的特征在于,還包括OS中斷處理程序和OS任務(wù),分別在上述OS上運(yùn)行并具有發(fā)出API的功能;第1API處理單元,具有基于由上述OS中斷處理程序和上述OS任務(wù)中的任意一個(gè)所發(fā)出的API輸出變更上述OS的任務(wù)狀態(tài)的指令的功能;第2API處理單元,具有基于涉及上述軟件組件的API輸出變更上述OS的任務(wù)狀態(tài)的指令的功能;指令存儲(chǔ)單元,依次存儲(chǔ)上述第2API處理單元所輸出的指令,并按存儲(chǔ)的順序輸出這些指令;指令同步定時(shí)控制單元,將上述第1API處理單元的輸出和上述指令存儲(chǔ)單元的輸出作為輸入,優(yōu)先選擇這些輸入中的從上述指令存儲(chǔ)單元輸出的指令,并輸出該所選擇的指令;調(diào)度單元,通過處理從上述指令同步定時(shí)控制單元輸出的指令,來選擇應(yīng)啟動(dòng)的任務(wù);以及關(guān)聯(lián)切換單元,按照上述調(diào)度單元的選擇,執(zhí)行上述OS的任務(wù)切換。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于上述軟件組件,是將上述OS作為主機(jī)OS并作為在該主機(jī)OS上運(yùn)行的至少一個(gè)任務(wù)的客戶機(jī)OS;上述計(jì)算機(jī)系統(tǒng),還包括客戶機(jī)OS中斷處理程序和客戶機(jī)OS任務(wù),該客戶機(jī)OS中斷處理程序和客戶機(jī)OS任務(wù)分別在上述客戶機(jī)OS上運(yùn)行并具有發(fā)出API的功能;上述第2API處理單元,具有基于由上述客戶機(jī)OS中斷處理程序和上述客戶機(jī)OS任務(wù)中的任意一個(gè)所發(fā)出的API輸出變更上述OS的任務(wù)狀態(tài)的指令的功能。
3.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于上述軟件組件是作為在上述OS上運(yùn)行的至少一個(gè)任務(wù)的應(yīng)用程序;上述第2API處理單元,具有基于由上述應(yīng)用程序所發(fā)出的API輸出變更上述OS的任務(wù)狀態(tài)的指令的功能。
4.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括其他指令存儲(chǔ)單元,依次存儲(chǔ)上述第1 API處理單元所輸出的指令,并按存儲(chǔ)的順序?qū)⑦@些指令輸出到上述指令同步定時(shí)控制單元。
5.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括主機(jī)OS中斷狀態(tài)信息輸出單元,將上述主機(jī)OS中斷處理程序是否正在執(zhí)行作為主機(jī)OS中斷狀態(tài)信息輸出;和客戶機(jī)OS中斷狀態(tài)信息輸出單元,將上述客戶機(jī)OS中斷處理程序是否正在執(zhí)行作為客戶機(jī)OS中斷狀態(tài)信息輸出,其中,上述指令同步定時(shí)控制單元具有如下功能,基于上述主機(jī)OS中斷狀態(tài)信息和上述客戶機(jī)OS中斷狀態(tài)信息,在上述主機(jī)OS中斷處理程序和上述客戶機(jī)OS中斷處理程序都非正在執(zhí)行時(shí),執(zhí)行上述指令的選擇和輸出。
6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括中斷狀態(tài)信息控制單元,控制上述主機(jī)OS中斷狀態(tài)信息和上述客戶機(jī)OS中斷狀態(tài)信息各自的有效性;上述第1和第2API處理單元中至少一者,具有如下功能,當(dāng)指定是否使各上述主機(jī)OS中斷狀態(tài)信息和各上述客戶機(jī)OS中斷狀態(tài)信息為無效的API發(fā)出時(shí),將對(duì)應(yīng)于該API的控制信息輸出到上述中斷狀態(tài)信息控制單元;當(dāng)上述主機(jī)OS中斷狀態(tài)信息為無效時(shí),判斷為上述主機(jī)OS中斷處理程序并非正在執(zhí)行,當(dāng)上述客戶機(jī)OS中斷狀態(tài)信息為無效時(shí),判斷為上述客戶機(jī)OS中斷處理程序并非正在執(zhí)行。
7.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括其他客戶機(jī)OS,作為其他至少一個(gè)任務(wù)在上述主機(jī)OS上運(yùn)行;其他客戶機(jī)OS中斷處理程序和其他客戶機(jī)OS任務(wù),分別在上述其他客戶機(jī)OS上運(yùn)行并具有發(fā)出API的功能;以及第3API處理單元,具有基于由上述其他客戶機(jī)OS中斷處理程序和上述其他客戶機(jī)OS任務(wù)中的任意一個(gè)所發(fā)出的API輸出變更上述主機(jī)OS的任務(wù)狀態(tài)的指令的功能,其中,上述指令存儲(chǔ)單元,具有將上述第2API處理單元的輸出和上述第3API處理單元的輸出作為輸入,并優(yōu)先存儲(chǔ)這些輸入中的一個(gè)指令的功能。
8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括存儲(chǔ)指令選擇單元,對(duì)在上述指令存儲(chǔ)單元中上述第2API處理單元的輸出和上述第3API處理單元的輸出中哪個(gè)優(yōu)先進(jìn)行控制。
9.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括其他客戶機(jī)OS,作為其他至少一個(gè)任務(wù)在上述主機(jī)OS上運(yùn)行;其他客戶機(jī)OS中斷處理程序和其他客戶機(jī)OS任務(wù),分別在上述其他客戶機(jī)OS上運(yùn)行并具有發(fā)出API的功能;第3API處理單元,具有基于由上述其他客戶機(jī)OS中斷處理程序和上述其他客戶機(jī)OS任務(wù)中的任意一個(gè)所發(fā)出的API輸出變更上述主機(jī)OS的任務(wù)狀態(tài)的指令的功能;以及其他指令存儲(chǔ)單元,依次存儲(chǔ)上述第3API處理單元所輸出的指令,并按存儲(chǔ)的順序輸出這些指令,其中,上述指令同步定時(shí)控制單元具有如下功能,除了上述第1API處理單元的輸出和上述指令存儲(chǔ)單元的輸出之外,還將上述其他指令存儲(chǔ)單元的輸出作為輸入,優(yōu)先輸出這些輸入中的從上述指令存儲(chǔ)單元或上述其他指令存儲(chǔ)單元輸出的指令。
10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其特征在于還包括同步指令選擇單元,控制在上述指令同步定時(shí)控制單元中上述指令存儲(chǔ)單元的輸出和上述其他指令存儲(chǔ)單元的輸出哪個(gè)優(yōu)先。
11.一種計(jì)算機(jī)系統(tǒng)的控制方法,該計(jì)算機(jī)系統(tǒng)將一個(gè)OS作為主機(jī)OS,并具有作為在該主機(jī)OS上運(yùn)行的至少一個(gè)任務(wù)的客戶機(jī)OS,該控制方法的特征在于,包括以下步驟由第1API處理單元基于從在上述主機(jī)OS上運(yùn)行的各中斷處理程序和各任務(wù)中的任意一個(gè)所發(fā)出的API,輸出變更上述主機(jī)OS的任務(wù)狀態(tài)的指令;由第2API處理單元基于從在上述客戶機(jī)OS上運(yùn)行的各中斷處理程序和各任務(wù)中的任意一個(gè)所發(fā)出的API,輸出變更上述主機(jī)OS的任務(wù)狀態(tài)的指令;由指令存儲(chǔ)單元依次存儲(chǔ)上述第2API處理單元所輸出的指令,并按存儲(chǔ)的順序輸出這些指令;由指令同步定時(shí)控制單元將上述第1API處理單元的輸出和上述指令存儲(chǔ)單元的輸出作為輸入,優(yōu)先選擇這些輸入中的從上述指令存儲(chǔ)單元輸出的指令,并輸出該所選擇的指令;由調(diào)度單元通過處理從上述指令同步定時(shí)控制單元輸出的指令,來選擇應(yīng)啟動(dòng)的任務(wù);以及由關(guān)聯(lián)切換單元按照上述調(diào)度單元的選擇,執(zhí)行上述主機(jī)OS的任務(wù)切換。
全文摘要
本發(fā)明提供一種計(jì)算機(jī)系統(tǒng)。將通用OS作為主機(jī)OS(20),將作為在此上運(yùn)行的至少一個(gè)任務(wù)的實(shí)時(shí)OS作為客戶機(jī)OS(40)。主機(jī)OS(20)上的中斷處理程序(31)和任務(wù)(32)以及客戶機(jī)OS(40)上的中斷處理程序(51)和任務(wù)(52)發(fā)出請(qǐng)求使任務(wù)啟動(dòng)、停止等任務(wù)狀態(tài)變更的API。各OS的API處理單元(21)、(41)輸出變更任務(wù)狀態(tài)的指令。設(shè)置將由客戶機(jī)OS的API處理單元(41)所輸出的指令依次存儲(chǔ)并輸出的指令存儲(chǔ)單元(62),當(dāng)兩中斷處理程序(31)、(51)都非正在執(zhí)行時(shí),指令同步定時(shí)控制單元(63)優(yōu)先選擇指令存儲(chǔ)單元(62)的輸出指令,并傳遞給調(diào)度單元(22)。
文檔編號(hào)G06F9/46GK1783016SQ20051012418
公開日2006年6月7日 申請(qǐng)日期2005年11月21日 優(yōu)先權(quán)日2004年11月24日
發(fā)明者淺井登, 喜多村啟 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社