專利名稱::輸入輸出控制系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及控制基于多個操作系統(tǒng)(以下,稱為OS)的輸入輸出設(shè)備的共享利用的輸入輸出控制裝置、輸入輸出控制系統(tǒng)以及輸入輸出控制方法。
背景技術(shù):
:在單一OS運行的計算機中,該OS及在該OS上運行的程序通過適時裝入到該OS中的輸入輸出設(shè)備的控制軟件(以下,稱為設(shè)備驅(qū)動程序),可以訪問該計算機具備的輸入輸出設(shè)備。這里,該計算機至少具有在從該計算機的外部向該OS輸入信息時利用的輸入設(shè)備(鍵盤等);和在該OS向該計算機外部輸出信息時利用的輸出設(shè)備(顯示器等)。設(shè)備驅(qū)動程序在裝入到OS中時對該OS登錄自身控制的設(shè)備的信息。作為這樣的設(shè)備信息,例如可以舉出該設(shè)備用的插入序號。在發(fā)生了來自計算機外部的、經(jīng)由輸入設(shè)備的信息的輸入時,第一,插入控制器對CPU通知插入信號和插入序號。第2,CPU接收該插入信號,中斷當前正進行的處理,調(diào)用與該插入序號對應(yīng)的設(shè)備驅(qū)動程序。第3,設(shè)備驅(qū)動程序訪問對應(yīng)的設(shè)備,向OS轉(zhuǎn)交被輸入的信息。另外,OS在輸出特定信息時,根據(jù)該特定信息的內(nèi)容來特定適合的輸出設(shè)備。之后,OS調(diào)用預(yù)先登錄的、與該輸出設(shè)備對應(yīng)的設(shè)備驅(qū)動程序,使該特定信息輸出。如上所述,在計算機上單獨的OS運行時,該OS對于輸入輸出設(shè)備的使用進行管理,只要不發(fā)生在該OS上運行的程序同時訪問輸入輸出設(shè)備的沖突狀態(tài)就可以。另一方面,近年在計算機上可同時執(zhí)行多個OS的環(huán)境正在擴展。這樣的環(huán)境,如圖12所示,被稱為"虛擬機監(jiān)視器(以下,稱為VMM)"的主系統(tǒng)構(gòu)成被稱為"虛擬機(以下,稱為VM)"的客戶(guest)系統(tǒng),在VM上通過運行各OS來實現(xiàn)(例如,參照專利文獻1、非專利文獻1及非專利文獻2)。例如,作為該環(huán)境的利用例考慮到以下這樣的例子,使特化成實時處理的"實時OS(以下,稱為RTOS)"以及通用的"通用OS(以下,稱為GPOS)"在1個計算機上同時運行的例子;在1個服務(wù)器上運行多個OS,在各OS中將該OS用地特化的服務(wù)向客戶端提供的例子。在這樣的環(huán)境下,必須在多個OS中共享以輸入輸出設(shè)備為首的、有限的硬件資源。VMM的作用之一是靜態(tài)或者動態(tài)地將硬件資源分配到各OS。例如,VMM對各OS動態(tài)地轉(zhuǎn)交CPU的控制權(quán),靜態(tài)地邏輯分割主存儲后分配到各OS,由此實現(xiàn)多個OS的同時執(zhí)行。另外,在VMM中還有實現(xiàn)在同時執(zhí)行的多個OS間的數(shù)據(jù)通信的VMM。代表性的實現(xiàn)方法是提供多個OS可以參照的共享存儲器的方法。VMM進行共享存儲器的管理、或者對OS通知向共享存儲器的寫入或讀入這樣的處理。不僅在單一的數(shù)據(jù)通信時,在多個OS間共享硬件資源時也利用這樣的OS間通信功能。例如,考慮在只具有一個網(wǎng)絡(luò)接口的計算機中,多個OS進行與外部的通信的情況。此時,難以考慮各OS獨自具有網(wǎng)絡(luò)接口的設(shè)備驅(qū)動程序的結(jié)構(gòu)。原因是無法事先判斷對于在數(shù)據(jù)接收時發(fā)生的硬件插入應(yīng)該調(diào)用哪個OS的驅(qū)動程序。因此,需要某OS成為唯一的設(shè)備驅(qū)動程序的保存者,進行數(shù)據(jù)收發(fā)以及向各os的數(shù)據(jù)分配。在共享這樣的硬件資源時,必須具有上述的OS間通信功能。:US2004/0205755:"XenandtheArtofvirtulization"InProc.ofSymposiumonoperatingsystemsPrinciples(SOSP)2003(http:/www.d.cam.ac.uk/ReSearch/SRG/netos/papers/2003隱xensosp.pdf):"A600MIPS120mW70|iiALeakageTriple-CPUMobileApplicationProcessorChip"InProc.ofIEEEInternationalSolid-StateCircuitsConference(ISSCC)2005
發(fā)明內(nèi)容考慮在VMM上實現(xiàn)的多個OS環(huán)境中,在任意時刻通過特定OS來專用地被占用的設(shè)備。作為這樣的設(shè)備的一例能舉出人機界面設(shè)備(以下,稱為HID)。例如,作為HID能舉出作為輸入設(shè)備的鍵盤、及作為輸出設(shè)備的顯示器等。這些設(shè)備需要通過用戶正利用的OS來專用地占用。例如,在用戶正利用特定程序時,基本上,需要對該程序輸入由用戶通過鍵盤輸入的結(jié)果,在顯示器上顯示該程序的輸出結(jié)果,所以來自鍵盤的輸入結(jié)果必須轉(zhuǎn)交到運行該程序的OS上,同樣,來自該OS的輸出結(jié)果必須顯示到顯示器上。CPU通過該OS來控制未必與用戶正利用某OS的意思一致。VMM即使是用戶正利用該OS期間,也可以在OS間進行上下文(context)切換,對其它OS分配CPU,或者進行VMM自身的處理。VMM因為管理CPU的分配,所以在任意的時刻都可以掌握哪個OS正控制著CPU,但是在任意的時刻不能掌握用戶正在利用哪個OS。因此,例如VMM在由鍵盤輸入數(shù)據(jù)后發(fā)生了插入時,不能識別該插入是針對哪個OS的插入。例如,在共享網(wǎng)絡(luò)接口時,在接收到的數(shù)據(jù)中賦予了IP地址或端口序號等用于識別目的地的OS的數(shù)據(jù),所以一旦某OS在接收了該數(shù)據(jù)后分配該數(shù)據(jù)就可以??墒?,對于由鍵盤輸入的數(shù)據(jù)進行同樣的處理是困難的。同樣,在向顯示器輸出時也產(chǎn)生問題。全部OS個別保存顯示器驅(qū)動程序,如果隨意地輸出則必然產(chǎn)生向該顯示器的沖突。即使是匯集了對某OS應(yīng)該輸出的數(shù)據(jù)時,在此時刻,如果不能識別哪個OS應(yīng)該輸出該數(shù)據(jù),則不能向用戶顯示正確的輸出結(jié)果。針對以上這樣的問題,在專利文獻1中所述的多個OS環(huán)境沒有準備特別的功能。這是因為專利文獻1假定了RTOS和GPOS同時執(zhí)行的環(huán)境,GPOS始終占用HID。另一方面,在非專利文獻1或者非專利文獻2中所述的多個OS環(huán)境,如圖13所示,準備1個主0S,主OS的GUI(GraphicalUserInterface)服務(wù)器處理對其它全部客戶OS的HID的輸入輸出,由此實現(xiàn)HID的共享。具體來說,僅僅主OS具有針對HID的設(shè)備驅(qū)動程序(HIDDD),該設(shè)備驅(qū)動程序只能處理來自主OS的GUI服務(wù)器的輸入輸出。主OS的GUI服務(wù)器生成主OS以外的各客戶OS用窗口(Window),輸出從對應(yīng)的客戶OS的GUI服務(wù)器通過VMM的OS間通信來接收到的輸出結(jié)果。另外,在該窗口被激活時,將來自輸入設(shè)備的輸入結(jié)果通過該OS間通信轉(zhuǎn)交給對應(yīng)的客戶OS的GUI服務(wù)器??墒牵谶@樣的通過GUI服務(wù)器的解決方法中存在問題。第1個問題是因為全部OS的全部GUI客戶端應(yīng)用程序分別進行輸入輸出處理,所以經(jīng)常發(fā)生在OS間跨越的上下文切換。在多個OS環(huán)境中的OS間跨越的上下文切換,在上下文的保存處理以及恢復(fù)處理中花費時間,尤其在重視速度的向顯示器的輸出處理時,成為很大的瓶頸。另外,在如便攜終端這樣的必須進行省電處理的環(huán)境下,也成為耗電大的主要原因。第2個問題是很大地依存于各OS的平臺及應(yīng)用程序。為了實現(xiàn)這樣的GUI服務(wù)器間的輸入輸出,主OS的GUI服務(wù)器以及客戶OS的GUI服務(wù)器雙方必須對應(yīng)于該功能。另外,尤其在GUI服務(wù)器運行的環(huán)境顯著不同的情況下,在GUI服務(wù)器間進行通信時需要在應(yīng)用程序級別(level)下的數(shù)據(jù)的轉(zhuǎn)換。第3個問題是由于在GUI服務(wù)器上委托全部的輸入輸出處理所以在保密方面存在危險性。因為GUI服務(wù)器是"非特權(quán)過程(用戶權(quán)限)",所以與作為"特權(quán)過程(內(nèi)核權(quán)限)"的OS比較,抗竄改(Tamper)性弱。GUI服務(wù)器在被竄改時不能適當?shù)靥幚鞳S的輸入輸出,可能向錯誤的輸入目的地轉(zhuǎn)交輸入結(jié)果,或者顯示不應(yīng)該顯示的OS的輸出結(jié)果。此外,在占用HID的OS的切換中,為了提高使用性而考慮了幾個切換模式,關(guān)于各切換模式必須考慮切換方法的提供、及不正當?shù)那袚Q以及HID占用的防止等。作為切換模式例如考慮了以下這樣的例子。在特定OS上啟動了特定程序的情況按下了在鍵盤等上準備的切換按鈕的情況在正占用HID的OS上發(fā)生了異常的情況出于調(diào)試等目的,從外部強制性啟動了特定程序的情況另外,作為在OS的切換時所必須考慮的情況,考慮了以下這樣的例子。通過特定OS及特定某程序來防止不正當?shù)腍ID占用防止損失使用性的反復(fù)切換防止在利用優(yōu)先級高的程序時的切換因此,本發(fā)明是鑒于以上的問題而形成的,以提供考慮到效率性、不依存于上位平臺、使用性的輸入輸出控制裝置、輸入輸出控制系統(tǒng)以及輸入輸出控制方法作為目的。本發(fā)明的第1特征是一種輸入輸出控制裝置,在具有多個操作系統(tǒng)的同時執(zhí)行功能的主系統(tǒng)上,對在至少2個以上的操作系統(tǒng)同時運行的計算機上配置的輸入設(shè)備以及輸出設(shè)備的輸入輸出進行控制,其要旨為,具有請求受理部,對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理;控制信息生成部,根據(jù)所述切換請求,生成含有輸入目的地信息或者輸出可否信息的控制信息;和控制信息輸出部,輸出所述輸入目的地信息或者所述輸出可否信息,所述輸入目的地信息至少含有用于特定來自所述輸入設(shè)備的輸入信息的輸入目的地操作系統(tǒng)的信息,所述輸出可否信息至少含有針對操作系統(tǒng)的、用于特定可否向所述輸出設(shè)備輸出的信息。在本發(fā)明的第l特征中,所述請求受理部,也可以受理來自第l控制軟件的切換請求,該第1控制軟件控制由所述計算機預(yù)先具備的第1輸入設(shè)備。在本發(fā)明的第1特征中,所述請求受理部,也可以受理來自操作系統(tǒng)的切換請求。在本發(fā)明的第1特征中,在給予了規(guī)定對于所述切換請求的處理的請求規(guī)則時,所述請求受理部,可以根據(jù)所述請求規(guī)則來受理或者不受理所述切換請求。在本發(fā)明的第1特征中,所述請求規(guī)則在所述切換請求的受理中請求秘密信息的輸入,所述請求受理部可以僅在所述秘密信息正確時受理所述切換請求。在本發(fā)明的第l特征中,所述請求規(guī)則定義不正當?shù)那袚Q請求,所述請求受理部可以在所述切換請求不正當?shù)那闆r下,不受理該切換請求。在本發(fā)明的第1特征中,所述請求規(guī)則在所述切換請求的受理中需要通過來自用戶的特定動作來判定用戶的許可/不許可,所述請求受理部可以根據(jù)基于所述特定動作的許可,來受理所述切換請求。在本發(fā)明的第1特征中,在規(guī)定時間內(nèi)沒有從用戶得到基于所述特定動作的許可/不許可的任何判定時,所述請求受理部可以受理所述切換請求。在本發(fā)明的第1特征中,所述請求規(guī)則將特定的切換請求作為特權(quán)請求,所述請求受理部,也可以在生成基于所述特權(quán)請求的控制信息后,直至滿足特定條件,不受理對通過所述特權(quán)請求被特定的操作系統(tǒng)占用的輸入設(shè)備或者輸出設(shè)備的切換請求。在本發(fā)明的第1特征中,請求受理部可以受理來自所述主系統(tǒng)的切換請求。在本發(fā)明的第1特征中,所述操作系統(tǒng)也可以通過所述請求規(guī)則,只限于許可所述切換請求的情況下,發(fā)行所述切換請求。在本發(fā)明的第l特征中,所述主系統(tǒng)也可以通過所述請求規(guī)則,只限于許可所述切換請求的情況下,發(fā)行所述切換請求。在本發(fā)明的第1特征中,在所述計算機上的第1操作系統(tǒng)或者所述主系統(tǒng)具有檢測在所述計算機上運行的操作系統(tǒng)的特定的狀態(tài)變化的狀態(tài)變化檢測功能時,所述請求受理部也可以受理所述狀態(tài)變化檢測功能根據(jù)占用輸入設(shè)備或者輸出設(shè)備的第2操作系統(tǒng)的所述狀態(tài)變化而發(fā)行的切換請求。本發(fā)明第2特征是一種輸入輸出控制系統(tǒng),具有至少一個輸入設(shè)備;至少一個輸出設(shè)備;控制所述輸入設(shè)備以及所述輸出設(shè)備的輸入輸出的輸入輸出控制裝置;和含有多個操作系統(tǒng)的同時執(zhí)行功能以及在所述多個操作系統(tǒng)間的通信功能的主系統(tǒng),其要旨為,所述輸入輸出控制裝置具有請求受理部,對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理;控制信息生成部,根據(jù)所述切換請求,生成含有輸入目的地信息或者輸出可否信息的控制信息;和控制信息輸出部,輸出所述輸入目的地信息或者所述輸出可否信息,在所述主系統(tǒng)上運行的所述多個操作系統(tǒng)中的特定的l個操作系統(tǒng),具有輸入設(shè)備控制部,根據(jù)所述輸出的輸入目的地信息來特定來自所述輸入設(shè)備的輸入信息的輸入目的地操作系統(tǒng),向該輸入目的地操作系統(tǒng)輸入所述輸入信息;和輸出設(shè)備控制部,根據(jù)所述輸出的輸出可否信息來特定可向所述輸出設(shè)備輸出的操作系統(tǒng),將從該操作系統(tǒng)接收的輸出信息向所述輸出設(shè)備輸出,所述輸入目的地信息至少含有用于特定來自所述輸入設(shè)備的輸入信息的輸入目的地操作系統(tǒng)的信息,所述輸出可否信息至少含有針對操作系統(tǒng)的、用于特定可否向所述輸出設(shè)備輸出的信息。在本發(fā)明的第2特征中,與所述特定的操作系統(tǒng)不同的第1操作系統(tǒng)具有虛擬輸入設(shè)備控制部和虛擬輸出設(shè)備控制部,所述虛擬輸入設(shè)備控制部,接收由所述特定的操作系統(tǒng)的所述輸入設(shè)備控制部輸入的輸入信息,向在所述第1操作系統(tǒng)上運行的程序輸入,所述虛擬輸出設(shè)備控制部,關(guān)于來自在所述第1操作系統(tǒng)上運行的程序的輸出信息,根據(jù)所述輸出可否信息判斷所述第1操作系統(tǒng)是否可以對所述輸出設(shè)備輸出所述輸出信息,也可以只限于可以對所述輸出設(shè)備輸出所述輸出信息的情況下,對所述特定的操作系統(tǒng)的所述輸出設(shè)備控制部輸出所述輸出信息。本發(fā)明第3特征是一種輸入輸出控制系統(tǒng),具有至少一個輸入設(shè)備;至少一個輸出設(shè)備;控制所述輸入設(shè)備以及所述輸出設(shè)備的輸入輸出的輸入輸出控制裝置;和含有多個操作系統(tǒng)的同時執(zhí)行功能以及在所述多個操作系統(tǒng)間的通信功能的主系統(tǒng),其要旨為,所述輸入輸出控制裝置,具有請求受理部,對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理;控制信息生成部,根據(jù)所述切換請求,生成含有輸入目的地信息或者輸出可否信息的控制信息;和控制信息輸出部,輸出所述輸入目的地信息以及所述輸出可否信息,在所述主系統(tǒng)上運行的所述多個操作系統(tǒng),各自具有輸入設(shè)備控制部,根據(jù)參照由所述輸入輸出控制裝置輸出的輸入目的地信息,決定是否將來自所述輸入設(shè)備的輸入信息向所述操作系統(tǒng)輸入;和輸出設(shè)備控制部,根據(jù)由所述輸入輸出控制裝置輸出的輸出可否信息,決定是否輸出來自所述操作系統(tǒng)的輸出信息。本發(fā)明第4特征是一種輸入輸出控制系統(tǒng),具有至少一個輸入設(shè)備;至少一個輸出設(shè)備;控制所述輸入設(shè)備以及所述輸出設(shè)備的輸入輸出的輸入輸出控制裝置;和含有多個操作系統(tǒng)的同時執(zhí)行功能以及在所述多個操作系統(tǒng)間的通信功能的主系統(tǒng),其要旨為,所述輸入輸出控制裝置,具有請求受理部,對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理;控制信息生成部,根據(jù)所述切換請求,生成含有輸入目的地信息或者輸出可否信息的控制信息;和控制信息輸出部,輸出所述輸入目的地信息以及所述輸出可否信息,所述多個操作系統(tǒng)各自具有可控制所述輸入設(shè)備的輸入設(shè)備控制部;和可控制所述輸出設(shè)備的輸出設(shè)備控制部,所述主系統(tǒng)具有輸入輸出控制部,該輸入輸出控制部,根據(jù)所述輸入輸出控制裝置輸出的輸入目的地信息,使所述操作系統(tǒng)的所述輸入設(shè)備控制部有效化或者無效化,根據(jù)所述輸入輸出控制裝置輸出的輸出可否信息,使所述操作系統(tǒng)的所述輸出控制部有效化或者無效化。本發(fā)明第5特征是一種輸入輸出控制系統(tǒng),具有至少一個輸入設(shè)備;至少一個輸出設(shè)備;控制所述輸入設(shè)備以及所述輸出設(shè)備的輸入輸出的輸入輸出控制裝置;和含有多個操作系統(tǒng)的同時執(zhí)行功能以及在所述多個操作系統(tǒng)間的通信功能的主系統(tǒng),其要旨為,所述輸入輸出控制裝置具有請求受理部,對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理;控制信息生成部,根據(jù)所述切換請求生成含有輸入目的地信息或者輸出可否信息的控制信息;和控制信息輸出部,輸出所述輸入目的地信息以及所述輸出可否信息,所述主系統(tǒng)具有插入通知部,該插入通知部,在發(fā)生了對于所述輸入設(shè)備的插入時,將所述插入向所述操作系統(tǒng)通知,所述插入通知部根據(jù)所述輸入輸出控制裝置輸出的輸入目的地信息,特定所述插入的通知目的地。本發(fā)明第6特征是一種輸入輸出控制系統(tǒng),具有至少一個輸入設(shè)備;至少一個輸出設(shè)備;控制所述輸入設(shè)備以及所述輸出設(shè)備的輸入輸出的輸入輸出控制裝置;和含有多個操作系統(tǒng)的同時執(zhí)行功能以及在所述多個操作系統(tǒng)間的通信功能的主系統(tǒng),其要旨為,所述輸入輸出控制裝置具有請求受理部,對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理;控制信息生成部,根據(jù)所述切換請求生成含有輸入目的地信息或者輸出可否信息的控制信息;和控制信息輸出部,輸出所述輸入目的地信息以及所述輸出可否信息,所述主系統(tǒng)具有QoS控制部,該QoS控制部,根據(jù)所述輸入輸出控制裝置輸出的輸入目的地信息或者輸出可否信息,進行對于所述操作系統(tǒng)的QoS控制。本發(fā)明第7特征是一種輸入輸出控制方法,在具有多個操作系統(tǒng)的同時執(zhí)行功能的主系統(tǒng)上,對在至少2個以上的操作系統(tǒng)同時運行的計算機上配置的輸入設(shè)備以及輸出設(shè)備的輸入輸出進行控制,其要旨為,具有以下步驟對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理的步驟;根據(jù)所述切換請求生成含有輸入目的地信息或者輸出可否信息的控制信息的步驟;和輸出所述輸入目的地信息以及所述輸出可否信息的步驟,所述輸入目的地信息至少含有用于特定來自所述輸入設(shè)備的輸入信息的輸入目的地操作系統(tǒng)的信息,所述輸出可否信息至少含有針對操作系統(tǒng)的、用于特定可否向所述輸出設(shè)備輸出的信息。本發(fā)明第8特征是一種輸入輸出控制系統(tǒng),具有至少一個輸入設(shè)備;至少一個輸出設(shè)備;控制所述輸入設(shè)備以及所述輸出設(shè)備的輸入輸出的輸入輸出控制裝置;和含有多個操作系統(tǒng)的同時執(zhí)行功能的主系統(tǒng),其要旨為,所述輸入輸出控制裝置具有請求受理部,對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理;控制信息生成部,根據(jù)所述切換請求,生成含有輸入目的地信息或者輸出可否信息的控制信息;和控制信息輸出部,輸出所述輸入目的地信息或者所述輸出可否信息,在所述操作系統(tǒng)上運行的程序,通過所述輸入目的地信息,只限于在運行所述程序的操作系統(tǒng)是來自所述輸入設(shè)備的輸入目的地操作系統(tǒng)的情況下,發(fā)行對所述操作系統(tǒng)請求輸入的系統(tǒng)調(diào)用,通過所述輸出可否信息,只限于運行所述程序的操作系統(tǒng)可以對所述輸出設(shè)備輸出的情況下,發(fā)行對所述操作系統(tǒng)請求輸出的系統(tǒng)調(diào)用,所述輸入目的地信息至少含有用于特定來自所述輸入設(shè)備的輸入信息的輸入目的地操作系統(tǒng)的信息,所述輸出可否信息至少含有針對操作系統(tǒng)的、用于特定可否向所述輸出設(shè)備輸出的信息。本發(fā)明第9特征是一種輸入輸出控制系統(tǒng),具有至少一個輸入設(shè)備;至少一個輸出設(shè)備;控制所述輸入設(shè)備以及所述輸出設(shè)備的輸入輸出的輸入輸出控制裝置;和含有多個操作系統(tǒng)的同時執(zhí)行功能的主系統(tǒng),其要旨為,所述輸入輸出控制裝置具有請求受理部,對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理;控制信息生成部,根據(jù)所述切換請求,生成含有輸入目的地信息或者輸出可否信息的控制信息;和控制信息輸出部,輸出所述輸入目的地信息或者所述輸出可否信息,在所述操作系統(tǒng)上運行的程序,對所述操作系統(tǒng)請求發(fā)行對于所述輸入輸出控制裝置的切換請求,所述輸入目的地信息至少含有用于特定來自所述輸入設(shè)備的輸入信息的輸入目的地操作系統(tǒng)的信息,所述輸出可否信息至少含有針對操作系統(tǒng)的、用于特定可否向所述輸出設(shè)備輸出的信息。在本發(fā)明的第9特征中,所述程序也可以通過所述請求規(guī)則,只限于許可所述切換請求的情況下,對所述操作系統(tǒng)請求發(fā)行對于所述輸入輸出控制裝置的切換請求。如以上說明,根據(jù)本發(fā)明可以提供考慮到效率性、不依存于上位平臺、且使用性的輸入輸出控制裝置、輸入輸出控制系統(tǒng)以及輸入輸出控制方法。圖1是第1實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖。圖2是表示第1實施方式的輸入輸出控制方法的流程圖。圖3是第2實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖(其1)。圖4是第2實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖(其2)。圖5是第3實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖(其1)。圖6是第3實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖(其2)。圖7是第3實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖(其3)。圖8是第3實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖(其4)。圖9是第3實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖(其5)。圖10是第4實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖。圖11是第5實施方式的輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖。圖12是現(xiàn)有輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖(其1)。圖13是現(xiàn)有輸入輸出控制系統(tǒng)的結(jié)構(gòu)方框圖(其2)。符號說明100輸入輸出控制裝置110請求受理部120控制信息生成部121控制信息130控制信息輸出部210切換請求211外部輸入212OS處理213VMM處理214OS狀態(tài)變化220輸入輸出設(shè)備表230輸入目的地信息240輸出可否信息250請求規(guī)則310、410、510輸入設(shè)備320、420、520輸出設(shè)備330、430、530V畫331、433調(diào)試功能340、350、440、450、540、550OS341、441、451、541輸入設(shè)備控制部342、442、452、542輸出設(shè)備控制部343、444切換按鈕控制驅(qū)動程序351A、443、453虛擬輸入輸出控制裝置351虛擬輸入設(shè)備控制部352虛擬輸出設(shè)備控制部360、370、460、470程序431輸入輸出控制部432插入通知部434QOS控制部560、570GUI服務(wù)器580、590GUI客戶端具體實施例方式以下參照附圖對本發(fā)明的實施方式進行說明。在以下附圖的記載中,相同或者類似的部分標注著相同或者類似的符號。而,應(yīng)該注意附圖僅僅是示意性的圖。(輸入輸出控制系統(tǒng))圖1是第1實施方式的輸入輸出控制裝置100的系統(tǒng)結(jié)構(gòu)。輸入輸出控制裝置100例如在多個OS運行在VMM上、該多個OS中的特定OS在任意時刻占用特定設(shè)備并進行利用這樣的情況下,進行占用該特定設(shè)備的OS的判定及切換等處理。作為這樣的特定設(shè)備,例如舉出在鍵盤等輸入設(shè)備或者顯示器等輸出設(shè)備中具有代表性的HID。例如,用戶利用在其它OS中運行的程序時,在按下了在計算機上預(yù)先準備的切換按鈕的情況下,輸入輸出控制裝置100檢測其旨意,生成控制信息,該控制信息用于使運行該程序的OS占用輸入輸出設(shè)備。具體來說,輸入輸出控制裝置ioo輸出特定來自輸入設(shè)備的輸入信息的輸入目的地OS的輸入目的地信息230、以及特定向輸出設(shè)備可以輸出輸出信息的OS的輸出可否信息240。如圖1所示,輸入輸出控制裝置100具有請求受理部110、控制信息生成部120、和控制信息輸出部130。以下,對各部的處理進行敘述。請求受理部110,在請求切換占用輸入輸出設(shè)備的OS的切換請求210從特定的請求源發(fā)行時,進行以下的處理。1.切換請求210的檢測請求受理部110檢測從特定的請求源發(fā)行的切換請求210。作為發(fā)行這樣的切換請求210的主要原因例如舉出外部輸入211、OS處理212、VMM處理213及OS狀態(tài)變化214。例如,用戶按下了在計算機上預(yù)先準備的切換按鈕時,作為硬件插入產(chǎn)生以"外部輸入211"為主要原因的切換請求211。在發(fā)生了硬件插入時,按照從專利文獻1的開始的"InterruptandEventHandling"的章節(jié)等中記載的現(xiàn)有VMM的動作,開始基于控制該切換按鈕的設(shè)備驅(qū)動程序的控制,所以通過該設(shè)備驅(qū)動程序發(fā)行該切換請求210。另外,例如在此時刻沒有占用輸入輸出設(shè)備的OS、或在該OS上運行的程序請求占用輸入輸出設(shè)備時,該OS發(fā)行以"OS處理212"為主要原因的切換請求210。VMM通過檢測OS間的事件等OS的下位層的處理,根據(jù)需要切換占用輸入輸出設(shè)備的OS,所以發(fā)行以"VMM處理213"為主要原因的切換請求210。例如,在執(zhí)行從專利文獻1的從開始的"Debugging"的章節(jié)中記載的VMM的OS調(diào)試功能時,VMM發(fā)行該切換請求210。在占用輸入輸出設(shè)備的OS中,在發(fā)生了特定的狀態(tài)變化時,發(fā)生以"OS狀態(tài)變化214"為主要原因的切換請求210。尤其,在該OS、或其它OS或VMM等具有狀態(tài)變化檢測功能時,該狀態(tài)變化檢測功能發(fā)行該切換請求210。作為這樣的狀態(tài)變化的一例,考慮了OS的再啟動或OS的意外停機。另外,在從專利文獻1的開始的"HotRebootofSecondaryOperatingSystem"的章中記載著狀態(tài)變化檢測功能的一例。具體來說,關(guān)于怎樣向請求受理部110通知由各程序、各OS、設(shè)備驅(qū)動程序或VMM等發(fā)行的切換請求210,依存于設(shè)備驅(qū)動程序及輸入輸出控制裝置100等的配置方法。關(guān)于詳細的內(nèi)容在第2第4實施方式中進行記述,但是切換請求210至少含有可以特定請求源的信息、和請求內(nèi)容(例如是哪個OS占用輸入輸出設(shè)備的請求,或者是占用哪個輸入輸出設(shè)備的請求等)。2.切換請求210的受理/非受理請求受理部110不能受理檢測到的全部切換請求210。是因為存在如下可能性例如,在惡意的程序連續(xù)發(fā)行切換請求210,請求受理部110受理了全部該切換請求時,多次發(fā)行發(fā)生畫面的切換,或者在特定OS上長時間占用輸入輸出設(shè)備,由此使用性顯著下降。請求受理部110在給予了用于判定是否應(yīng)該受理檢測到的切換請求210的請求規(guī)則250時,根據(jù)該請求規(guī)則250進行對于該切換請求210的受理判定。在表1中表示該請求規(guī)則250的一例。在表1的例子中,可靠性低的一般OS以及可靠性高的安全OS運行,在一般OS中僅運行一般程序,在安全OS中運行一般程序以及特權(quán)程序。安全OS與一般OS的區(qū)別是,安全OS中確保了非常強固的保密,一般OS在該OS、或在該OS上運行的程序中可能存在不合適或惡意。<table>tableseeoriginaldocumentpage16</column></row><table>請求受理部110時常無條件地受理來自VMM的切換請求210。這是因為來自VMM的切換請求210是由于如上所述的調(diào)試功能的啟動等而發(fā)行的緊迫請求。另外,是因為VMM與安全OS同樣被假定為不含有程序錯誤及脆弱性。同樣,請求受理部110對于通過安全OS的特權(quán)程序發(fā)行的切換請求210也以無條件受理。作為特權(quán)程序,例如假定在系統(tǒng)的狀態(tài)變化時啟動的程序。具體來說,作為特權(quán)程序的一例舉出將硬件的故障通知給用戶的程序、將電池量的下降通知給用戶的程序、以及將病毒的檢測通知給用戶的程序等。安全OS自身保障安全性,被設(shè)計為極力避開由不需要的切換導(dǎo)致的使用性下降,所以請求受理部110對于來自通知這些重要信息這樣的程序的切換請求210以無條件受理。請求受理部110對于由安全OS的一般程序發(fā)行的切換請求210,只限于用戶許可的情況下受理。例如,考慮在安全OS側(cè)的郵件接受者接收了郵件時為了向用戶通知其旨意而發(fā)行切換請求210的情況。此時,用戶正利用一般OS的特定程序,而通過切換OS也許避開妨礙該特定程序的利用。因此,請求受理部110—旦保留接收到的切換請求210,就對一般OS進行讓用戶判斷可否切換OS的通知。具體來說,請求受理部110啟動詢問向用戶的許諾的、存在于該OS上的用戶許諾程序,該用戶許諾程序詢問對于用戶的上述判斷。在與這樣的特定OS的通信中利用在從專利文獻1的[149]開始的"Inter-operatingSystemCommunicationS-VirtualbuS"中記載的OS間通信功能等。如果在用戶許諾了OS的切換時,請求受理部110受理保留著的切換請求210。另外,在用戶沒有許諾OS的切換時,請求受理部110不受理保留著的切換請求210。這里,考慮了用戶對于是否許諾了OS的切換沒有作出反應(yīng)的情況。例如,考慮了在一般OS上運行的用戶許諾程序由于不適合的狀況而沒有正常運行的情況等。為了對應(yīng)于這樣的情況,請求受理部110可以為這樣的構(gòu)成在一定時間內(nèi)保留著切換請求210的情況下受理該切換請求210。由此,可以防止成為依舊存儲著保留的切換請求210的狀況。請求受理部110對于由一般OS的一般程序發(fā)行的切換請求210,基本上進行與安全OS的一般程序同等的判斷。艮口,請求受理部110在由用戶許諾了OS的切換時受理該切換請求210。但是,請求受理部110,即使在將切換請求210保留了一定時間的情況下,也不受理該切換請求210。安全OS上的用戶許諾程序,因為沒有由于不適合的狀況等而意外停機的情況,所以用戶只要正利用計算機,基本來說,切換請求210就不會成為保留狀態(tài)。另外,作為在一般OS上運行的一般程序,還可假定如用戶從任意網(wǎng)頁下載的程序。此時,還考慮了該程序具有不適合或惡意、發(fā)行不正當?shù)那袚Q請求210的情況。例如,假定該程序連續(xù)發(fā)行切換請求210的情況,或者在不需要占用輸入輸出設(shè)備時也發(fā)行切換請求210的情況。用戶可以通過用戶許諾程序來拒絕OS的切換,但是每次判斷是否許諾OS的切換導(dǎo)致使用性的下降。為了防止以上這樣的不正當切換請求210,用戶等預(yù)先設(shè)定被視為不正當?shù)那袚Q請求210的條件,請求受理部110可以自動不受理與該條件吻合的切換請求210。例如,請求受理部110也可以不受理來自如在一定時間內(nèi)發(fā)行一定次數(shù)以上的切換請求210那樣的程序的切換請求210。另外,用戶在程序安裝時可以設(shè)定是否必須不受理由該程序發(fā)行的切換請求210,因此可以自動生成不受理切換請求210的條件。此時,根據(jù)程序安裝中的用戶的指定,一般OS可以利用OS間通信功能等來改寫請求規(guī)則250,使其不受理來自該程序的切換請求210。通過切換按鈕發(fā)行的切換請求210是基于用戶的意思的切換請求210,所以請求受理部110基本上受理該切換請求210。但是,也有由第3者通過任意啟動安全OS上的程序來啟動涉及到系統(tǒng)根本的特權(quán)程序的可能性。因此,向安全OS的切換時促使來自用戶的密碼(秘密信息)的輸入。由此,只有該計算機的正規(guī)用戶才可以進行向安全OS的切換。此外,關(guān)于促使密碼輸入的程序的調(diào)用方法及處理方法,與用戶許諾程序相同。另外,請求規(guī)則250與如上所述地由請求源規(guī)定的規(guī)則不同,也有規(guī)定被請求的輸入輸出設(shè)備的情況。例如,通常由程序同時利用作為標準輸入的鍵盤以及作為標準輸出的顯示器。因此,例如,請求規(guī)則250在請求僅占用鍵盤時可以不受理該切換請求210。由此,可以回避如下的死鎖(deadlock)狀態(tài)特定程序在正占用鍵盤的狀態(tài)下請求占用顯示器,同時,其它程序在正占用顯示器的狀態(tài)下請求占用鍵盤。另外,請求規(guī)則250可以將由VMM以及安全OS的特權(quán)程序發(fā)行的切換請求210作為特權(quán)請求來處理。所謂特權(quán)請求就是被規(guī)定為,在根據(jù)該特權(quán)請求在特定OS中占用了輸入輸出設(shè)備時,到滿足特定條件之前無條件地不受理其它OS占用該輸入輸出設(shè)備的切換請求210的切換請求。例如,作為安全OS的特權(quán)程序的病毒檢測軟件,在正占用輸入輸出設(shè)備時,該特權(quán)程序為了在明示地開放該輸入輸出設(shè)備之前占用該輸入輸出設(shè)備而無條件地不受理由一般程序發(fā)行的切換請求210。此外,明示的開放通知以O(shè)S間通信功能等這樣的與切換請求210的通知同樣的結(jié)構(gòu)來實現(xiàn)。另外,上述的VMM、OS或程序可以通過預(yù)先參照請求規(guī)則250來判斷是否可以發(fā)行切換請求210。其結(jié)果,可以限制無效的切換請求210的發(fā)行。在發(fā)行切換請求210發(fā)行時,發(fā)生輸入輸出控制裝置100運行的OS或向VMM的OS間的切換。因此,這樣通過在切換請求210發(fā)行前預(yù)先判斷是否受理,可以削減無效的OS間的切換,可以減少開銷。但是,因為考慮到上述的一般程序即使知道為不受理也發(fā)行切換請求210的情況,所以也有請求受理部110根據(jù)切換請求210的發(fā)行源需要再次檢査請求規(guī)則250的情況。3.切換請求210的通知請求受理部110將已受理的切換請求210通知給控制信息生成部120??刂菩畔⑸刹?20根據(jù)請求受理部110己受理的切換請求210來生成控制信息121。這里,控制信息121為規(guī)定目前占用輸入輸出設(shè)備的OS是哪個OS的狀態(tài)信息0控制信息生成部120作為輸入至少具有輸入輸出設(shè)備表220。例如如表2所示,控制信息121規(guī)定通過輸入輸出設(shè)備表220指定的全部設(shè)備在當前時刻由哪個OS占用。切換請求210至少指定更新控制信息的輸入輸出設(shè)備、和占用該輸入輸出設(shè)備的OS,所以控制信息生成部120根據(jù)該切換請求210可以生成該控制信息121。這里如上所述,屏蔽(mask)狀態(tài)表示無條件地不受理通過特權(quán)請求的發(fā)行來變更控制信息121這樣的切換請求210的狀態(tài)。[表2]<table>tableseeoriginaldocumentpage20</column></row><table>控制信息輸出部130輸出生成的控制信息121。具體來說,控制信息輸出部130向適當?shù)牟考?component)輸出用于特定輸入目的地OS的輸入目的地信息230,以及針對OS的、決定輸出可否的輸出可否信息240。作為輸出目的地可以假定為設(shè)備驅(qū)動程序、VMM或窗口管理器(WindowManager)等的GUI服務(wù)器用程序等。此外,對于控制信息輸出部130的動作在后面進行敘述。(輸入輸出控制方法)采用圖2對第1實施方式的輸入輸出控制方法進行說明。具體來說,對在具有多個OS的同時執(zhí)行功能的主系統(tǒng)上,在至少2個以上的OS同時運行的計算機中控制該計算機具有的輸入設(shè)備或者輸出設(shè)備的輸入輸出的方法進行說明。如圖2所示,在步驟S101中,輸入輸出控制裝置100受理切換請求210,該切換請求210,請求切換占用輸入設(shè)備或者輸出設(shè)備的OS。這里,輸入輸出控制裝置100可以受理來自控制計算機預(yù)先具備的第1輸入設(shè)備的第1控制軟件(設(shè)備驅(qū)動程序)的切換請求210,還可以受理來自O(shè)S的切換請求210,或者可以受理來自主系統(tǒng)的切換請求210。另外,在步驟S101中,在給予了規(guī)定對于切換請求210的處理的請求規(guī)則250時,輸入輸出控制裝置100根據(jù)該請求規(guī)則250來決定關(guān)于切換請求210的受理或者不受理。此外,請求規(guī)則250在受理切換請求210時請求秘密信息(密碼)的輸入的情況下,在步驟S101中,輸入輸出控制裝置100僅在秘密信息正確時受理該切換請求210?;蛘?,在請求規(guī)則250定義不正當?shù)那袚Q請求時,在步驟S101中,輸入輸出控制裝置100在檢測到的切換請求210為不正當時不受理該切換請求210。這里,所謂"不正當?shù)那袚Q請求",例如可以舉出一定時間內(nèi)的連續(xù)的切換請求210,或者由切換請求210的發(fā)行沒有被允許的OS發(fā)行的切換請求210等。另外還有,請求規(guī)則250,在受理切換請求210時,需要基于來自用戶的特定的動作的用戶的許可/不許可的判定的情況下,在步驟S101中,輸入輸出控制裝置100根據(jù)基于特定的動作的許可來受理該切換請求210。另外,在一定時間內(nèi)從用戶沒有得到對基于特定動作的許可/不許可的任何判定的情況下,在步驟S101中,輸入輸出控制裝置100受理該切換請求210。另外,在請求規(guī)則250將特定的切換請求210設(shè)為"特權(quán)請求"時,在步驟SIOI中,輸入輸出控制裝置IOO在生成基于該特權(quán)請求的控制信息后到滿足特定條件之前,根據(jù)該特權(quán)請求將對于在特定OS中占用的輸入設(shè)備或者輸出設(shè)備的切換請求210設(shè)為不受理。這里,所謂"特定條件"例如舉出己結(jié)束發(fā)行了特權(quán)請求的程序的處理的情況等。另外,在計算機上的第一OS或者主系統(tǒng)具有檢測在該計算機上運行的OS的特定的狀態(tài)變化的狀態(tài)變化檢測功能時,在步驟S101中,輸入輸出控制裝置100可以根據(jù)占用輸入設(shè)備或者輸出設(shè)備的第二OS的狀態(tài)變化,受理通過該狀態(tài)變化檢測功能發(fā)行的切換請求210。這里,所謂"狀態(tài)變化",如上所述例如是向由于意外停機或結(jié)束等而導(dǎo)致的不能正常運行第二OS的狀態(tài)的變化。在步驟S102中,輸入輸出控制裝置100根據(jù)切換請求210,生成至少含有來自輸入設(shè)備的、特定輸入目的地OS的信息的輸入目的地信息230、或者至少含有針對OS的、特定可否向輸出設(shè)備輸出的信息的輸出可否信息240。在步驟S103中,輸入輸出控制裝置100向適當?shù)牟考敵鲚斎肽康牡匦畔?30以及輸出可否信息240。輸出目的地是設(shè)備驅(qū)動程序、VMM或窗口管理器等的GUI服務(wù)器程序。(作用以及效果)根據(jù)本實施方式,針對由于各種原因而產(chǎn)生的切換請求210,逐個去生成控制信息121,由此可以逐個切換占用輸入輸出設(shè)備的OS。其結(jié)果,關(guān)于在任意定時進行的輸入輸出,可以向適當?shù)腛S輸入來自輸入設(shè)備的輸入信息,向輸出設(shè)備僅僅輸出輸出信息中的、來自適當?shù)腛S的輸出信息。另夕卜,OS的切換后,因為不處理來自占用OS以外的輸入輸出,所以可以減少OS間的上下文切換,并提高性能。此外,因為僅僅進行輸入輸出設(shè)備與OS之間的接口的切換,所以還有不依存于上位應(yīng)用程序這樣的優(yōu)點。另外,根據(jù)本實施方式,輸入輸出控制裝置100的請求受理部110受理來自控制計算機預(yù)先具備的第1輸入設(shè)備的第1控制軟件(設(shè)備驅(qū)動程序)的切換請求210,因此可以通過來自在該計算機中具有的輸入設(shè)備的輸入來生成控制信息121。其結(jié)果,在最單一的例子中,在具有特殊的切換按鈕的計算機中,通過用戶按下該切換按鈕,可以進行OS的切換。這里,可以將鍵盤的特定的按鈕作為該切換按鈕來分配并使用。另外,根據(jù)本實施方式,輸入輸出控制裝置100的請求受理部110受理來自O(shè)S的切換請求210,因此可以根據(jù)該OS的特定的處理來生成控制信息121。其結(jié)果,例如在該OS上運行了特定的GUI應(yīng)用程序時,可以將HID的控制移動到該特定的GUI應(yīng)用程序中。另外,根據(jù)本實施方式,輸入輸出控制裝置100的請求受理部110在給予了規(guī)定對于切換請求210的處理的請求規(guī)則250時,根據(jù)該請求規(guī)則250來判斷是否受理該切換請求210,因此可以防止由于對以各種原因產(chǎn)生的切換請求210全部受理而導(dǎo)致的使用性的下降或保密上的危險性這樣的威脅。另外,根據(jù)本實施方式,在輸入輸出控制裝置100中,請求規(guī)則250在切換請求210的受理中請求輸入秘密信息(密碼),請求受理部110僅在該秘密信息正確時受理該切換請求,因此可以通過密碼等來限制向特定OS的切換。例如,在準備有可進行計算機的基本設(shè)定的安全OS這樣的情況下,由該計算機的用戶通過預(yù)先設(shè)定的密碼,可以限制由第3者引起的向該安全OS的切換。另外,根據(jù)本實施方式,在輸入輸出控制裝置100中,請求規(guī)則250定義不正當?shù)那袚Q請求,請求受理部110在切換請求210為不正當時不受理該切換請求210,因此可以限制不正當?shù)那袚Q請求210。尤其,可以限制基于不正當OS的誤動作或惡意的動作的不正當?shù)那袚Q請求210,防止特定OS的設(shè)備的占用,及由反復(fù)的OS的切換而導(dǎo)致的使用性下降。另外,根據(jù)本實施方式,在輸入輸出控制裝置100中,請求規(guī)則250在切換請求210的受理中,需要基于來自用戶的特定動作的用戶的許可/不許可的判定,請求受理部110根據(jù)基于該特定動作的許可來受理該切換請求210,因此根據(jù)用戶的許可/不許可的判定,可以進行OS的切換。其結(jié)果,用戶在利用特定應(yīng)用程序時可以防止由于OS突然切換而導(dǎo)致的使用性下降。這里,在從用戶沒有得到許可/不許可的任何判定時,在詢問該許可/不許可的程序部分有可能發(fā)生某些異常。例如,GUI應(yīng)用程序有可能意外停機,或者以設(shè)備占用為目的而故意不詢問用戶。因此,根據(jù)本實施方式,在輸入輸出控制裝置100中,因為在一定時間內(nèi)從用戶沒有得到基于特定動作的許可/不許可的任何判定時,請求受理部110受理切換請求210,g卩,因為在該許可/不許可的應(yīng)答中設(shè)置超時(time-out),所以可以防止上述這樣的問題的發(fā)生。另外,根據(jù)本實施方式,在輸入輸出控制裝置100中,請求規(guī)則250將特定的切換請求210作為特權(quán)請求,請求受理部110在生成基于該特權(quán)請求的控制信息121后到滿足特定條件之前,根據(jù)該特權(quán)請求將對于在特定OS中占用的輸入設(shè)備或者輸出設(shè)備的切換請求210設(shè)為不受理,因此,將特定的切換請求210看做特權(quán)請求,根據(jù)該特權(quán)請求可以最優(yōu)先分配輸入輸出設(shè)備。這樣的特權(quán)請求例如在考慮到對于終端的保密檢查或調(diào)試檢査等強制啟動的情況的程序啟動時發(fā)生。此外,該特權(quán)請求比在之后發(fā)生的一般切換請求210還優(yōu)先,在結(jié)束處理之前,不會解除輸入輸出設(shè)備的占用。另外,根據(jù)本實施方式,輸入輸出控制裝置100的請求受理部110受理來自主系統(tǒng)的切換請求210,因此可以受理由VMM等主系統(tǒng)發(fā)行的切換請求210。其結(jié)果,由于VMM控制的各OS的下位層的處理,可以生成控制信息121。另外,根據(jù)本實施方式,在輸入輸出控制裝置100中,在計算機上的第一OS或者主系統(tǒng)具有檢測在該計算機上運行的OS的特定的狀態(tài)變化的狀態(tài)變化檢測功能時,請求受理部110受理該狀態(tài)變化檢測功能根據(jù)占用輸入設(shè)備或者輸出設(shè)備的第二OS的狀態(tài)變化發(fā)行的切換請求210,因此在OS或VMM檢測到特定OS的狀態(tài)變化時,可以根據(jù)該狀態(tài)變化來生成控制信息121。作為這樣的狀態(tài)變化,考慮OS的結(jié)束及OS的意外停機,狀態(tài)變化檢測機構(gòu)自身詳細記載在專利文獻1中。其結(jié)果,可以防止在不進行正常動作的OS中占用輸入輸出設(shè)備的情況。另外,根據(jù)本實施方式,OS在發(fā)行切換請求210之前讀請求規(guī)則250,只限于該切換請求210被輸入輸出控制裝置100的請求受理部110受理的情況下,發(fā)行該切換請求210,因此可以削減與該切換請求210有關(guān)的OS間的切換的處理成本、以及輸入輸出控制裝置100運行的OS或VMM等主系統(tǒng)的處理成本。另外,根據(jù)本實施方式,主系統(tǒng)在發(fā)行切換請求210之前,讀請求規(guī)則250,只限于該切換請求210被輸入輸出控制裝置100的請求受理部110受理的情況下,發(fā)行該切換請求210,因此可以削減與該切換請求210有關(guān)的OS間的切換的處理成本、以及輸入輸出控制裝置100運行的OS或VMM等主系統(tǒng)的處理成本。另外,根據(jù)本實施方式,在沒有占用輸入輸出設(shè)備的OS上運行的程序?qū)S請求發(fā)行切換請求210之前,讀請求規(guī)則250,只限于該切換請求210被輸入輸出控制裝置100的請求受理部110受理的情況下,發(fā)行該切換請求210,因此可以削減與該切換請求210有關(guān)的該OS上的程序與該OS之間的上下文切換的處理成本、以及輸入輸出控制裝置100運行的OS或VMM等主系統(tǒng)的處理成本。[第2實施方式](輸入輸出控制系統(tǒng))圖3是含有第2實施方式的輸入輸出控制裝置100的多個OS環(huán)境的系統(tǒng)結(jié)構(gòu)。第2實施方式的輸入輸出控制系統(tǒng)具有OS340、OS350、在該OS340上運行的程序360、在該OS350上運行的程序370、輸入設(shè)備310、輸出設(shè)備320和VMM330。另外,OS340具有輸入輸出控制裝置100、可控制輸出設(shè)備320的輸出設(shè)備控制部342和可控制輸入設(shè)備310的輸入設(shè)備控制部341。另外,OS350具有虛擬輸入設(shè)備控制部351、和虛擬輸出設(shè)備控制部352。這里,OS340例如是如在第1實施方式中敘述的安全OS,OS350是一般os。輸入設(shè)備控制部341以及輸出設(shè)備控制部342具有作為對設(shè)備進行控制的設(shè)備驅(qū)動程序的功能,實施用于與輸入輸出控制裝置ioo聯(lián)合動作的擴展。另外,虛擬輸入設(shè)備控制部351以及虛擬輸出設(shè)備控制部352,對OS350及程序370,如作為設(shè)備驅(qū)動程序那樣地工作。實際上,虛擬輸入設(shè)備控制部351是輸入設(shè)備控制部341與OS350的接口,對輸入設(shè)備310與OS350的數(shù)據(jù)的交換進行中繼。另外,虛擬輸出設(shè)備控制部352是輸出設(shè)備控制部342與OS350的接口,對輸出設(shè)備320與OS350的數(shù)據(jù)的交換進行中繼。艮P,虛擬輸入設(shè)備控制部351將由輸入設(shè)備控制部341轉(zhuǎn)交的、來自輸入設(shè)備310的輸入信息向OS350輸入。另外,虛擬輸出設(shè)備控制部352將來自O(shè)S350的輸出信息轉(zhuǎn)交給輸出設(shè)備控制部342。實際上,利用由VMM330提供的OS間通信功能來進行跨越了這些OS間的數(shù)據(jù)的交換。在第2實施方式中,首先對于輸入設(shè)備控制部341以及輸出設(shè)備控制部342利用輸入目的地信息230以及輸出可否信息240來如何動作進行敘述。輸入輸出控制裝置100向輸入設(shè)備控制部341輸出輸入目的地信息230,向輸出設(shè)備控制部342輸出輸出可否信息240。輸入設(shè)備控制部341通過從外部向輸入設(shè)備310輸入輸入信息來驅(qū)動。發(fā)生關(guān)于輸入的硬件插入后、到動作的控制向輸入設(shè)備控制部341移動之前的過程,依存于VMM330的動作,其例子詳細記載在從專利文獻1的開始的"InterruptandEventHandling"上。輸入設(shè)備控制部341根據(jù)輸入目的地信息230可以特定當前哪個OS正占用輸入設(shè)備310,因此向該OS輸入輸入信息。例如,在OS340正占用輸入設(shè)備310時,輸入設(shè)備控制部341進行與通常的設(shè)備驅(qū)動程序同樣的動作,在OS350正占用輸入設(shè)備310時,輸入設(shè)備控制部341向虛擬輸入設(shè)備控制部351輸入輸入信息。輸出設(shè)備控制部342可以通過輸出可否信息240來特定當前哪個OS正占用輸出設(shè)備320。在OS340正占用輸出設(shè)備320時,輸出設(shè)備控制部342進行與通常的設(shè)備驅(qū)動程序同樣的動作。另外,在OS350正占用輸出設(shè)備320時,輸出設(shè)備控制部342將其旨意通知給OS350的虛擬輸出設(shè)備控制部352,從虛擬輸出設(shè)備控制部352接收OS350的輸出信息后向輸出設(shè)備320輸出。另外,輸入輸出控制裝置100可以將輸入目的地信息230或者輸出可否信息240分別向虛擬輸入設(shè)備控制部351或者虛擬輸出設(shè)備控制部352輸出。此時,只限于OS350正占用輸入設(shè)備310的情況下,虛擬輸入設(shè)備控制部351從輸入設(shè)備控制部340接收輸入信息,只限于OS350正占用輸出設(shè)備320的情況下,虛擬輸出設(shè)備控制部352向輸出設(shè)備控制部342輸出輸出信息。其結(jié)果,可以防止在輸入設(shè)備控制部341與虛擬輸入設(shè)備控制部351之間、或者輸出設(shè)備控制部342與虛擬輸出設(shè)備控制部352之間,發(fā)生無效的OS間通信。接著,在第2實施方式的輸入輸出控制系統(tǒng)結(jié)構(gòu)中,根據(jù)圖4對如何發(fā)行請求切換輸入輸出設(shè)備的占用OS的切換請求210進行說明。在圖4中OS350還具有虛擬輸入輸出控制裝置351A。按照在第1實施方式中所敘述的,切換請求210大分為以外部輸入211為主要原因的切換請求、以O(shè)S處理212為主要原因的切換請求、以VMM處理213為主要原因的切換請求、和以O(shè)S狀態(tài)變化214為主要原因的切換請求。例如,用戶按下計算機預(yù)先具有的切換按鈕,由此發(fā)行以外部輸入211為主要原因的切換請求210,進行占用OS的切換。此時,控制該切換按鈕的切換按鈕控制驅(qū)動程序343檢測到按下了切換按鈕,向輸入輸出控制裝置100通知其旨意就可以。在該切換按鈕與輸入設(shè)備相同時,切換按鈕控制驅(qū)動程序343,如果被輸入的信息與切換請求210有關(guān),則發(fā)行該切換請求210,如果不是這樣,則作為輸入設(shè)備控制部341來運行。關(guān)于以O(shè)S處理212為主要原因的切換請求210,例如考慮在OS中通過利用GUI的程序360或者370來發(fā)行的情況。在程序360發(fā)行該切換請求210時,由于是同一OS內(nèi),所以通過對輸入輸出控制裝置100發(fā)行系統(tǒng)呼叫,來發(fā)行該切換請求210。例如,在假定了UNIX(注冊商標)系OS時,預(yù)先將輸入輸出控制裝置100作為設(shè)備文件(/dev/ioctrl等),對OS340進行抽象化,程序360發(fā)行對于該設(shè)備文件的ioctrl系統(tǒng)呼叫。ioctrl系統(tǒng)呼叫可以對各設(shè)備文件發(fā)送獨自的請求,所以可以生成如在實施方式1中敘述的切換請求210并發(fā)行。程序370因為存在于與輸入輸出控制裝置100不同的OS中,所以不能直接發(fā)行系統(tǒng)呼叫。因此,對OS350設(shè)置中繼切換請求210的虛擬輸入輸出控制裝置351A,虛擬輸入輸出控制裝置351A通過利用OS間通信功能,向輸入輸出控制裝置100通知該切換請求210。關(guān)于程序370和虛擬輸入輸出控制裝置351的通信,可以用與程序360和輸入輸出控制裝置100同樣的手段來實現(xiàn)。在發(fā)行以VMM處理213為主要原因的切換請求210時,由VMM330利用signal等單一的通信手段?;蛘?,可以利用在從專利文獻1的開始的"HandlingVirtualizedProcessorExceptions"的章中記載的從VMM向OS發(fā)行的虛擬異常。VMM330因為僅存在于一個系統(tǒng)中,所以即使固定地定義這樣的signal'等也不要緊。輸入輸出控制裝置100只要確認該signal的發(fā)行源是VMM330就可以。關(guān)于以O(shè)S狀態(tài)變化為主要原因的切換請求210,假設(shè)在特定OS或者VMM中有狀態(tài)變化檢測功能的情況。此情況下,用上述的某個手段可以實現(xiàn)切換請求210的通知。(作用以及效果)根據(jù)本實施方式,特定OS340具有控制輸入設(shè)備310以及輸出設(shè)備320的單元(輸入設(shè)備控制部341以及輸出設(shè)備控制部342),由此全部的OS340、350可以共享輸入設(shè)備310以及輸出設(shè)備320。另外,根據(jù)本實施方式,只要特定的OS340安全運行就可以防止由于其它的OS350的誤動作或存在惡意的動作等而導(dǎo)致不正當?shù)卣加幂斎朐O(shè)備310或者輸出設(shè)備320的情況。另外,根據(jù)本實施方式,通過各OS具有的虛擬輸入設(shè)備控制部351或者虛擬輸出設(shè)備控制部352,只限于該OS正占用輸入設(shè)備310或者輸出設(shè)備320的情況下,發(fā)生基于與輸入設(shè)備控制部341或者輸出設(shè)備控制部342的通信的OS間的通信,可以抑制無效的OS間通信。另外,根據(jù)本實施方式,在沒有占用輸入輸出設(shè)備的OS上運行的程序可以請求該OS發(fā)行切換請求210。例如,某程序在顯示器上輸出圖像或文字等輸出信息時,才對OS請求發(fā)行切換請求210。接受該請求后,該OS對輸入輸出控制裝置100發(fā)行該切換請求210。其結(jié)果,即使是該程序運行時,其它OS可以占用輸入輸出設(shè)備,直到發(fā)生輸入輸出事件。(第3實施方式)在第3實施方式中對于各OS具有輸入輸出設(shè)備控制部的情況進行敘述。第3實施方式的輸入輸出控制系統(tǒng),如圖5所示,具有OS440、OS450、在該OS440上運行的程序460、在該OS450上運行的程序470、輸入設(shè)備410、輸出設(shè)備420和VMM430。OS440具有輸入設(shè)備控制部441和輸出設(shè)備控制部442,OS450具有輸入設(shè)備控制部451和輸出設(shè)備控制部452。另外,VMM430具有輸入輸出控制裝置100。在第3實施方式中,全部的OS440、450具有分別控制輸入輸出設(shè)備的輸入設(shè)備控制部441或者輸出設(shè)備控制部442。通過采取這樣的結(jié)構(gòu),與在第2實施方式中敘述的系統(tǒng)相比,輸入輸出的性能提高。具體來說,可以預(yù)料輸入輸出的速度提高及資源使用削減。原因是各設(shè)備驅(qū)動程序不需要在意自己所屬的OS以外的其它OS,可以直接控制輸入輸出設(shè)備,可以省去涉及到OS間的切換的處理。在這樣的系統(tǒng)結(jié)構(gòu)中,必需解決屬于多個OS的輸入設(shè)備控制部或者輸出設(shè)備控制部同時參照單一輸入輸出設(shè)備的、所謂硬件沖突狀態(tài)。因此,輸入輸出控制裝置100在生成了控制信息121時,對全部的輸入設(shè)備控制部441、451或者輸出設(shè)備控制部442、452,輸出輸入目的地信息230或者輸出可否信息240。例如,考慮了這樣的方法對于全部的OS440、450可讀取、VMM430可讀寫的主存儲裝置輸出輸入目的地信息230或者輸出可否信息240。各輸入設(shè)備控制部441、451或者輸出設(shè)備控制部442、452,通過輸入目的地信息230或者輸出可否信息240來特定自己所屬的OS440、450是否正占用輸入設(shè)備410或者輸出設(shè)備420,只限于正占用的情況下,控制該輸入設(shè)備410或者輸出設(shè)備420。輸入設(shè)備控制部441與第2實施方式相同,對應(yīng)來自輸入設(shè)備410的硬件插入的發(fā)生來驅(qū)動。在專利文獻1或者非專利文獻1中所述的VMM,如本系統(tǒng)結(jié)構(gòu)那樣,在1個IRQ(InterruptReQuest)線(line)中對應(yīng)著在多個OS上操作的輸入設(shè)備控制部時,順次驅(qū)動這些輸入設(shè)備控制部,可以判斷調(diào)用的輸入設(shè)備控制部是否參照輸入設(shè)備410。使用此構(gòu)造,被驅(qū)動的輸入設(shè)備控制部441根據(jù)輸入目的地信息230,如果OS440正占用輸入設(shè)備410,則驅(qū)動作為對應(yīng)的設(shè)備驅(qū)動程序的處理。此外,輸入設(shè)備控制部451也進行同樣的操作。輸出設(shè)備控制部442根據(jù)輸出可否信息240,如果OS440正占用輸出設(shè)備420,貝U向輸出設(shè)備420輸出OS440的輸出信息。此外,輸出設(shè)備控制部452也進行同樣的操作。作為各OS具有輸入設(shè)備控制部或者輸出設(shè)備控制部時的其它結(jié)構(gòu),還考慮了圖6所示的結(jié)構(gòu)。圖6所示的結(jié)構(gòu),與上述圖5所示的結(jié)構(gòu)幾乎相同,但是VMM430新具有輸入輸出控制部431。輸入輸出控制部431具有signal或虛擬異常等這樣的與各OS的通信手段,根據(jù)這些通信功能使各OS的輸入設(shè)備控制部441、451或者輸出設(shè)備控制部442、452有效化或者無效化。例如,在OS440或者450是Linux時,Linux在內(nèi)核動作中可以動態(tài)進行設(shè)備驅(qū)動程序的安裝或者卸載。因此例如,通過輸入輸出控制裝置100,在OS440占用輸入設(shè)備410時,輸入輸出控制部431向OS440通知使OS440的輸入設(shè)備控制部441有效化。OS440接收該通知后,將輸入設(shè)備控制部441裝入內(nèi)核代碼中。對其它OS450的輸入設(shè)備控制部451或者輸出設(shè)備控制部451、452也進行同樣的處理。另外還有,作為其它結(jié)構(gòu)例還考慮圖7所示的結(jié)構(gòu)。在圖7所示的結(jié)構(gòu)中,VMM430新具有插入通知部432。插入通知部432是擴展了在專利文獻1或者非專利文獻1等中記載的VMM—般具有的插入處理程序(handler)而成的。一般的插入處理程序在發(fā)生了硬件插入時,根據(jù)其插入序號來判斷與哪個OS對應(yīng)的設(shè)備驅(qū)動程序存在,對該OS通知插入。與IRQ序號對應(yīng)的設(shè)備有多個、控制該設(shè)備的設(shè)備驅(qū)動程序分散在多個OS間時,該插入處理程序依次對OS進行插入通知。插入通知部432在發(fā)生來自輸入設(shè)備410的插入請求時,通過利用輸入輸出控制裝置100中的輸入目的地信息230來特定通知插入的OS。即,插入通知部432在插入發(fā)生時特定占用輸入設(shè)備410的0S,對該OS通知插入。接著,在第3實施方式的系統(tǒng)結(jié)構(gòu)中,根據(jù)圖8對如何發(fā)行請求切換占用輸入輸出設(shè)備的OS的切換請求210進行說明。在圖8中,OS440、450新具有虛擬輸入輸出控制裝置443、453,OS440還具有作為切換按鈕用的設(shè)備驅(qū)動程序的切換按鈕控制驅(qū)動程序444。程序460、470對虛擬輸入輸出控制裝置443、453分別發(fā)行切換請求210的處理,與在第2實施方式中程序370對虛擬輸入輸出控制裝置351發(fā)行切換請求210的處理相同。另外,切換按鈕控制驅(qū)動程序444對虛擬輸入輸出控制裝置443發(fā)行切換請求210的處理,與在第2實施方式中切換按鈕控制驅(qū)動程序343對輸入輸出控制裝置100發(fā)行切換請求210的處理相同。進一步,VMM的調(diào)試功能433以及輸入輸出控制裝置100存在于由VMM430控制的同一存儲器空間內(nèi),所以在發(fā)行切換請求210時不需要特別的功能。在虛擬輸入輸出控制裝置443、453對輸入輸出控制裝置100發(fā)行切換請求210時,VMM430使用作為對OS440提供的接口的"hypercall"。對于"hypercall"以同名在非專利文獻1的3.1節(jié)中有說明,以"trapcall"這樣的名字在專利文獻1的中有說明。這些VMM—OS接口在現(xiàn)有技術(shù)中采用與系統(tǒng)呼叫同樣的使用方法。即,該VMM—OS接口,在依賴于VMM時發(fā)行以VM上的OS的權(quán)限無法處理的特權(quán)命令。本實施方式中的hypercall使用了這些現(xiàn)有技術(shù)所具有的接口功能。關(guān)于在hypercall中實際通知的信息,如同在第1實施方式中所述的那樣。如果輸入輸出控制裝置100針對接收到的hypercall受理該切換請求210,則進行如在第1實施方式中所述的處理,如果因為某種理由成為不受理時則向該OS返回錯誤。接著,根據(jù)圖9對VMM430具有與輸入輸出控制裝置100聯(lián)動動作的QOS控制部434時的動作例進行敘述。QOS控制部434是擴展了例如在從專利文獻1的開始的scheduler的章中記載的CPU調(diào)度程序而成的,根據(jù)各OS處理的優(yōu)先級來決定針對各OS分配的硬件資源。例如,CPU調(diào)度程序為了根據(jù)各OS處理的優(yōu)先級來分配CPU控制而存在。本實施方式的QOS控制部434根據(jù)輸入輸出控制裝置100輸出的輸入目的地信息230以及輸出可否信息240來對占用輸入設(shè)備410或者輸出設(shè)備420的OS設(shè)定高優(yōu)先級,優(yōu)先分配CPU等的硬件資源。其結(jié)果,例如占用HID,用戶實際利用的OS的處理被優(yōu)先處理,使使用性提高。(作用以及效果)根據(jù)本實施方式,各OS440、450分別具有可控制輸入輸出設(shè)備的單元(輸入設(shè)備控制部441、451以及輸出設(shè)備控制部442、452),由此僅在判定為可以由輸入輸出控制裝置100輸入的情況下,輸入設(shè)備控制部441、451向該OS440、450輸入來自輸入設(shè)備410的輸入信息,僅在判定為可以由輸入輸出控制裝置100輸出的情況下,輸出設(shè)備控制部442、452向輸出設(shè)備420輸出來自該OS440、450的輸出信息,可以防止該控制對象輸入輸出設(shè)備的沖突狀態(tài)。另外,各OS440、450可以直接控制輸入輸出設(shè)備,使輸入輸出時的速度提高。另外,VMM430具有輸入輸出控制部431,該輸入輸出控制部431根據(jù)由輸入輸出控制裝置100輸出的輸入目的地信息230使OS440、450的輸入設(shè)備控制部441、451有效化或者無效化,根據(jù)由輸入輸出控制裝置100輸出的輸出可否信息240使OS440、450的輸出設(shè)備控制部442、452有效化或者無效化。其結(jié)果,在各OS440、450分別具有可以控制特定的輸入設(shè)備410的輸入設(shè)備控制部441、451或者可以控制輸出設(shè)備420的輸出設(shè)備控制部442、452時,也通過只有判定為可以由輸入輸出控制裝置100輸入輸出的OS占用輸入設(shè)備410或者輸出設(shè)備420,來可以防止輸入設(shè)備410或者輸出設(shè)備420的沖突狀態(tài)。另外,各OS440、450可以直接控制輸入輸出設(shè)備,使輸入輸出時的速度提咼。進一步,占用輸入設(shè)備410或者輸出設(shè)備420只在主系統(tǒng)許可時才可以,所以可以防止由于OS的誤動作等而導(dǎo)致的輸入設(shè)備410或者輸出設(shè)備420的不正當占用。另外,VMM430具有插入通知部432,該插入通知部,在發(fā)生了對于輸入設(shè)備410的插入時向OS440、450通知該插入,插入通知部432根據(jù)輸入輸出控制裝置IOO輸出的輸入目的地信息,特定該插入的通知目的地。因此,在發(fā)生來自輸入設(shè)備410的插入時,主系統(tǒng)利用輸入輸出控制裝置100可以選擇通知該插入的OS。其結(jié)果,各OS440、450可以直接控制輸入設(shè)備410,使輸入時的速度提高。另外,因為將來自輸入設(shè)備410的輸入信息可靠地輸入到占用該輸入設(shè)備410的OS,所以可以防止由OS的誤動作等引起的輸入設(shè)備410的不正當利用。另外,VMM430具有QOS控制部434,該QOS控制部,根據(jù)輸入輸出控制裝置100輸出的輸入目的地信息230或者輸出可否信息240來進行對于OS的QOS控帝U。因此,主系統(tǒng)可以通過由輸入輸出控制裝置IOO輸出的輸入目的地信息230或者輸出可否信息240來進行對于各OS的QOS控制。例如,對占用HID的OS的處理分配高的CPU優(yōu)先級。其結(jié)果,對用戶實際操作的程序分配了高的CPU優(yōu)先級,使使用性提高。(第4實施方式)圖10是第4實施方式的含有輸入輸出控制裝置100的多個OS環(huán)境的系統(tǒng)結(jié)構(gòu)。第4實施方式的輸入輸出控制系統(tǒng)具有OS540、OS550、在該OS540上運行的GUI服務(wù)器560、在該OS550上運行的GUI服務(wù)器570、在該GUI服務(wù)器560上運行的GUI客戶端580、在該GUI服務(wù)器570上運行的GUI客戶端590、輸入設(shè)備510、輸出設(shè)備520和VMM530。另外,OS540具有輸入輸出控制裝置100、可以控制輸出設(shè)備520的輸出設(shè)備控制部542和可以控制輸入設(shè)備510的輸入設(shè)備控制部541。這里因為第4實施方式的系統(tǒng)結(jié)構(gòu)與在第2實施方式中所述的系統(tǒng)結(jié)構(gòu)相同,所以主要說明兩者的不同點。在第4實施方式的系統(tǒng)中,在各OS540、550上存在GUI服務(wù)器560、570和GUI客戶端580、590。GUI服務(wù)器560、570相當于窗口管理器,匯總處理該OS540、550上的全部GUI程序的輸入輸出。GUI客戶端580、590是向GUI服務(wù)器560、570委托輸入輸出的任意的GUI程序。GUI服務(wù)器560根據(jù)從GUI客戶端580接收的輸入輸出處理請求來處理該輸入輸出。艮P,GUI服務(wù)器560向GUI客戶端580輸入來自輸入設(shè)備510的輸入信息,向輸出設(shè)備520輸出來自GUI客戶端580的輸出信息。進一步,GUI服務(wù)器560將GUI服務(wù)器570作為GUI客戶端來進行與對于GUI客戶端580的處理同樣的處理。通過VMM530具有的OS間通信功能來實現(xiàn)GUI服務(wù)器560與GUI服務(wù)器570間的通信。GUI服務(wù)器570根據(jù)從GUI客戶端590接收的輸入輸出請求,處理該輸入輸出。艮口,GUI服務(wù)器570對GUI客戶端590輸入經(jīng)由GUI服務(wù)器560從輸入設(shè)備510接收到的輸入信息,經(jīng)由GUI服務(wù)器560向輸出設(shè)備520輸出來自GUI客戶端590的輸出信息。GUI服務(wù)器560還以輸入輸出控制裝置100中的輸入目的地信息230或者輸出可否信息240為基礎(chǔ)來動作。艮P,OS540根據(jù)這些信息占用輸入設(shè)備510或者輸出設(shè)備520時,GUI服務(wù)器560處理GUI客戶端580的輸入輸出。另外,在OS550占用輸入設(shè)備510或者輸出設(shè)備520時,GUI服務(wù)器560向GUI服務(wù)器570通知其旨意。通過該通知,只限于判明OS550占用輸入設(shè)備510或者輸出設(shè)備520的情況下,GUI服務(wù)器570向OS550委托輸入輸出處理。相反,在OS550不占用該設(shè)備時,不向OS550委托GUI客戶端590的輸入輸出。例如,通過systemcall來實現(xiàn)GUI服務(wù)器560與輸入輸出控制裝置100之間的通信。(第5實施方式)圖11是第5實施方式的含有輸入輸出控制裝置100的多個OS環(huán)境的系統(tǒng)結(jié)構(gòu)。第5實施方式的輸入輸出控制系統(tǒng)是與在第2實施方式中所示的輸入輸出控制系統(tǒng)幾乎相同的結(jié)構(gòu)。艮口,OS650、及在該OS650上運行的程序670通過虛擬輸入設(shè)備控制軟件651接收來自控制對象的輸入設(shè)備610的輸入信息,通過虛擬輸出設(shè)備控制軟件652,向輸出設(shè)備控制軟件642輸出輸出信息。本實施方式與第2實施方式不同的部分是程序660以及程序670。以下對本實施方式的程序660以及程序670的動作進行說明。此外,以下將程序660作為對象來進行說明,而預(yù)先聲明通過將程序660與輸入設(shè)備控制軟件641的關(guān)系、或者程序660與輸出設(shè)備控制軟件642的關(guān)系置換為程序670與虛擬輸入設(shè)備控制軟件651的關(guān)系、或者程序670與虛擬輸出設(shè)備控制軟件652的關(guān)系也可以適用于程序670。作為一般性通用OS的Linux或Windows(注冊商標)等,具有用于接收來自程序的請求、執(zhí)行僅以O(shè)S權(quán)限可執(zhí)行的特權(quán)處理的接口。程序?qū)υ摻涌诎l(fā)行系統(tǒng)調(diào)用。程序660為了經(jīng)由輸入設(shè)備控制軟件641或輸出設(shè)備控制軟件642接收輸入信息、輸出輸出信息,需要各自專用的系統(tǒng)調(diào)用。例如,在Linux中用于接收輸入信息的系統(tǒng)調(diào)用相當于read系統(tǒng)調(diào)用,用于輸出輸出信息的系統(tǒng)調(diào)用相當于write系統(tǒng)調(diào)用。這些系統(tǒng)調(diào)用的處理因為需要在發(fā)行了系統(tǒng)調(diào)用的程序與OS之間的上下文切換,所以產(chǎn)生很大的處理成本。在本實施方式中,程序660通過進行特別的處理來減少系統(tǒng)調(diào)用的發(fā)行次數(shù),可以削減整個系統(tǒng)的開銷。本實施方式中的輸入輸出控制裝置100將控制信息121輸出到程序660可參照的區(qū)域。例如,輸入輸出控制裝置100向如上所述的在OS間通信時使用的共享存儲器輸出控制信息121。其結(jié)果,程序660可以讀控制信息121,根據(jù)控制信息121的內(nèi)容可以決定是否發(fā)行系統(tǒng)調(diào)用。艮口,根據(jù)控制信息121,只限于OS640正占用作為控制對象的輸入設(shè)備610或者輸出設(shè)備620的情況下,程序660發(fā)行對應(yīng)的系統(tǒng)調(diào)用。其結(jié)果,在即使發(fā)行了系統(tǒng)調(diào)用也因為沒有占用權(quán)而不能執(zhí)行對于輸入輸出設(shè)備的輸入輸出時,可以抑制系統(tǒng)調(diào)用的發(fā)行,可以削減開銷。作為可削減這樣的系統(tǒng)調(diào)用的發(fā)行的設(shè)備,例如舉出音頻設(shè)備。通常,向音頻設(shè)備的輸出,根據(jù)程序應(yīng)該實時地發(fā)生。也就是說,在通常使用時,難以考慮到在某時刻由于OS沒有占用音頻設(shè)備而不能輸出音樂數(shù)據(jù)時存儲該音樂數(shù)據(jù)、在該OS占用了該音頻設(shè)備時輸出。因此,輸出音樂信息的程序660在OS640沒有占用音頻設(shè)備時,無視應(yīng)該輸出的音樂信息,不需要發(fā)行無效的系統(tǒng)調(diào)用。另一方面,作為不能削減這樣的系統(tǒng)調(diào)用的發(fā)行的設(shè)備,舉出顯示器。向各OS具有的顯示器的輸出信息,在該OS占用顯示器的情況下或者不占用顯示器的情況下,都必需向該OS的幀(frame)緩沖存儲器進行存儲*更新。通過這樣,即使在切換了顯示器的占用權(quán)時,用戶也可以從顯示器正確掌握在此時刻的OS的狀況。為了達到上述目的,該OS必需時常更新自幀緩沖存儲器,不拘于控制信息121的內(nèi)容,必需從程序660中繼續(xù)接收輸出信息。如上所述,為了參照控制信息121來變更動作,實施對程序660的改造就可以。艮口,程序660只要具有以下步驟就可以關(guān)于發(fā)生輸入輸出的部分的代碼參照控制信息121的步驟;和根據(jù)控制信息121的內(nèi)容決定是否發(fā)行系統(tǒng)調(diào)用的步驟??墒牵瑢?yīng)于系統(tǒng)變更程序660的內(nèi)容對于程序員來說負擔很大,另外失去了不變更程序660而可以運行這樣的VMM的優(yōu)點。此外,程序員判斷要不要根據(jù)如上所述的設(shè)備差異進行改造,是非常困難的。在安裝本實施方式后的現(xiàn)實的方法,不是直接改造程序660,而是改造程序660在輸入輸出時調(diào)用的API661。一般來說,程序員沒有將系統(tǒng)調(diào)用直接編入代碼中,而是調(diào)用系統(tǒng)準備的API,由此生成程序以使間接地發(fā)行系統(tǒng)調(diào)用。利用API,與如直接調(diào)用系統(tǒng)調(diào)用的代碼相比,使程序設(shè)計變得容易,還有便利性也提高。另外,在每一設(shè)備上準備這樣的API。因此,僅對調(diào)用需要判斷要不要發(fā)行系統(tǒng)調(diào)用的設(shè)備用的API實施改造,該API具備以下步驟就可以參照控制信息121的步驟;根據(jù)參照結(jié)果決定是否進行系統(tǒng)調(diào)用的發(fā)行的步驟;和根據(jù)該決定發(fā)行系統(tǒng)調(diào)用的步驟。由此,本實施方式的無論如何的變更,程序660的制作者都不需要,卻可以抑制系統(tǒng)呼叫的發(fā)行次數(shù),因此使整個系統(tǒng)的性能提高。(作用以及效果)根據(jù)本實施方式,在OS640上運行的程序660參照控制信息121,判斷在此時刻該OS640是否正占用輸入設(shè)備610或者輸出設(shè)備620,只限于正占用的情況下,對該OS發(fā)行關(guān)于輸入輸出的系統(tǒng)調(diào)用,由此可以削減無效系統(tǒng)調(diào)用的發(fā)行所需要的處理成本。以上,采用上述實施方式對本發(fā)明進行了詳細地說明,而對于本領(lǐng)域技術(shù)人員來說,本發(fā)明并不限定于本說明書中說明的實施方式是顯然的。本發(fā)明可以在不脫離由權(quán)利要求范圍的記載所規(guī)定的本發(fā)明的要點以及范圍的前提下修正以及變更實施方式來實施。因此,本說明書的記載以舉例說明為目的,對本發(fā)明不具有任何限制的意思。權(quán)利要求1.一種輸入輸出控制系統(tǒng),具有至少一個輸入設(shè)備、至少一個輸出設(shè)備、控制所述輸入設(shè)備以及所述輸出設(shè)備的輸入輸出的輸入輸出控制裝置、和含有多個操作系統(tǒng)的同時執(zhí)行功能的主系統(tǒng),其特征在于,所述輸入輸出控制裝置,具有請求受理部,對請求切換占用所述輸入設(shè)備或者所述輸出設(shè)備的操作系統(tǒng)的切換請求進行受理;控制信息生成部,根據(jù)所述切換請求,生成含有輸入目的地信息或者輸出可否信息的控制信息;和控制信息輸出部,輸出所述輸入目的地信息或者所述輸出可否信息,在所述操作系統(tǒng)上運行的程序,通過所述輸入目的地信息,只限于在運行所述程序的操作系統(tǒng)是來自所述輸入設(shè)備的輸入目的地操作系統(tǒng)的情況下,發(fā)行對所述操作系統(tǒng)請求輸入的系統(tǒng)調(diào)用,通過所述輸出可否信息,只限于運行所述程序的操作系統(tǒng)可以對所述輸出設(shè)備輸出的情況下,發(fā)行對所述操作系統(tǒng)請求輸出的系統(tǒng)調(diào)用,所述輸入目的地信息至少含有用于特定來自所述輸入設(shè)備的輸入信息的輸入目的地操作系統(tǒng)的信息,所述輸出可否信息至少含有針對操作系統(tǒng)的、用于特定可否向所述輸出設(shè)備輸出的信息。全文摘要本發(fā)明提供一種考慮到效率性、不依存于上位平臺、使用性的輸入輸出控制系統(tǒng)。在具有多個OS的同時執(zhí)行功能的主系統(tǒng)上,對在至少2個以上的OS同時運行的計算機上配置的輸入設(shè)備以及輸出設(shè)備的輸入輸出進行控制的輸入輸出控制裝置(100),具有請求受理部(110),對請求切換占用輸入設(shè)備或者輸出設(shè)備的OS的切換請求進行受理;控制信息生成部(120),根據(jù)切換請求,生成含有輸入目的地信息(230)或者輸出可否信息(240)的控制信息(121);和控制信息輸出部(130),輸出輸入目的地信息(230)或者輸出可否信息(240)。文檔編號G06F9/46GK101359312SQ20081021314公開日2009年2月4日申請日期2007年1月17日優(yōu)先權(quán)日2006年1月17日發(fā)明者太田賢,藤本拓,鈴木敬申請人:株式會社Ntt都科摩