输入输出控制系统的制作方法

文档序号:6470005阅读:152来源:国知局

专利名称::输入输出控制系统的制作方法
技术领域
:本发明涉及控制基于多个操作系统(以下,称为OS)的输入输出设备的共享利用的输入输出控制装置、输入输出控制系统以及输入输出控制方法。
背景技术
:在单一OS运行的计算机中,该OS及在该OS上运行的程序通过适时装入到该OS中的输入输出设备的控制软件(以下,称为设备驱动程序),可以访问该计算机具备的输入输出设备。这里,该计算机至少具有在从该计算机的外部向该OS输入信息时利用的输入设备(键盘等);和在该OS向该计算机外部输出信息时利用的输出设备(显示器等)。设备驱动程序在装入到OS中时对该OS登录自身控制的设备的信息。作为这样的设备信息,例如可以举出该设备用的插入序号。在发生了来自计算机外部的、经由输入设备的信息的输入时,第一,插入控制器对CPU通知插入信号和插入序号。第2,CPU接收该插入信号,中断当前正进行的处理,调用与该插入序号对应的设备驱动程序。第3,设备驱动程序访问对应的设备,向OS转交被输入的信息。另外,OS在输出特定信息时,根据该特定信息的内容来特定适合的输出设备。之后,OS调用预先登录的、与该输出设备对应的设备驱动程序,使该特定信息输出。如上所述,在计算机上单独的OS运行时,该OS对于输入输出设备的使用进行管理,只要不发生在该OS上运行的程序同时访问输入输出设备的冲突状态就可以。另一方面,近年在计算机上可同时执行多个OS的环境正在扩展。这样的环境,如图12所示,被称为"虚拟机监视器(以下,称为VMM)"的主系统构成被称为"虚拟机(以下,称为VM)"的客户(guest)系统,在VM上通过运行各OS来实现(例如,参照专利文献1、非专利文献1及非专利文献2)。例如,作为该环境的利用例考虑到以下这样的例子,使特化成实时处理的"实时OS(以下,称为RTOS)"以及通用的"通用OS(以下,称为GPOS)"在1个计算机上同时运行的例子;在l个服务器上运行多个OS,在各OS中将该OS用地特化的服务向客户端提供的例子。在这样的环境下,必须在多个OS中共享以输入输出设备为首的、有限的硬件资源。VMM的作用之一是静态或者动态地将硬件资源分配到各OS。例如,VMM对各OS动态地转交CPU的控制权,静态地逻辑分割主存储后分配到各0S,由此实现多个OS的同时执行。另外,在VMM中还有实现在同时执行的多个OS间的数据通信的VMM。代表性的实现方法是提供多个OS可以参照的共享存储器的方法。VMM进行共享存储器的管理、或者对OS通知向共享存储器的写入或读入这样的处理。不仅在单一的数据通信时,在多个OS间共享硬件资源时也利用这样的OS间通信功能。例如,考虑在只具有一个网络接口的计算机中,多个OS进行与外部的通信的情况。此时,难以考虑各OS独自具有网络接口的设备驱动程序的结构。原因是无法事先判断对于在数据接收时发生的硬件插入应该调用哪个OS的驱动程序。因此,需要某OS成为唯一的设备驱动程序的保存者,进行数据收发以及向各OS的数据分配。在共享这样的硬件资源时,必须具有上述的OS间通信功能。:US2004/0205755:"XenandtheArtofvirtulization"InProc.ofSymposiumonoperatingsystemsPrinciples(SOSP)2003(http:Avww.cl.cam.ac.uk/ReSearch/SRG/netos/papers/2003-xensosp.pdf):"A600MIPS120mW70jiiALeakageTriple-CPUMobileApplicationProcessorChip"InProc.ofIEEEInternationalSolid-StateCircuitsConference(ISSCC)2005
发明内容考虑在VMM上实现的多个OS环境中,在任意时刻通过特定OS来专用地被占用的设备。作为这样的设备的一例能举出人机界面设备(以下,称为HID)。例如,作为HID能举出作为输入设备的键盘、及作为输出设备的显示器等。这些设备需要通过用户正利用的OS来专用地占用。例如,在用户正利用特定程序时,基本上,需要对该程序输入由用户通过键盘输入的结果,在显示器上显示该程序的输出结果,所以来自键盘的输入结果必须转交到运行该程序的OS上,同样,来自该OS的输出结果必须显示到显示器上。CPU通过该OS来控制未必与用户正利用某OS的意思一致。VMM即使是用户正利用该OS期间,也可以在OS间进行上下文(context)切换,对其它OS分配CPU,或者进行VMM自身的处理。VMM因为管理CPU的分配,所以在任意的时刻都可以掌握哪个OS正控制着CPU,但是在任意的时刻不能掌握用户正在利用哪个OS。因此,例如VMM在由键盘输入数据后发生了插入时,不能识别该插入是针对哪个OS的插入。例如,在共享网络接口时,在接收到的数据中赋予了IP地址或端口序号等用于识别目的地的OS的数据,所以一旦某OS在接收了该数据后分配该数据就可以。可是,对于由键盘输入的数据进行同样的处理是困难的。同样,在向显示器输出时也产生问题。全部OS个别保存显示器驱动程序,如果随意地输出则必然产生向该显示器的冲突。即使是汇集了对某OS应该输出的数据时,在此时刻,如果不能识别哪个os应该输出该数据,则不能向用户显示正确的输出结果。针对以上这样的问题,在专利文献1中所述的多个OS环境没有准备特别的功能。这是因为专利文献1假定了RTOS和GPOS同时执行的环境,GPOS始终占用HID。另一方面,在非专利文献1或者非专利文献2中所述的多个OS环境,如图13所示,准备1个主OS,主OS的GUI(GraphicalUserInterface)服务器处理对其它全部客户OS的HID的输入输出,由此实现HID的共享。具体来说,仅仅主OS具有针对HID的设备驱动程序(HIDDD),该设备驱动程序只能处理来自主OS的GUI服务器的输入输出。主OS的GUI服务器生成主OS以外的各客户OS用窗口(Window),输出从对应的客户OS的GUI服务器通过VMM的OS间通信来接收到的输出结果。另外,在该窗口被激活时,将来自输入设备的输入结果通过该OS间通信转交给对应的客户OS的GUI服务器。可是,在这样的通过GUI服务器的解决方法中存在问题。第1个问题是因为全部OS的全部GUI客户端应用程序分别进行输入输出处理,所以经常发生在OS间跨越的上下文切换。在多个OS环境中的OS间跨越的上下文切换,在上下文的保存处理以及恢复处理中花费时间,尤其在重视速度的向显示器的输出处理时,成为很大的瓶颈。另外,在如便携终端这样的必须进行省电处理的环境下,也成为耗电大的主要原因。第2个问题是很大地依存于各OS的平台及应用程序。为了实现这样的GUI服务器间的输入输出,主OS的GUI服务器以及客户OS的GUI服务器双方必须对应于该功能。另外,尤其在GUI服务器运行的环境显著不同的情况下,在GUI服务器间进行通信时需要在应用程序级别(level)下的数据的转换。第3个问题是由于在GUI服务器上委托全部的输入输出处理所以在保密方面存在危险性。因为GUI服务器是"非特权过程(用户权限)",所以与作为"特权过程(内核权限)"的OS比较,抗窜改(Tamper)性弱。GUI服务器在被窜改时不能适当地处理OS的输入输出,可能向错误的输入目的地转交输入结果,或者显示不应该显示的OS的输出结果。此外,在占用HID的OS的切换中,为了提高使用性而考虑了几个切换模式,关于各切换模式必须考虑切换方法的提供、及不正当的切换以及HID占用的防止等。作为切换模式例如考虑了以下这样的例子。在特定OS上启动了特定程序的情况按下了在键盘等上准备的切换按钮的情况在正占用HID的OS上发生了异常的情况出于调试等目的,从外部强制性启动了特定程序的情况另外,作为在OS的切换时所必须考虑的情况,考虑了以下这样的例子。通过特定OS及特定某程序来防止不正当的HID占用防止损失使用性的反复切换防止在利用优先级高的程序时的切换因此,本发明是鉴于以上的问题而形成的,以提供考虑到效率性、不依存于上位平台、使用性的输入输出控制装置、输入输出控制系统以及输入输出控制方法作为目的。本发明的第1特征是一种输入输出控制装置,在具有多个操作系统的同时执行功能的主系统上,对在至少2个以上的操作系统同时运行的计算机上配置的输入设备以及输出设备的输入输出进行控制,其要旨为,具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息或者所述输出可否信息,所述输入目的地信息至少含有用于特定来自所述输入设备的输入信息的输入目的地操作系统的信息,所述输出可否信息至少含有针对操作系统的、用于特定可否向所述输出设备输出的信息。在本发明的第l特征中,所述请求受理部,也可以受理来自第l控制软件的切换请求,该第1控制软件控制由所述计算机预先具备的第1输入设备。在本发明的第l特征中,所述请求受理部,也可以受理来自操作系统的切换请求。在本发明的第1特征中,在给予了规定对于所述切换请求的处理的请求规则时,所述请求受理部,可以根据所述请求规则来受理或者不受理所述切换请求。在本发明的第1特征中,所述请求规则在所述切换请求的受理中请求秘密信息的输入,所述请求受理部可以仅在所述秘密信息正确时受理所述切换请求。在本发明的第1特征中,所述请求规则定义不正当的切换请求,所述请求受理部可以在所述切换请求不正当的情况下,不受理该切换请求。在本发明的第1特征中,所述请求规则在所述切换请求的受理中需要通过来自用户的特定动作来判定用户的许可/不许可,所述请求受理部可以根据基于所述特定动作的许可,来受理所述切换请求。在本发明的第1特征中,在规定时间内没有从用户得到基于所述特定动作的许可/不许可的任何判定时,所述请求受理部可以受理所述切换请求。在本发明的第l特征中,所述请求规则将特定的切换请求作为特权请求,所述请求受理部,也可以在生成基于所述特权请求的控制信息后,直至满足特定条件,不受理对通过所述特权请求被特定的操作系统占用的输入设备或者输出设备的切换请求。在本发明的第1特征中,请求受理部可以受理来自所述主系统的切换请求。在本发明的第l特征中,所述操作系统也可以通过所述请求规则,只限于许可所述切换请求的情况下,发行所述切换请求。在本发明的第1特征中,所述主系统也可以通过所述请求规则,只限于许可所述切换请求的情况下,发行所述切换请求。在本发明的第1特征中,在所述计算机上的第1操作系统或者所述主系统具有检测在所述计算机上运行的操作系统的特定的状态变化的状态变化检测功能时,所述请求受理部也可以受理所述状态变化检测功能根据占用输入设备或者输出设备的第2操作系统的所述状态变化而发行的切换请求。本发明第2特征是一种输入输出控制系统,具有至少一个输入设备;至少一个输出设备;控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置;和含有多个操作系统的同时执行功能以及在所述多个操作系统间的通信功能的主系统,其要旨为,所述输入输出控制装置具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息或者所述输出可否信息,在所述主系统上运行的所述多个操作系统中的特定的l个操作系统,具有输入设备控制部,根据所述输出的输入目的地信息来特定来自所述输入设备的输入信息的输入目的地操作系统,向该输入目的地操作系统输入所述输入信息;和输出设备控制部,根据所述输出的输出可否信息来特定可向所述输出设备输出的操作系统,将从该操作系统接收的输出信息向所述输出设备输出,所述输入目的地信息至少含有用于特定来自所述输入设备的输入信息的输入目的地操作系统的信息,所述输出可否信息至少含有针对操作系统的、用于特定可否向所述输出设备输出的信息。在本发明的第2特征中,与所述特定的操作系统不同的第1操作系统具有虚拟输入设备控制部和虚拟输出设备控制部,所述虚拟输入设备控制部,接收由所述特定的操作系统的所述输入设备控制部输入的输入信息,向在所述第1操作系统上运行的程序输入,所述虚拟输出设备控制部,关于来自在所述第1操作系统上运行的程序的输出信息,根据所述输出可否信息判断所述第1操作系统是否可以对所述输出设备输出所述输出信息,也可以只限于可以对所述输出设备输出所述输出信息的情况下,对所述特定的操作系统的所述输出设备控制部输出所述输出信息。本发明第3特征是一种输入输出控制系统,具有至少一个输入设备;至少一个输出设备;控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置;和含有多个操作系统的同时执行功能以及在所述多个操作系统间的通信功能的主系统,其要旨为,所述输入输出控制装置,具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息以及所述输出可否信息,在所述主系统上运行的所述多个操作系统,各自具有输入设备控制部,根据参照由所述输入输出控制装置输出的输入目的地信息,决定是否将来自所述输入设备的输入信息向所述操作系统输入;和输出设备控制部,根据由所述输入输出控制装置输出的输出可否信息,决定是否输出来自所述操作系统的输出信息。本发明第4特征是一种输入输出控制系统,具有至少一个输入设备;至少一个输出设备;控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置;和含有多个操作系统的同时执行功能以及在所述多个操作系统间的通信功能的主系统,其要旨为,所述输入输出控制装置,具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息以及所述输出可否信息,所述多个操作系统各自具有可控制所述输入设备的输入设备控制部;和可控制所述输出设备的输出设备控制部,所述主系统具有输入输出控制部,该输入输出控制部,根据所述输入输出控制装置输出的输入目的地信息,使所述操作系统的所述输入设备控制部有效化或者无效化,根据所述输入输出控制装置输出的输出可否信息,使所述操作系统的所述输出控制部有效化或者无效化。本发明第5特征是一种输入输出控制系统,具有至少一个输入设备;至少一个输出设备;控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置;和含有多个操作系统的同时执行功能以及在所述多个操作系统间的通信功能的主系统,其要旨为,所述输入输出控制装置具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息以及所述输出可否信息,所述主系统具有插入通知部,该插入通知部,在发生了对于所述输入设备的插入时,将所述插入向所述操作系统通知,所述插入通知部根据所述输入输出控制装置输出的输入目的地信息,特定所述插入的通知目的地。本发明第6特征是一种输入输出控制系统,具有至少一个输入设备;至少一个输出设备;控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置;和含有多个操作系统的同时执行功能以及在所述多个操作系统间的通信功能的主系统,其要旨为,所述输入输出控制装置具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息以及所述输出可否信息,所述主系统具有QoS控制部,该QoS控制部,根据所述输入输出控制装置输出的输入目的地信息或者输出可否信息,进行对于所述操作系统的QoS控制。本发明第7特征是一种输入输出控制方法,在具有多个操作系统的同时执行功能的主系统上,对在至少2个以上的操作系统同时运行的计算机上配置的输入设备以及输出设备的输入输出进行控制,其要旨为,具有以下步骤对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理的步骤;根据所述切换请求生成含有输入目的地信息或者输出可否信息的控制信息的步骤;和输出所述输入目的地信息以及所述输出可否信息的步骤,所述输入目的地信息至少含有用于特定来自所述输入设备的输入信息的输入目的地操作系统的信息,所述输出可否信息至少含有针对操作系统的、用于特定可否向所述输出设备输出的信息。本发明第8特征是一种输入输出控制系统,具有至少一个输入设备;至少一个输出设备;控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置;和含有多个操作系统的同时执行功能的主系统,其要旨为,所述输入输出控制装置具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息或者所述输出可否信息,在所述操作系统上运行的程序,通过所述输入目的地信息,只限于在运行所述程序的操作系统是来自所述输入设备的输入目的地操作系统的情况下,发行对所述操作系统请求输入的系统调用,通过所述输出可否信息,只限于运行所述程序的操作系统可以对所述输出设备输出的情况下,发行对所述操作系统请求输出的系统调用,所述输入目的地信息至少含有用于特定来自所述输入设备的输入信息的输入目的地操作系统的信息,所述输出可否信息至少含有针对操作系统的、用于特定可否向所述输出设备输出的信息。本发明第9特征是一种输入输出控制系统,具有至少一个输入设备;至少一个输出设备;控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置;和含有多个操作系统的同时执行功能的主系统,其要旨为,所述输入输出控制装置具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息或者所述输出可否信息,在所述操作系统上运行的程序,对所述操作系统请求发行对于所述输入输出控制装置的切换请求,所述输入目的地信息至少含有用于特定来自所述输入设备的输入信息的输入目的地操作系统的信息,所述输出可否信息至少含有针对操作系统的、用于特定可否向所述输出设备输出的信息。在本发明的第9特征中,所述程序也可以通过所述请求规则,只限于许可所述切换请求的情况下,对所述操作系统请求发行对于所述输入输出控制装置的切换请求。如以上说明,根据本发明可以提供考虑到效率性、不依存于上位平台、且使用性的输入输出控制装置、输入输出控制系统以及输入输出控制方法。图1是第1实施方式的输入输出控制系统的结构方框图。图2是表示第1实施方式的输入输出控制方法的流程图。图3是第2实施方式的输入输出控制系统的结构方框图(其1)。图4是第2实施方式的输入输出控制系统的结构方框图(其2)。图5是第3实施方式的输入输出控制系统的结构方框图(其1)。图6是第3实施方式的输入输出控制系统的结构方框图(其2)。图7是第3实施方式的输入输出控制系统的结构方框图(其3)。图8是第3实施方式的输入输出控制系统的结构方框图(其4)。图9是第3实施方式的输入输出控制系统的结构方框图(其5)。图10是第4实施方式的输入输出控制系统的结构方框图。图11是第5实施方式的输入输出控制系统的结构方框图。图12是现有输入输出控制系统的结构方框图(其l)。图13是现有输入输出控制系统的结构方框图(其2)。符号说明100输入输出控制装置IIO请求受理部120控制信息生成部121控制信息130控制信息输出部210切换请求211外部输入212OS处理213VMM处理214OS状态变化220输入输出设备表230输入目的地信息240输出可否信息250请求规则310、410、510输入设备320、420、520输出设备330、430、530V画331、433调试功能340、350、440、450、540、550OS341、441、451、541输入设备控制部342、442、452、542输出设备控制部343、444切换按钮控制驱动程序351A、443、453虚拟输入输出控制装置351虚拟输入设备控制部352虚拟输出设备控制部360、370、460、470程序431输入输出控制部432插入通知部434QOS控制部560、570GUI服务器580、590GUI客户端具体实施例方式以下参照附图对本发明的实施方式进行说明。在以下附图的记载中,相同或者类似的部分标注着相同或者类似的符号。而,应该注意附图仅仅是示意性的图。(输入输出控制系统)图1是第1实施方式的输入输出控制装置100的系统结构。输入输出控制装置100例如在多个OS运行在VMM上、该多个OS中的特定OS在任意时刻占用特定设备并进行利用这样的情况下,进行占用该特定设备的OS的判定及切换等处理。作为这样的特定设备,例如举出在键盘等输入设备或者显示器等输出设备中具有代表性的HID。例如,用户利用在其它OS中运行的程序时,在按下了在计算机上预先准备的切换按钮的情况下,输入输出控制装置100检测其旨意,生成控制信息,该控制信息用于使运行该程序的OS占用输入输出设备。具体来说,输入输出控制装置ioo输出特定来自输入设备的输入信息的输入目的地OS的输入目的地信息230、以及特定向输出设备可以输出输出信息的OS的输出可否信息240。如图1所示,输入输出控制装置100具有请求受理部110、控制信息生成部120、和控制信息输出部130。以下,对各部的处理进行叙述。请求受理部110,在请求切换占用输入输出设备的OS的切换请求210从特定的请求源发行时,进行以下的处理。1.切换请求210的检测请求受理部110检测从特定的请求源发行的切换请求210。作为发行这样的切换请求210的主要原因例如举出外部输入211、OS处理212、VMM处理213及OS状态变化214。例如,用户按下了在计算机上预先准备的切换按钮时,作为硬件插入产生以"外部输入211"为主要原因的切换请求211。在发生了硬件插入时,按照从专利文献1的开始的"InterruptandEventHandling"的章节等中记载的现有VMM的动作,开始基于控制该切换按钮的设备驱动程序的控制,所以通过该设备驱动程序发行该切换请求210。另外,例如在此时刻没有占用输入输出设备的OS、或在该OS上运行的程序请求占用输入输出设备时,该OS发行以"OS处理212"为主要原因的切换请求210。VMM通过检测OS间的事件等OS的下位层的处理,根据需要切换占用输入输出设备的OS,所以发行以"VMM处理213"为主要原因的切换请求210。例如,在执行从专利文献1的从开始的"Debugging"的章节中记载的VMM的OS调试功能时,VMM发行该切换请求210。在占用输入输出设备的OS中,在发生了特定的状态变化时,发生以"OS状态变化214"为主要原因的切换请求210。尤其,在该OS、或其它OS或VMM等具有状态变化检测功能时,该状态变化检测功能发行该切换请求210。作为这样的状态变化的一例,考虑了OS的再启动或OS的意外停机。另外,在从专利文献1的开始的"HotRebootofSecondaryOperatingSystem"的章中记载着状态变化检测功能的一例。具体来说,关于怎样向请求受理部110通知由各程序、各OS、设备驱动程序或VMM等发行的切换请求210,依存于设备驱动程序及输入输出控制装置100等的配置方法。关于详细的内容在第2第4实施方式中进行记述,但是切换请求210至少含有可以特定请求源的信息、和请求内容(例如是哪个OS占用输入输出设备的请求,或者是占用哪个输入输出设备的请求等)。2.切换请求210的受理/非受理请求受理部110不能受理检测到的全部切换请求210。是因为存在如下可能性例如,在恶意的程序连续发行切换请求210,请求受理部110受理了全部该切换请求时,多次发行发生画面的切换,或者在特定OS上长时间占用输入输出设备,由此使用性显著下降。请求受理部110在给予了用于判定是否应该受理检测到的切换请求210的请求规则250时,根据该请求规则250进行对于该切换请求210的受理判定。在表1中表示该请求规则250的一例。在表1的例子中,可靠性低的一般OS以及可靠性高的安全OS运行,在一般OS中仅运行一般程序,在安全OS中运行一般程序以及特权程序。安全OS与一般OS的区别是,安全OS中确保了非常强固的保密,一般OS在该OS、或在该OS上运行的程序中可能存在不合适或恶意。<table>tableseeoriginaldocumentpage17</column></row><table>请求受理部110时常无条件地受理来自VMM的切换请求210。这是因为来自VMM的切换请求210是由于如上所述的调试功能的启动等而发行的紧迫请求。另外,是因为VMM与安全OS同样被假定为不含有程序错误及脆弱性。同样,请求受理部110对于通过安全OS的特权程序发行的切换请求210也以无条件受理。作为特权程序,例如假定在系统的状态变化时启动的程序。具体来说,作为特权程序的一例举出将硬件的故障通知给用户的程序、将电池量的下降通知给用户的程序、以及将病毒的检测通知给用户的程序等。安全OS自身保障安全性,被设计为极力避开由不需要的切换导致的使用性下降,所以请求受理部110对于来自通知这些重要信息这样的程序的切换请求210以无条件受理。请求受理部110对于由安全OS的一般程序发行的切换请求210,只限于用户许可的情况下受理。例如,考虑在安全OS侧的邮件接受者接收了邮件时为了向用户通知其旨意而发行切换请求210的情况。此时,用户正利用一般OS的特定程序,而通过切换OS也许避开妨碍该特定程序的利用。因此,请求受理部110—旦保留接收到的切换请求210,就对一般OS进行让用户判断可否切换OS的通知。具体来说,请求受理部110启动询问向用户的许诺的、存在于该OS上的用户许诺程序,该用户许诺程序询问对于用户的上述判断。在与这样的特定OS的通信中利用在从专利文献1的[149]开始的"Inter-operatingSystemCommunicationS-VirtualbuS"中记载的OS间通信功能等。如果在用户许诺了OS的切换时,请求受理部110受理保留着的切换请求210。另外,在用户没有许诺OS的切换时,请求受理部110不受理保留着的切换请求210。这里,考虑了用户对于是否许诺了OS的切换没有作出反应的情况。例如,考虑了在一般OS上运行的用户许诺程序由于不适合的状况而没有正常运行的情况等。为了对应于这样的情况,请求受理部110可以为这样的构成在一定时间内保留着切换请求210的情况下受理该切换请求210。由此,可以防止成为依旧存储着保留的切换请求210的状况。请求受理部110对于由一般OS的一般程序发行的切换请求210,基本上进行与安全OS的一般程序同等的判断。艮口,请求受理部110在由用户许诺了OS的切换时受理该切换请求210。但是,请求受理部110,即使在将切换请求210保留了一定时间的情况下,也不受理该切换请求210。安全OS上的用户许诺程序,因为没有由于不适合的状况等而意外停机的情况,所以用户只要正利用计算机,基本来说,切换请求210就不会成为保留状态。另外,作为在一般OS上运行的一般程序,还可假定如用户从任意网页下载的程序。此时,还考虑了该程序具有不适合或恶意、发行不正当的切换请求210的情况。例如,假定该程序连续发行切换请求210的情况,或者在不需要占用输入输出设备时也发行切换请求210的情况。用户可以通过用户许诺程序来拒绝OS的切换,但是每次判断是否许诺OS的切换导致使用性的下降。为了防止以上这样的不正当切换请求210,用户等预先设定被视为不正当的切换请求210的条件,请求受理部110可以自动不受理与该条件吻合的切换请求210。例如,请求受理部110也可以不受理来自如在一定时间内发行一定次数以上的切换请求210那样的程序的切换请求210。另外,用户在程序安装时可以设定是否必须不受理由该程序发行的切换请求210,因此可以自动生成不受理切换请求210的条件。此时,根据程序安装中的用户的指定,一般OS可以利用OS间通信功能等来改写请求规则250,使其不受理来自该程序的切换请求210。通过切换按钮发行的切换请求210是基于用户的意思的切换请求210,所以请求受理部110基本上受理该切换请求210。但是,也有由第3者通过任意启动安全OS上的程序来启动涉及到系统根本的特权程序的可能性。因此,向安全OS的切换时促使来自用户的密码(秘密信息)的输入。由此,只有该计算机的正规用户才可以进行向安全OS的切换。此外,关于促使密码输入的程序的调用方法及处理方法,与用户许诺程序相同。另外,请求规则250与如上所述地由请求源规定的规则不同,也有规定被请求的输入输出设备的情况。例如,通常由程序同时利用作为标准输入的键盘以及作为标准输出的显示器。因此,例如,请求规则250在请求仅占用键盘时可以不受理该切换请求210。由此,可以回避如下的死锁(deadlock)状态特定程序在正占用键盘的状态下请求占用显示器,同时,其它程序在正占用显示器的状态下请求占用键盘。另外,请求规则250可以将由VMM以及安全OS的特权程序发行的切换请求210作为特权请求来处理。所谓特权请求就是被规定为,在根据该特权请求在特定OS中占用了输入输出设备时,到满足特定条件之前无条件地不受理其它OS占用该输入输出设备的切换请求210的切换请求。例如,作为安全OS的特权程序的病毒检测软件,在正占用输入输出设备时,该特权程序为了在明示地开放该输入输出设备之前占用该输入输出设备而无条件地不受理由一般程序发行的切换请求210。此外,明示的开放通知以OS间通信功能等这样的与切换请求210的通知同样的结构来实现。另外,上述的VMM、OS或程序可以通过预先参照请求规则250来判断是否可以发行切换请求210。其结果,可以限制无效的切换请求210的发行。在发行切换请求210发行时,发生输入输出控制装置100运行的OS或向VMM的OS间的切换。因此,这样通过在切换请求210发行前预先判断是否受理,可以削减无效的OS间的切换,可以减少开销。但是,因为考虑到上述的一般程序即使知道为不受理也发行切换请求210的情况,所以也有请求受理部110根据切换请求210的发行源需要再次检查请求规则250的情况。3.切换请求210的通知请求受理部110将已受理的切换请求210通知给控制信息生成部120。控制信息生成部120根据请求受理部110已受理的切换请求210来生成控制信息121。这里,控制信息121为规定目前占用输入输出设备的OS是哪个OS的状态信息。控制信息生成部120作为输入至少具有输入输出设备表220。例如如表2所示,控制信息121规定通过输入输出设备表220指定的全部设备在当前时刻由哪个OS占用。切换请求210至少指定更新控制信息的输入输出设备、和占用该输入输出设备的OS,所以控制信息生成部120根据该切换请求210可以生成该控制信息121。这里如上所述,屏蔽(mask)状态表示无条件地不受理通过特权请求的发行来变更控制信息121这样的切换请求210的状态。[表2]<table>tableseeoriginaldocumentpage21</column></row><table>控制信息输出部130输出生成的控制信息121。具体来说,控制信息输出部130向适当的部件(component)输出用于特定输入目的地OS的输入目的地信息230,以及针对OS的、决定输出可否的输出可否信息240。作为输出目的地可以假定为设备驱动程序、VMM或窗口管理器(WindowManager)等的GUI服务器用程序等。此外,对于控制信息输出部130的动作在后面进行叙述。(输入输出控制方法)采用图2对第1实施方式的输入输出控制方法进行说明。具体来说,对在具有多个OS的同时执行功能的主系统上,在至少2个以上的OS同时运行的计算机中控制该计算机具有的输入设备或者输出设备的输入输出的方法进行说明。如图2所示,在步骤S101中,输入输出控制装置100受理切换请求210,该切换请求210,请求切换占用输入设备或者输出设备的OS。这里,输入输出控制装置100可以受理来自控制计算机预先具备的第1输入设备的第1控制软件(设备驱动程序)的切换请求210,还可以受理来自OS的切换请求210,或者可以受理来自主系统的切换请求210。另外,在步骤S101中,在给予了规定对于切换请求210的处理的请求规则250时,输入输出控制装置100根据该请求规则250来决定关于切换请求210的受理或者不受理。此外,请求规则250在受理切换请求210时请求秘密信息(密码)的输入的情况下,在步骤S101中,输入输出控制装置100仅在秘密信息正确时受理该切换请求210。或者,在请求规则250定义不正当的切换请求时,在步骤S101中,输入输出控制装置100在检测到的切换请求210为不正当时不受理该切换请求210。这里,所谓"不正当的切换请求",例如可以举出一定时间内的连续的切换请求210,或者由切换请求210的发行没有被允许的OS发行的切换请求210等。另外还有,请求规则250,在受理切换请求210时,需要基于来自用户的特定的动作的用户的许可/不许可的判定的情况下,在步骤S101中,输入输出控制装置100根据基于特定的动作的许可来受理该切换请求210。另外,在一定时间内从用户没有得到对基于特定动作的许可/不许可的任何判定的情况下,在步骤S101中,输入输出控制装置100受理该切换请求210。另外,在请求规则250将特定的切换请求210设为"特权请求"时,在步骤SIOI中,输入输出控制装置IOO在生成基于该特权请求的控制信息后到满足特定条件之前,根据该特权请求将对于在特定OS中占用的输入设备或者输出设备的切换请求210设为不受理。这里,所谓"特定条件"例如举出已结束发行了特权请求的程序的处理的情况等。另外,在计算机上的第一OS或者主系统具有检测在该计算机上运行的OS的特定的状态变化的状态变化检测功能时,在步骤S101中,输入输出控制装置100可以根据占用输入设备或者输出设备的第二OS的状态变化,受理通过该状态变化检测功能发行的切换请求210。这里,所谓"状态变化",如上所述例如是向由于意外停机或结束等而导致的不能正常运行第二OS的状态的变化。在步骤S102中,输入输出控制装置100根据切换请求210,生成至少含有来自输入设备的、特定输入目的地OS的信息的输入目的地信息230、或者至少含有针对OS的、特定可否向输出设备输出的信息的输出可否信息240。在步骤S103中,输入输出控制装置100向适当的部件输出输入目的地信息230以及输出可否信息240。输出目的地是设备驱动程序、VMM或窗口管理器等的GUI服务器程序。(作用以及效果)根据本实施方式,针对由于各种原因而产生的切换请求210,逐个去生成控制信息121,由此可以逐个切换占用输入输出设备的OS。其结果,关于在任意定时进行的输入输出,可以向适当的OS输入来自输入设备的输入信息,向输出设备仅仅输出输出信息中的、来自适当的OS的输出信息。另外,OS的切换后,因为不处理来自占用OS以外的输入输出,所以可以减少OS间的上下文切换,并提高性能。此外,因为仅仅进行输入输出设备与OS之间的接口的切换,所以还有不依存于上位应用程序这样的优点。另外,根据本实施方式,输入输出控制装置100的请求受理部110受理来自控制计算机预先具备的第1输入设备的第1控制软件(设备驱动程序)的切换请求210,因此可以通过来自在该计算机中具有的输入设备的输入来生成控制信息121。其结果,在最单一的例子中,在具有特殊的切换按钮的计算机中,通过用户按下该切换按钮,可以进行OS的切换。这里,可以将键盘的特定的按钮作为该切换按钮来分配并使用。另外,根据本实施方式,输入输出控制装置100的请求受理部110受理来自OS的切换请求210,因此可以根据该OS的特定的处理来生成控制信息121。其结果,例如在该OS上运行了特定的GUI应用程序时,可以将HID的控制移动到该特定的GUI应用程序中。另外,根据本实施方式,输入输出控制装置100的请求受理部110在给予了规定对于切换请求210的处理的请求规则250时,根据该请求规则250来判断是否受理该切换请求210,因此可以防止由于对以各种原因产生的切换请求210全部受理而导致的使用性的下降或保密上的危险性这样的威胁。另外,根据本实施方式,在输入输出控制装置100中,请求规则250在切换请求210的受理中请求输入秘密信息(密码),请求受理部110仅在该秘密信息正确时受理该切换请求,因此可以通过密码等来限制向特定OS的切换。例如,在准备有可进行计算机的基本设定的安全OS这样的情况下,由该计算机的用户通过预先设定的密码,可以限制由第3者引起的向该安全OS的切换。另外,根据本实施方式,在输入输出控制装置100中,请求规则250定义不正当的切换请求,请求受理部110在切换请求210为不正当时不受理该切换请求210,因此可以限制不正当的切换请求210。尤其,可以限制基于不正当OS的误动作或恶意的动作的不正当的切换请求210,防止特定OS的设备的占用,及由反复的OS的切换而导致的使用性下降。另外,根据本实施方式,在输入输出控制装置100中,请求规则250在切换请求210的受理中,需要基于来自用户的特定动作的用户的许可/不许可的判定,请求受理部110根据基于该特定动作的许可来受理该切换请求210,因此根据用户的许可/不许可的判定,可以进行OS的切换。其结果,用户在利用特定应用程序时可以防止由于OS突然切换而导致的使用性下降。这里,在从用户没有得到许可/不许可的任何判定时,在询问该许可/不许可的程序部分有可能发生某些异常。例如,GUI应用程序有可能意外停机,或者以设备占用为目的而故意不询问用户。因此,根据本实施方式,在输入输出控制装置100中,因为在一定时间内从用户没有得到基于特定动作的许可/不许可的任何判定时,请求受理部110受理切换请求210,g卩,因为在该许可/不许可的应答中设置超时(time-out),所以可以防止上述这样的问题的发生。另外,根据本实施方式,在输入输出控制装置100中,请求规则250将特定的切换请求210作为特权请求,请求受理部110在生成基于该特权请求的控制信息121后到满足特定条件之前,根据该特权请求将对于在特定OS中占用的输入设备或者输出设备的切换请求210设为不受理,因此,将特定的切换请求210看做特权请求,根据该特权请求可以最优先分配输入输出设备。这样的特权请求例如在考虑到对于终端的保密检查或调试检查等强制启动的情况的程序启动时发生。此外,该特权请求比在之后发生的一般切换请求210还优先,在结束处理之前,不会解除输入输出设备的占用。另外,根据本实施方式,输入输出控制装置100的请求受理部110受理来自主系统的切换请求210,因此可以受理由VMM等主系统发行的切换请求210。其结果,由于VMM控制的各OS的下位层的处理,可以生成控制信息121。另外,根据本实施方式,在输入输出控制装置100中,在计算机上的第一OS或者主系统具有检测在该计算机上运行的OS的特定的状态变化的状态变化检测功能时,请求受理部110受理该状态变化检测功能根据占用输入设备或者输出设备的第二OS的状态变化发行的切换请求210,因此在OS或VMM检测到特定OS的状态变化时,可以根据该状态变化来生成控制信息121。作为这样的状态变化,考虑OS的结束及OS的意外停机,状态变化检测机构自身详细记载在专利文献1中。其结果,可以防止在不进行正常动作的OS中占用输入输出设备的情况。另外,根据本实施方式,OS在发行切换请求210之前读请求规则250,只限于该切换请求210被输入输出控制装置100的请求受理部110受理的情况下,发行该切换请求210,因此可以削减与该切换请求210有关的OS间的切换的处理成本、以及输入输出控制装置100运行的OS或VMM等主系统的处理成本。另外,根据本实施方式,主系统在发行切换请求210之前,读请求规则250,只限于该切换请求210被输入输出控制装置100的请求受理部110受理的情况下,发行该切换请求210,因此可以削减与该切换请求210有关的OS间的切换的处理成本、以及输入输出控制装置100运行的OS或VMM等主系统的处理成本。另外,根据本实施方式,在没有占用输入输出设备的OS上运行的程序对OS请求发行切换请求210之前,读请求规则250,只限于该切换请求210被输入输出控制装置100的请求受理部110受理的情况下,发行该切换请求210,因此可以削减与该切换请求210有关的该OS上的程序与该OS之间的上下文切换的处理成本、以及输入输出控制装置100运行的OS或VMM等主系统的处理成本。[第2实施方式](输入输出控制系统)图3是含有第2实施方式的输入输出控制装置100的多个OS环境的系统结构。第2实施方式的输入输出控制系统具有OS340、OS350、在该OS340上运行的程序360、在该OS350上运行的程序370、输入设备310、输出设备320和VMM330。另外,OS340具有输入输出控制装置100、可控制输出设备320的输出设备控制部342和可控制输入设备310的输入设备控制部341。另外,OS350具有虚拟输入设备控制部351、和虚拟输出设备控制部352。这里,OS340例如是如在第1实施方式中叙述的安全OS,OS350是一般os。输入设备控制部341以及输出设备控制部342具有作为对设备进行控制的设备驱动程序的功能,实施用于与输入输出控制装置100联合动作的扩展。另外,虚拟输入设备控制部351以及虚拟输出设备控制部352,对OS350及程序370,如作为设备驱动程序那样地工作。实际上,虚拟输入设备控制部351是输入设备控制部341与OS350的接口,对输入设备310与OS350的数据的交换进行中继。另外,虚拟输出设备控制部352是输出设备控制部342与OS350的接口,对输出设备320与OS350的数据的交换进行中继。艮P,虚拟输入设备控制部351将由输入设备控制部341转交的、来自输入设备310的输入信息向OS350输入。另外,虚拟输出设备控制部352将来自OS350的输出信息转交给输出设备控制部342。实际上,利用由VMM330提供的OS间通信功能来进行跨越了这些OS间的数据的交换。在第2实施方式中,首先对于输入设备控制部341以及输出设备控制部342利用输入目的地信息230以及输出可否信息240来如何动作进行叙述。输入输出控制装置100向输入设备控制部341输出输入目的地信息230,向输出设备控制部342输出输出可否信息240。输入设备控制部341通过从外部向输入设备310输入输入信息来驱动。发生关于输入的硬件插入后、到动作的控制向输入设备控制部341移动之前的过程,依存于VMM330的动作,其例子详细记载在从专利文献1的开始的"InterruptandEventHandling"上。输入设备控制部341根据输入目的地信息230可以特定当前哪个OS正占用输入设备310,因此向该OS输入输入信息。例如,在OS340正占用输入设备310时,输入设备控制部341进行与通常的设备驱动程序同样的动作,在OS350正占用输入设备310时,输入设备控制部341向虚拟输入设备控制部351输入输入信息。输出设备控制部342可以通过输出可否信息240来特定当前哪个OS正占用输出设备320。在OS340正占用输出设备320时,输出设备控制部342进行与通常的设备驱动程序同样的动作。另外,在OS350正占用输出设备320时,输出设备控制部342将其旨意通知给OS350的虚拟输出设备控制部352,从虚拟输出设备控制部352接收OS350的输出信息后向输出设备320输出。另外,输入输出控制装置100可以将输入目的地信息230或者输出可否信息240分别向虚拟输入设备控制部351或者虚拟输出设备控制部352输出。此时,只限于OS350正占用输入设备310的情况下,虚拟输入设备控制部351从输入设备控制部340接收输入信息,只限于OS350正占用输出设备320的情况下,虚拟输出设备控制部352向输出设备控制部342输出输出信息。其结果,可以防止在输入设备控制部341与虚拟输入设备控制部351之间、或者输出设备控制部342与虚拟输出设备控制部352之间,发生无效的OS间通信。接着,在第2实施方式的输入输出控制系统结构中,根据图4对如何发行请求切换输入输出设备的占用OS的切换请求210进行说明。在图4中OS350还具有虚拟输入输出控制装置351A。按照在第1实施方式中所叙述的,切换请求210大分为以外部输入211为主要原因的切换请求、以OS处理212为主要原因的切换请求、以VMM处理213为主要原因的切换请求、和以OS状态变化214为主要原因的切换请求。例如,用户按下计算机预先具有的切换按钮,由此发行以外部输入211为主要原因的切换请求210,进行占用OS的切换。此时,控制该切换按钮的切换按钮控制驱动程序343检测到按下了切换按钮,向输入输出控制装置100通知其旨意就可以。在该切换按钮与输入设备相同时,切换按钮控制驱动程序343,如果被输入的信息与切换请求210有关,则发行该切换请求210,如果不是这样,则作为输入设备控制部341来运行。关于以OS处理212为主要原因的切换请求210,例如考虑在OS中通过利用GUI的程序360或者370来发行的情况。在程序360发行该切换请求210时,由于是同一OS内,所以通过对输入输出控制装置100发行系统呼叫,来发行该切换请求210。例如,在假定了UNIX(注册商标)系OS时,预先将输入输出控制装置100作为设备文件(/dev/ioctrl等),对OS340进行抽象化,程序360发行对于该设备文件的ioctrl系统呼叫。ioctri系统呼叫可以对各设备文件发送独自的请求,所以可以生成如在实施方式1中叙述的切换请求210并发行。程序370因为存在于与输入输出控制装置100不同的OS中,所以不能直接发行系统呼叫。因此,对OS350设置中继切换请求210的虚拟输入输出控制装置351A,虚拟输入输出控制装置351A通过利用OS间通信功能,向输入输出控制装置100通知该切换请求210。关于程序370和虚拟输入输出控制装置351的通信,可以用与程序360和输入输出控制装置100同样的手段来实现。在发行以VMM处理213为主要原因的切换请求210时,由VMM330利用signal等单一的通信手段。或者,可以利用在从专利文献1的开始的"HandlingVirtualizedProcessorExceptions"的章中记载的从VMM向OS发行的虚拟异常。VMM330因为仅存在于一个系统中,所以即使固定地定义这样的signal等也不要紧。输入输出控制装置100只要确认该signal的发行源是VMM330就可以。关于以OS状态变化为主要原因的切换请求210,假设在特定OS或者VMM中有状态变化检测功能的情况。此情况下,用上述的某个手段可以实现切换请求210的通知。(作用以及效果)根据本实施方式,特定OS340具有控制输入设备310以及输出设备320的单元(输入设备控制部341以及输出设备控制部342),由此全部的OS340、350可以共享输入设备310以及输出设备320。另外,根据本实施方式,只要特定的OS340安全运行就可以防止由于其它的OS350的误动作或存在恶意的动作等而导致不正当地占用输入设备310或者输出设备320的情况。另外,根据本实施方式,通过各OS具有的虚拟输入设备控制部351或者虚拟输出设备控制部352,只限于该OS正占用输入设备310或者输出设备320的情况下,发生基于与输入设备控制部341或者输出设备控制部342的通信的OS间的通信,可以抑制无效的OS间通信。另外,根据本实施方式,在没有占用输入输出设备的OS上运行的程序可以请求该OS发行切换请求210。例如,某程序在显示器上输出图像或文字等输出信息时,才对OS请求发行切换请求210。接受该请求后,该OS对输入输出控制装置100发行该切换请求210。其结果,即使是该程序运行时,其它OS可以占用输入输出设备,直到发生输入输出事件。(第3实施方式)在第3实施方式中对于各OS具有输入输出设备控制部的情况进行叙述。第3实施方式的输入输出控制系统,如图5所示,具有OS440、OS450、在该OS440上运行的程序460、在该OS450上运行的程序470、输入设备410、输出设备420和VMM430。OS440具有输入设备控制部441和输出设备控制部442,OS450具有输入设备控制部451和输出设备控制部452。另外,VMM430具有输入输出控制装置100。在第3实施方式中,全部的OS440、450具有分别控制输入输出设备的输入设备控制部441或者输出设备控制部442。通过采取这样的结构,与在第2实施方式中叙述的系统相比,输入输出的性能提高。具体来说,可以预料输入输出的速度提高及资源使用削减。原因是各设备驱动程序不需要在意自己所属的OS以外的其它OS,可以直接控制输入输出设备,可以省去涉及到OS间的切换的处理。在这样的系统结构中,必需解决属于多个OS的输入设备控制部或者输出设备控制部同时参照单一输入输出设备的、所谓硬件冲突状态。因此,输入输出控制装置100在生成了控制信息121时,对全部的输入设备控制部441、451或者输出设备控制部442、452,输出输入目的地信息230或者输出可否信息240。例如,考虑了这样的方法对于全部的OS440、450可读取、VMM430可读写的主存储装置输出输入目的地信息230或者输出可否信息240。各输入设备控制部441、451或者输出设备控制部442、452,通过输入目的地信息230或者输出可否信息240来特定自己所属的OS440、450是否正占用输入设备410或者输出设备420,只限于正占用的情况下,控制该输入设备410或者输出设备420。输入设备控制部441与第2实施方式相同,对应来自输入设备410的硬件插入的发生来驱动。在专利文献1或者非专利文献1中所述的VMM,如本系统结构那样,在1个IRQ(InterruptReQuest)线(line)中对应着在多个OS上操作的输入设备控制部时,顺次驱动这些输入设备控制部,可以判断调用的输入设备控制部是否参照输入设备410。使用此构造,被驱动的输入设备控制部441根据输入目的地信息230,如果OS440正占用输入设备410,则驱动作为对应的设备驱动程序的处理。此外,输入设备控制部451也进行同样的操作。输出设备控制部442根据输出可否信息240,如果OS440正占用输出设备420,则向输出设备420输出OS440的输出信息。此外,输出设备控制部452也进行同样的操作。作为各OS具有输入设备控制部或者输出设备控制部时的其它结构,还考虑了图6所示的结构。图6所示的结构,与上述图5所示的结构几乎相同,但是VMM430新具有输入输出控制部431。输入输出控制部431具有signal或虚拟异常等这样的与各OS的通信手段,根据这些通信功能使各OS的输入设备控制部441、451或者输出设备控制部442、452有效化或者无效化。例如,在OS440或者450是Linux时,Linux在内核动作中可以动态进行设备驱动程序的安装或者卸载。因此例如,通过输入输出控制装置100,在OS440占用输入设备410时,输入输出控制部431向OS440通知使OS440的输入设备控制部441有效化。OS440接收该通知后,将输入设备控制部441装入内核代码中。对其它OS450的输入设备控制部451或者输出设备控制部451、452也进行同样的处理。另外还有,作为其它结构例还考虑图7所示的结构。在图7所示的结构中,VMM430新具有插入通知部432。插入通知部432是扩展了在专利文献1或者非专利文献1等中记载的VMM—般具有的插入处理程序(handler)而成的。一般的插入处理程序在发生了硬件插入时,根据其插入序号来判断与哪个OS对应的设备驱动程序存在,对该OS通知插入。与IRQ序号对应的设备有多个、控制该设备的设备驱动程序分散在多个OS间时,该插入处理程序依次对OS进行插入通知。插入通知部432在发生来自输入设备410的插入请求时,通过利用输入输出控制装置100中的输入目的地信息230来特定通知插入的OS。即,插入通知部432在插入发生时特定占用输入设备410的0S,对该OS通知插入。接着,在第3实施方式的系统结构中,根据图8对如何发行请求切换占用输入输出设备的OS的切换请求210进行说明。在图8中,OS440、450新具有虚拟输入输出控制装置443、453,OS440还具有作为切换按钮用的设备驱动程序的切换按钮控制驱动程序444。程序460、470对虚拟输入输出控制装置443、453分别发行切换请求210的处理,与在第2实施方式中程序370对虚拟输入输出控制装置351发行切换请求210的处理相同。另外,切换按钮控制驱动程序444对虚拟输入输出控制装置443发行切换请求210的处理,与在第2实施方式中切换按钮控制驱动程序343对输入输出控制装置100发行切换请求210的处理相同。进一步,VMM的调试功能433以及输入输出控制装置100存在于由VMM430控制的同一存储器空间内,所以在发行切换请求210时不需要特别的功能。在虚拟输入输出控制装置443、453对输入输出控制装置100发行切换请求210时,VMM430使用作为对OS440提供的接口的"hypercall"。对于"hypercall"以同名在非专利文献1的3.1节中有说明,以"trapcall"这样的名字在专利文献1的中有说明。这些VMM—OS接口在现有技术中采用与系统呼叫同样的使用方法。即,该VMM—OS接口,在依赖于VMM时发行以VM上的OS的权限无法处理的特权命令。本实施方式中的hypercall使用了这些现有技术所具有的接口功能。关于在hypercall中实际通知的信息,如同在第1实施方式中所述的那样。如果输入输出控制装置100针对接收到的hypercall受理该切换请求210,则进行如在第1实施方式中所述的处理,如果因为某种理由成为不受理时则向该OS返回错误。接着,根据图9对VMM430具有与输入输出控制装置100联动动作的QOS控制部434时的动作例进行叙述。QOS控制部434是扩展了例如在从专利文献1的开始的scheduler的章中记载的CPU调度程序而成的,根据各OS处理的优先级来决定针对各OS分配的硬件资源。例如,CPU调度程序为了根据各OS处理的优先级来分配CPU控制而存在。本实施方式的QOS控制部434根据输入输出控制装置100输出的输入目的地信息230以及输出可否信息240来对占用输入设备410或者输出设备420的OS设定高优先级,优先分配CPU等的硬件资源。其结果,例如占用HID,用户实际利用的OS的处理被优先处理,使使用性提高。(作用以及效果)根据本实施方式,各OS440、450分别具有可控制输入输出设备的单元(输入设备控制部441、451以及输出设备控制部442、452),由此仅在判定为可以由输入输出控制装置100输入的情况下,输入设备控制部441、451向该OS440、450输入来自输入设备410的输入信息,仅在判定为可以由输入输出控制装置100输出的情况下,输出设备控制部442、452向输出设备420输出来自该OS440、450的输出信息,可以防止该控制对象输入输出设备的冲突状态。另外,各OS440、450可以直接控制输入输出设备,使输入输出时的速度提高。另外,VMM430具有输入输出控制部431,该输入输出控制部431根据由输入输出控制装置100输出的输入目的地信息230使OS440、450的输入设备控制部441、451有效化或者无效化,根据由输入输出控制装置100输出的输出可否信息240使OS440、450的输出设备控制部442、452有效化或者无效化。其结果,在各OS440、450分别具有可以控制特定的输入设备410的输入设备控制部441、451或者可以控制输出设备420的输出设备控制部442、452时,也通过只有判定为可以由输入输出控制装置100输入输出的OS占用输入设备410或者输出设备420,来可以防止输入设备410或者输出设备420的冲突状态。另外,各OS440、450可以直接控制输入输出设备,使输入输出时的速度提高。进一步,占用输入设备410或者输出设备420只在主系统许可时才可以,所以可以防止由于OS的误动作等而导致的输入设备410或者输出设备420的不正当占用。另外,VMM430具有插入通知部432,该插入通知部,在发生了对于输入设备410的插入时向OS440、450通知该插入,插入通知部432根据输入输出控制装置IOO输出的输入目的地信息,特定该插入的通知目的地。因此,在发生来自输入设备410的插入时,主系统利用输入输出控制装置100可以选择通知该插入的OS。其结果,各OS440、450可以直接控制输入设备410,使输入时的速度提高。另外,因为将来自输入设备410的输入信息可靠地输入到占用该输入设备410的OS,所以可以防止由OS的误动作等引起的输入设备410的不正当利用。另夕卜,VMM430具有QOS控制部434,该QOS控制部,根据输入输出控制装置100输出的输入目的地信息230或者输出可否信息240来进行对于OS的QOS控帝ij。因此,主系统可以通过由输入输出控制装置IOO输出的输入目的地信息230或者输出可否信息240来进行对于各OS的QOS控制。例如,对占用HID的OS的处理分配高的CPU优先级。其结果,对用户实际操作的程序分配了高的CPU优先级,使使用性提高。(第4实施方式)图10是第4实施方式的含有输入输出控制装置100的多个OS环境的系统结构。第4实施方式的输入输出控制系统具有OS540、OS550、在该OS540上运行的GUI服务器560、在该OS550上运行的GUI服务器570、在该GUI服务器560上运行的GUI客户端580、在该GUI服务器570上运行的GUI客户端590、输入设备510、输出设备520和VMM530。另外,OS540具有输入输出控制装置100、可以控制输出设备520的输出设备控制部542和可以控制输入设备510的输入设备控制部541。这里因为第4实施方式的系统结构与在第2实施方式中所述的系统结构相同,所以主要说明两者的不同点。在第4实施方式的系统中,在各OS540、550上存在GUI服务器560、570和GUI客户端580、590。GUI服务器560、570相当于窗口管理器,汇总处理该OS540、550上的全部GUI程序的输入输出。GUI客户端580、590是向GUI服务器560、570委托输入输出的任意的GUI程序。GUI服务器560根据从GUI客户端580接收的输入输出处理请求来处理该输入输出。即,GUI服务器560向GUI客户端580输入来自输入设备510的输入信息,向输出设备520输出来自GUI客户端580的输出信息。进一步,GUI服务器560将GUI服务器570作为GUI客户端来进行与对于GUI客户端580的处理同样的处理。通过VMM530具有的OS间通信功能来实现GUI服务器560与GUI服务器570间的通信。GUI服务器570根据从GUI客户端590接收的输入输出请求,处理该输入输出。即,GUI服务器570对GUI客户端590输入经由GUI服务器560从输入设备510接收到的输入信息,经由GUI服务器560向输出设备520输出来自GUI客户端590的输出信息。GUI服务器560还以输入输出控制装置100中的输入目的地信息230或者输出可否信息240为基础来动作。即,OS540根据这些信息占用输入设备510或者输出设备520时,GUI服务器560处理GUI客户端580的输入输出。另外,在OS550占用输入设备510或者输出设备520时,GUI服务器560向GUI服务器570通知其旨意。通过该通知,只限于判明OS550占用输入设备510或者输出设备520的情况下,GUI服务器570向OS550委托输入输出处理。相反,在OS550不占用该设备时,不向OS550委托GUI客户端590的输入输出。例如,通过systemcall来实现GUI服务器560与输入输出控制装置100之间的通信。(第5实施方式)图11是第5实施方式的含有输入输出控制装置100的多个OS环境的系统结构。第5实施方式的输入输出控制系统是与在第2实施方式中所示的输入输出控制系统几乎相同的结构。艮口,OS650、及在该OS650上运行的程序670通过虚拟输入设备控制软件651接收来自控制对象的输入设备610的输入信息,通过虚拟输出设备控制软件652,向输出设备控制软件642输出输出信息。本实施方式与第2实施方式不同的部分是程序660以及程序670。以下对本实施方式的程序660以及程序670的动作进行说明。此外,以下将程序660作为对象来进行说明,而预先声明通过将程序660与输入设备控制软件641的关系、或者程序660与输出设备控制软件642的关系置换为程序670与虚拟输入设备控制软件651的关系、或者程序670与虚拟输出设备控制软件652的关系也可以适用于程序670。作为一般性通用OS的Linux或Windows(注册商标)等,具有用于接收来自程序的请求、执行仅以OS权限可执行的特权处理的接口。程序对该接口发行系统调用。程序660为了经由输入设备控制软件641或输出设备控制软件642接收输入信息、输出输出信息,需要各自专用的系统调用。例如,在Linux中用于接收输入信息的系统调用相当于read系统调用,用于输出输出信息的系统调用相当于write系统调用。这些系统调用的处理因为需要在发行了系统调用的程序与OS之间的上下文切换,所以产生很大的处理成本。在本实施方式中,程序660通过进行特别的处理来减少系统调用的发行次数,可以削减整个系统的开销。本实施方式中的输入输出控制装置100将控制信息121输出到程序660可参照的区域。例如,输入输出控制装置100向如上所述的在OS间通信时使用的共享存储器输出控制信息121。其结果,程序660可以读控制信息121,根据控制信息121的内容可以决定是否发行系统调用。艮P,根据控制信息121,只限于OS640正占用作为控制对象的输入设备610或者输出设备620的情况下,程序660发行对应的系统调用。其结果,在即使发行了系统调用也因为没有占用权而不能执行对于输入输出设备的输入输出时,可以抑制系统调用的发行,可以削减开销。作为可削减这样的系统调用的发行的设备,例如举出音频设备。通常,向音频设备的输出,根据程序应该实时地发生。也就是说,在通常使用时,难以考虑到在某时刻由于OS没有占用音频设备而不能输出音乐数据时存储该音乐数据、在该OS占用了该音频设备时输出。因此,输出音乐信息的程序660在OS640没有占用音频设备时,无视应该输出的音乐信息,不需要发行无效的系统调用。另一方面,作为不能削减这样的系统调用的发行的设备,举出显示器。向各OS具有的显示器的输出信息,在该OS占用显示器的情况下或者不占用显示器的情况下,都必需向该OS的帧(frame)缓冲存储器进行存储*更新。通过这样,即使在切换了显示器的占用权时,用户也可以从显示器正确掌握在此时刻的OS的状况。为了达到上述目的,该OS必需时常更新自帧缓冲存储器,不拘于控制信息121的内容,必需从程序660中继续接收输出信息。如上所述,为了参照控制信息121来变更动作,实施对程序660的改造就可以。艮P,程序660只要具有以下步骤就可以关于发生输入输出的部分的代码参照控制信息121的步骤;和根据控制信息121的内容决定是否发行系统调用的步骤。可是,对应于系统变更程序660的内容对于程序员来说负担很大,另外失去了不变更程序660而可以运行这样的VMM的优点。此外,程序员判断要不要根据如上所述的设备差异进行改造,是非常困难的。在安装本实施方式后的现实的方法,不是直接改造程序660,而是改造程序660在输入输出时调用的API661。一般来说,程序员没有将系统调用直接编入代码中,而是调用系统准备的API,由此生成程序以使间接地发行系统调用。利用API,与如直接调用系统调用的代码相比,使程序设计变得容易,还有便利性也提高。另外,在每一设备上准备这样的API。因此,仅对调用需要判断要不要发行系统调用的设备用的API实施改造,该API具备以下步骤就可以参照控制信息121的步骤;根据参照结果决定是否进行系统调用的发行的步骤;和根据该决定发行系统调用的步骤。由此,本实施方式的无论如何的变更,程序660的制作者都不需要,却可以抑制系统呼叫的发行次数,因此使整个系统的性能提高。(作用以及效果)根据本实施方式,在OS640上运行的程序660参照控制信息121,判断在此时刻该OS640是否正占用输入设备610或者输出设备620,只限于正占用的情况下,对该OS发行关于输入输出的系统调用,由此可以削减无效系统调用的发行所需要的处理成本。以上,采用上述实施方式对本发明进行了详细地说明,而对于本领域技术人员来说,本发明并不限定于本说明书中说明的实施方式是显然的。本发明可以在不脱离由权利要求范围的记载所规定的本发明的要点以及范围的前提下修正以及变更实施方式来实施。因此,本说明书的记载以举例说明为目的,对本发明不具有任何限制的意思。权利要求1.一种输入输出控制系统,具有至少一个输入设备、至少一个输出设备、控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置、和含有多个操作系统的同时执行功能以及在所述多个操作系统间的通信功能的主系统,其特征在于,所述输入输出控制装置,具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息以及所述输出可否信息,在所述主系统上运行的所述多个操作系统,各自具有输入设备控制部,通过参照由所述输入输出控制装置输出的输入目的地信息,决定是否将来自所述输入设备的输入信息向所述操作系统输入;和输出设备控制部,根据由所述输入输出控制装置输出的输出可否信息,决定是否输出来自所述操作系统的输出信息。2.—种输入输出控制系统,具有至少一个输入设备、至少一个输出设备、控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置、和含有多个操作系统的同时执行功能以及在所述多个操作系统间的通信功能的主系统,其特征在于,所述输入输出控制装置,具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息以及所述输出可否信息,所述多个操作系统,各自具有可控制所述输入设备的输入设备控制部;和可控制所述输出设备的输出设备控制部,所述主系统具有输入输出控制部,该输入输出控制部,根据所述输入输出控制装置输出的输入目的地信息,使所述操作系统的所述输入设备控制部有效化或者无效化,根据所述输入输出控制装置输出的输出可否信息,使所述操作系统的所述输出控制部有效化或者无效化。3.—种输入输出控制系统,具有至少一个输入设备、至少一个输出设备、控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置、和含有多个操作系统的同时执行功能以及在所述多个操作系统间的通信功能的主系统,其特征在于,所述输入输出控制装置,具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;禾口控制信息输出部,输出所述输入目的地信息以及所述输出可否信息,所述主系统具有插入通知部,该插入通知部,在发生了对于所述输入设备的插入时,将所述插入向所述操作系统通知,所述插入通知部根据所述输入输出控制装置输出的输入目的地信息,特定所述插入的通知目的地。4.一种输入输出控制系统,具有至少一个输入设备、至少一个输出设备、控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置、和含有多个操作系统的同时执行功能以及在所述多个操作系统间的通信功能的主系统,其特征在于,所述输入输出控制装置,具有请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作系统的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息以及所述输出可否信息,所述主系统具有QoS控制部,该QoS控制部,根据所述输入输出控制装置输出的输入目的地信息或者输出可否信息,进行对于所述操作系统的QoS控制。全文摘要本发明提供一种考虑到效率性、不依存于上位平台、使用性的输入输出控制系统。在具有多个OS的同时执行功能的主系统上,对在至少2个以上的OS同时运行的计算机上配置的输入设备以及输出设备的输入输出进行控制的输入输出控制装置(100),具有请求受理部(110),对请求切换占用输入设备或者输出设备的OS的切换请求进行受理;控制信息生成部(120),根据切换请求,生成含有输入目的地信息(230)或者输出可否信息(240)的控制信息(121);和控制信息输出部(130),输出输入目的地信息(230)或者输出可否信息(240)。文档编号G06F9/46GK101359313SQ20081021314公开日2009年2月4日申请日期2007年1月17日优先权日2006年1月17日发明者太田贤,藤本拓,铃木敬申请人:株式会社Ntt都科摩
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1