CN101359312B - 输入输出控制*** - Google Patents

输入输出控制*** Download PDF

Info

Publication number
CN101359312B
CN101359312B CN2008102131416A CN200810213141A CN101359312B CN 101359312 B CN101359312 B CN 101359312B CN 2008102131416 A CN2008102131416 A CN 2008102131416A CN 200810213141 A CN200810213141 A CN 200810213141A CN 101359312 B CN101359312 B CN 101359312B
Authority
CN
China
Prior art keywords
input
output
information
request
handoff request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008102131416A
Other languages
English (en)
Other versions
CN101359312A (zh
Inventor
藤本拓
铃木敬
太田贤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2006341835A external-priority patent/JP2007220086A/ja
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of CN101359312A publication Critical patent/CN101359312A/zh
Application granted granted Critical
Publication of CN101359312B publication Critical patent/CN101359312B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

本发明提供一种考虑到效率性、不依存于上位平台、使用性的输入输出控制***。在具有多个OS的同时执行功能的主***上,对在至少2个以上的OS同时运行的计算机上配置的输入设备以及输出设备的输入输出进行控制的输入输出控制装置(100),具有:请求受理部(110),对请求切换占用输入设备或者输出设备的OS的切换请求进行受理;控制信息生成部(120),根据切换请求,生成含有输入目的地信息(230)或者输出可否信息(240)的控制信息(121);和控制信息输出部(130),输出输入目的地信息(230)或者输出可否信息(240)。

Description

输入输出控制***
本申请是2007年1月17日提出的、申请号为200710001947.4、名称为“输入输出控制装置、输入输出控制***以及输入输出控制方法”的发明申请的分案申请。
技术领域
本发明涉及控制基于多个操作***(以下,称为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个计算机上同时运行的例子;在1个服务器上运行多个OS,在各OS中将该OS用地特化的服务向客户端提供的例子。
在这样的环境下,必须在多个OS中共享以输入输出设备为首的、有限的硬件资源。
VMM的作用之一是静态或者动态地将硬件资源分配到各OS。例如,VMM对各OS动态地转交CPU的控制权,静态地逻辑分割主存储后分配到各OS,由此实现多个OS的同时执行。
另外,在VMM中还有实现在同时执行的多个OS间的数据通信的VMM。代表性的实现方法是提供多个OS可以参照的共享存储器的方法。
VMM进行共享存储器的管理、或者对OS通知向共享存储器的写入或读入这样的处理。
不仅在单一的数据通信时,在多个OS间共享硬件资源时也利用这样的OS间通信功能。
例如,考虑在只具有一个网络接口的计算机中,多个OS进行与外部的通信的情况。
此时,难以考虑各OS独自具有网络接口的设备驱动程序的结构。原因是无法事先判断对于在数据接收时发生的硬件***应该调用哪个OS的驱动程序。
因此,需要某OS成为唯一的设备驱动程序的保存者,进行数据收发以及向各OS的数据分配。
在共享这样的硬件资源时,必须具有上述的OS间通信功能。
[专利文献1]:US2004/0205755
[非专利文献1]:“Xen and the Art of virtulization”In Proc.of Symposiumon operating systems Principles(SOSP)2003(http:/www.cl.cam.ac.uk/ReSearch/SRG/netos/papers/2003-xensosp.pdf)
[非专利文献2]:“A 600MIPS 120mW 70μA Lcakage Triple-CPU MobileApplication Processor Chip”In Proc.of IEEE International Solid-State CircuitsConference(IS SCC)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(Graphical User Interface)服务器处理对其它全部客户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服务器间进行通信时需要在应用程序级别(1evel)下的数据的转换。
第3个问题是由于在GUI服务器上委托全部的输入输出处理所以在保密方面存在危险性。
因为GUI服务器是“非特权过程(用户权限)”,所以与作为“特权过程(内核权限)”的OS比较,抗窜改(Tamper)性弱。
GUI服务器在被窜改时不能适当地处理OS的输入输出,可能向错误的输入目的地转交输入结果,或者显示不应该显示的OS的输出结果。
此外,在占用HID的OS的切换中,为了提高使用性而考虑了几个切换模式,关于各切换模式必须考虑切换方法的提供、及不正当的切换以及HID占用的防止等。
作为切换模式例如考虑了以下这样的例子。
·在特定OS上启动了特定程序的情况
·按下了在键盘等上准备的切换按钮的情况
·在正占用HID的OS上发生了异常的情况
·出于调试等目的,从外部强制性启动了特定程序的情况
另外,作为在OS的切换时所必须考虑的情况,考虑了以下这样的例子。
·通过特定OS及特定某程序来防止不正当的HID占用
·防止损失使用性的反复切换
·防止在利用优先级高的程序时的切换
因此,本发明是鉴于以上的问题而形成的,以提供考虑到效率性、不依存于上位平台、使用性的输入输出控制装置、输入输出控制***以及输入输出控制方法作为目的。
本发明的第1特征是一种输入输出控制装置,在具有多个操作***的同时执行功能的主***上,对在至少2个以上的操作***同时运行的计算机上配置的输入设备以及输出设备的输入输出进行控制,其要旨为,具有:请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作***的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息或者所述输出可否信息,所述输入目的地信息至少含有用于特定来自所述输入设备的输入信息的输入目的地操作***的信息,所述输出可否信息至少含有针对操作***的、用于特定可否向所述输出设备输出的信息。
在本发明的第1特征中,所述请求受理部,也可以受理来自第1控制软件的切换请求,该第1控制软件控制由所述计算机预先具备的第1输入设备。
在本发明的第1特征中,所述请求受理部,也可以受理来自操作***的切换请求。
在本发明的第1特征中,在给予了规定对于所述切换请求的处理的请求规则时,所述请求受理部,可以根据所述请求规则来受理或者不受理所述切换请求。
在本发明的第1特征中,所述请求规则在所述切换请求的受理中请求秘密信息的输入,所述请求受理部可以仅在所述秘密信息正确时受理所述切换请求。
在本发明的第1特征中,所述请求规则定义不正当的切换请求,所述请求受理部可以在所述切换请求不正当的情况下,不受理该切换请求。
在本发明的第1特征中,所述请求规则在所述切换请求的受理中需要通过来自用户的特定动作来判定用户的许可/不许可,所述请求受理部可以根据基于所述特定动作的许可,来受理所述切换请求。
在本发明的第1特征中,在规定时间内没有从用户得到基于所述特定动作的许可/不许可的任何判定时,所述请求受理部可以受理所述切换请求。在本发明的第1特征中,所述请求规则将特定的切换请求作为特权请求,所述请求受理部,也可以在生成基于所述特权请求的控制信息后,直至满足特定条件,不受理对通过所述特权请求被特定的操作***占用的输入设备或者输出设备的切换请求。
在本发明的第1特征中,请求受理部可以受理来自所述主***的切换请求。
在本发明的第1特征中,所述操作***也可以通过所述请求规则,只限于许可所述切换请求的情况下,发行所述切换请求。
在本发明的第1特征中,所述主***也可以通过所述请求规则,只限于许可所述切换请求的情况下,发行所述切换请求。
在本发明的第1特征中,在所述计算机上的第1操作***或者所述主***具有检测在所述计算机上运行的操作***的特定的状态变化的状态变化检测功能时,所述请求受理部也可以受理所述状态变化检测功能根据占用输入设备或者输出设备的第2操作***的所述状态变化而发行的切换请求。
本发明第2特征是一种输入输出控制***,具有:至少一个输入设备;至少一个输出设备;控制所述输入设备以及所述输出设备的输入输出的输入输出控制装置;和含有多个操作***的同时执行功能以及在所述多个操作***间的通信功能的主***,其要旨为,所述输入输出控制装置具有:请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作***的切换请求进行受理;控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和控制信息输出部,输出所述输入目的地信息或者所述输出可否信息,在所述主***上运行的所述多个操作***中的特定的1个操作***,具有:输入设备控制部,根据所述输出的输入目的地信息来特定来自所述输入设备的输入信息的输入目的地操作***,向该输入目的地操作***输入所述输入信息;和输出设备控制部,根据所述输出的输出可否信息来特定可向所述输出设备输出的操作***,将从该操作***接收的输出信息向所述输出设备输出,所述输入目的地信息至少含有用于特定来自所述输入设备的输入信息的输入目的地操作***的信息,所述输出可否信息至少含有针对操作***的、用于特定可否向所述输出设备输出的信息。
在本发明的第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是现有输入输出控制***的结构方框图(其1)。
图13是现有输入输出控制***的结构方框图(其2)。
符号说明
100输入输出控制装置
110请求受理部
120控制信息生成部
121控制信息
130控制信息输出部
210切换请求
211外部输入
212OS处理
213VMM处理
214OS状态变化
220输入输出设备表
230输入目的地信息
240输出可否信息
250请求规则
310、410、510输入设备
320、420、520输出设备
330、430、530VMM
331、433调试功能
340、350、440、450、540、550OS
341、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是第1实施方式的输入输出控制装置100的***结构。输入输出控制装置100例如在多个OS运行在VMM上、该多个OS中的特定OS在任意时刻占用特定设备并进行利用这样的情况下,进行占用该特定设备的OS的判定及切换等处理。
作为这样的特定设备,例如举出在键盘等输入设备或者显示器等输出设备中具有代表性的HID。
例如,用户利用在其它OS中运行的程序时,在按下了在计算机上预先准备的切换按钮的情况下,输入输出控制装置100检测其旨意,生成控制信息,该控制信息用于使运行该程序的OS占用输入输出设备。
具体来说,输入输出控制装置100输出特定来自输入设备的输入信息的输入目的地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的[0138]开始的“Interrupt andEvent Handling”的章节等中记载的现有VMM的动作,开始基于控制该切换按钮的设备驱动程序的控制,所以通过该设备驱动程序发行该切换请求210。
另外,例如在此时刻没有占用输入输出设备的OS、或在该OS上运行的程序请求占用输入输出设备时,该OS发行以“OS处理212”为主要原因的切换请求210。
VMM通过检测OS间的事件等OS的下位层的处理,根据需要切换占用输入输出设备的OS,所以发行以“VMM处理213”为主要原因的切换请求210。
例如,在执行从专利文献1的从[0159]开始的“Debugging”的章节中记载的VMM的OS调试功能时,VMM发行该切换请求210。
在占用输入输出设备的OS中,在发生了特定的状态变化时,发生以“OS状态变化214”为主要原因的切换请求210。
尤其,在该OS、或其它OS或VMM等具有状态变化检测功能时,该状态变化检测功能发行该切换请求210。
作为这样的状态变化的一例,考虑了OS的再启动或OS的意外停机。
另外,在从专利文献1的[0122]开始的“Hot Reboot of Secondary OperatingSystem”的章中记载着状态变化检测功能的一例。
具体来说,关于怎样向请求受理部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上运行的程序中可能存在不合适或恶意。
[表1]
Figure G2008102131416D00141
请求受理部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-operating System Communication S-Virtual buS”中记载的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。
由此,可以回避如下的死锁(dead lock)状态:特定程序在正占用键盘的状态下请求占用显示器,同时,其它程序在正占用显示器的状态下请求占用键盘。
另外,请求规则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]
  控制信息的种类   输入输出设备   占用OS   屏蔽状态
  输入目的地信息   键盘   安全OS   屏蔽
  输入目的地信息   鼠标   安全OS   屏蔽
  输出可否信息   显示器   安全OS   屏蔽
输出可否信息 场声器 一般OS
控制信息输出部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设为“特权请求”时,在步骤S101中,输入输出控制装置100在生成基于该特权请求的控制信息后到满足特定条件之前,根据该特权请求将对于在特定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,即,因为在该许可/不许可的应答中设置超时(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的数据的交换进行中继。
即,虚拟输入设备控制部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的[0138]开始的“Interrupt and Event Handling”上。
输入设备控制部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***呼叫。
ioctrl***呼叫可以对各设备文件发送独自的请求,所以可以生成如在实施方式1中叙述的切换请求210并发行。
程序370因为存在于与输入输出控制装置100不同的OS中,所以不能直接发行***呼叫。
因此,对OS350设置中继切换请求210的虚拟输入输出控制装置351A,虚拟输入输出控制装置351A通过利用OS间通信功能,向输入输出控制装置100通知该切换请求210。
关于程序370和虚拟输入输出控制装置351的通信,可以用与程序360和输入输出控制装置100同样的手段来实现。
在发行以VMM处理213为主要原因的切换请求210时,由VMM330利用signal等单一的通信手段。
或者,可以利用在从专利文献1的[0095]开始的“Handling VirtualizedProcessor Exceptions”的章中记载的从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(Interrupt ReQuest)线(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的OS,对该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提供的接口的“hyper call”。
对于“hyper call”以同名在非专利文献1的3.1节中有说明,以“trap call”这样的名字在专利文献1的[0062]中有说明。
这些VMM-OS接口在现有技术中采用与***呼叫同样的使用方法。即,该VMM-OS接口,在依赖于VMM时发行以VM上的OS的权限无法处理的特权命令。
本实施方式中的hyper call使用了这些现有技术所具有的接口功能。
关于在hyper call中实际通知的信息,如同在第1实施方式中所述的那样。
如果输入输出控制装置100针对接收到的hyper call受理该切换请求210,则进行如在第1实施方式中所述的处理,如果因为某种理由成为不受理时则向该OS返回错误。
接着,根据图9对VMM430具有与输入输出控制装置100联动动作的QOS控制部434时的动作例进行叙述。
QOS控制部434是扩展了例如在从专利文献1的[0093]开始的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或者输出设备429,来可以防止输入设备410或者输出设备420的冲突状态。
另外,各OS440、450可以直接控制输入输出设备,使输入输出时的速度提高。
进一步,占用输入设备410或者输出设备420只在主***许可时才可以,所以可以防止由于OS的误动作等而导致的输入设备410或者输出设备420的不正当占用。
另外,VMM430具有***通知部432,该***通知部,在发生了对于输入设备410的***时向OS440、450通知该***,***通知部432根据输入输出控制装置100输出的输入目的地信息,特定该***的通知目的地。
因此,在发生来自输入设备410的***时,主***利用输入输出控制装置100可以选择通知该***的OS。
其结果,各OS440、450可以直接控制输入设备410,使输入时的速度提高。
另外,因为将来自输入设备410的输入信息可靠地输入到占用该输入设备410的OS,所以可以防止由OS的误动作等引起的输入设备410的不正当利用。
另外,VMM430具有QOS控制部434,该QOS控制部,根据输入输出控制装置100输出的输入目的地信息230或者输出可否信息240来进行对于OS的QOS控制。
因此,主***可以通过由输入输出控制装置100输出的输入目的地信息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的输入输出。
例如,通过system call来实现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的内容可以决定是否发行***调用。
即,根据控制信息121,只限于OS640正占用作为控制对象的输入设备610或者输出设备620的情况下,程序660发行对应的***调用。
其结果,在即使发行了***调用也因为没有占用权而不能执行对于输入输出设备的输入输出时,可以抑制***调用的发行,可以削减开销。
作为可削减这样的***调用的发行的设备,例如举出音频设备。
通常,向音频设备的输出,根据程序应该实时地发生。
也就是说,在通常使用时,难以考虑到在某时刻由于OS没有占用音频设备而不能输出音乐数据时存储该音乐数据、在该OS占用了该音频设备时输出。
因此,输出音乐信息的程序660在OS640没有占用音频设备时,无视应该输出的音乐信息,不需要发行无效的***调用。
另一方面,作为不能削减这样的***调用的发行的设备,举出显示器。
向各OS具有的显示器的输出信息,在该OS占用显示器的情况下或者不占用显示器的情况下,都必需向该OS的帧(frame)缓冲存储器进行存储·更新。
通过这样,即使在切换了显示器的占用权时,用户也可以从显示器正确掌握在此时刻的OS的状况。
为了达到上述目的,该OS必需时常更新自帧缓冲存储器,不拘于控制信息121的内容,必需从程序660中继续接收输出信息。
如上所述,为了参照控制信息121来变更动作,实施对程序660的改造就可以。
即,程序660只要具有以下步骤就可以:关于发生输入输出的部分的代码参照控制信息121的步骤;和根据控制信息121的内容决定是否发行***调用的步骤。
可是,对应于***变更程序660的内容对于程序员来说负担很大,另外失去了不变更程序660而可以运行这样的VMM的优点。
此外,程序员判断要不要根据如上所述的设备差异进行改造,是非常困难的。
在安装本实施方式后的现实的方法,不是直接改造程序660,而是改造程序660在输入输出时调用的API661。
一般来说,程序员没有将***调用直接编入代码中,而是调用***准备的API,由此生成程序以使间接地发行***调用。
利用API,与如直接调用***调用的代码相比,使程序设计变得容易,还有便利性也提高。
另外,在每一设备上准备这样的API。因此,仅对调用需要判断要不要发行***调用的设备用的API实施改造,该API具备以下步骤就可以:参照控制信息121的步骤;根据参照结果决定是否进行***调用的发行的步骤;和根据该决定发行***调用的步骤。
由此,本实施方式的无论如何的变更,程序660的制作者都不需要,却可以抑制***呼叫的发行次数,因此使整个***的性能提高。
(作用以及效果)
根据本实施方式,在OS640上运行的程序660参照控制信息121,判断在此时刻该OS640是否正占用输入设备610或者输出设备620,只限于正占用的情况下,对该OS发行关于输入输出的***调用,由此可以削减无效***调用的发行所需要的处理成本。
以上,采用上述实施方式对本发明进行了详细地说明,而对于本领域技术人员来说,本发明并不限定于本说明书中说明的实施方式是显然的。本发明可以在不脱离由权利要求范围的记载所规定的本发明的要点以及范围的前提下修正以及变更实施方式来实施。因此,本说明书的记载以举例说明为目的,对本发明不具有任何限制的意思。

Claims (1)

1.一种输入输出控制***,具有至少一个输入设备、至少一个输出设备、控制所述输入设备和所述输出设备的输入输出的输入输出控制装置、以及含有多个操作***的同时执行功能的主***,其特征在于,
所述输入输出控制装置,具有:请求受理部,对请求切换占用所述输入设备或者所述输出设备的操作***的切换请求进行受理;
控制信息生成部,根据所述切换请求,生成含有输入目的地信息或者输出可否信息的控制信息;和
控制信息输出部,输出所述输入目的地信息或者所述输出可否信息,
在所述操作***上运行的程序,
根据所述输入目的地信息,只限于在运行所述程序的操作***是来自所述输入设备的输入目的地操作***的情况下,发行对所述操作***请求输入的***调用,
根据所述输出可否信息,只限于运行所述程序的操作***可以对所述输出设备输出的情况下,发行对所述操作***请求输出的***调用,
所述输入目的地信息至少含有用于确定来自所述输入设备的输入信息的输入目的地操作***的信息,
所述输出可否信息至少含有针对操作***的、用于确定可否向所述输出设备输出的信息。
CN2008102131416A 2006-01-17 2007-01-17 输入输出控制*** Expired - Fee Related CN101359312B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2006-009190 2006-01-17
JP2006009190 2006-01-17
JP2006009190 2006-01-17
JP2006341835A JP2007220086A (ja) 2006-01-17 2006-12-19 入出力制御装置、入出力制御システム及び入出力制御方法
JP2006341835 2006-12-19
JP2006-341835 2006-12-19

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100019474A Division CN100458701C (zh) 2006-01-17 2007-01-17 输入输出控制装置、输入输出控制***以及输入输出控制方法

Publications (2)

Publication Number Publication Date
CN101359312A CN101359312A (zh) 2009-02-04
CN101359312B true CN101359312B (zh) 2010-06-09

Family

ID=38703862

Family Applications (4)

Application Number Title Priority Date Filing Date
CN2008102131416A Expired - Fee Related CN101359312B (zh) 2006-01-17 2007-01-17 输入输出控制***
CN2008102131435A Expired - Fee Related CN101369258B (zh) 2006-01-17 2007-01-17 输入输出控制***
CN2008102131420A Expired - Fee Related CN101359313B (zh) 2006-01-17 2007-01-17 输入输出控制***
CNB2007100019474A Expired - Fee Related CN100458701C (zh) 2006-01-17 2007-01-17 输入输出控制装置、输入输出控制***以及输入输出控制方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN2008102131435A Expired - Fee Related CN101369258B (zh) 2006-01-17 2007-01-17 输入输出控制***
CN2008102131420A Expired - Fee Related CN101359313B (zh) 2006-01-17 2007-01-17 输入输出控制***
CNB2007100019474A Expired - Fee Related CN100458701C (zh) 2006-01-17 2007-01-17 输入输出控制装置、输入输出控制***以及输入输出控制方法

Country Status (1)

Country Link
CN (4) CN101359312B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101624868B1 (ko) * 2008-08-06 2016-06-07 삼성전자주식회사 가상화 장치의 제어방법 및 가상화 장치
CN105095121B (zh) * 2011-06-30 2017-12-26 北京奇虎科技有限公司 虚拟输入设备在驱动层的实现方法及其***
CN102796988B (zh) * 2012-08-24 2014-09-03 广州金升阳科技有限公司 一种溅射法制备高度取向的CuInS2外延薄膜的方法
CN104765291B (zh) * 2015-02-10 2019-06-04 海尔优家智能科技(北京)有限公司 一种控制智能设备的方法、装置及网关
US10642706B2 (en) 2016-07-20 2020-05-05 International Business Machines Corporation Detection and recovery of lost host enabled facilities

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1264078A (zh) * 1999-02-19 2000-08-23 株式会社日立制作所 执行多个操作***的计算机
CN1392490A (zh) * 2001-06-20 2003-01-22 华硕电脑股份有限公司 可切换操作***的电脑***
KR20050111512A (ko) * 2004-05-21 2005-11-25 삼성전자주식회사 운영 시스템 전환을 수행하는 컴퓨터 시스템 및 전환 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792761B2 (ja) * 1985-07-31 1995-10-09 株式会社日立製作所 仮想計算機システムの入出力制御方法
CN1064360A (zh) * 1992-01-17 1992-09-09 中国人民解放军江西省军区 计算机外部设备智能控制***
JP3659062B2 (ja) * 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
US20040078682A1 (en) * 2002-09-19 2004-04-22 Jaw-Shiang Huang Operating system based method and computer program for monitoring and notifying computer hardware status
CN1658185A (zh) * 2004-02-18 2005-08-24 国际商业机器公司 相互独立地共存多个操作***的计算机***与其切换方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1264078A (zh) * 1999-02-19 2000-08-23 株式会社日立制作所 执行多个操作***的计算机
CN1392490A (zh) * 2001-06-20 2003-01-22 华硕电脑股份有限公司 可切换操作***的电脑***
KR20050111512A (ko) * 2004-05-21 2005-11-25 삼성전자주식회사 운영 시스템 전환을 수행하는 컴퓨터 시스템 및 전환 방법

Also Published As

Publication number Publication date
CN101359312A (zh) 2009-02-04
CN100458701C (zh) 2009-02-04
CN101359313B (zh) 2010-04-14
CN101359313A (zh) 2009-02-04
CN101369258B (zh) 2010-12-01
CN101369258A (zh) 2009-02-18
CN101004693A (zh) 2007-07-25

Similar Documents

Publication Publication Date Title
US9092356B2 (en) Executing a kernel device driver as a user space process
US5689708A (en) Client/server computer systems having control of client-based application programs, and application-program control means therefor
Fraim SCOMP: A solution to the multilevel security problem
US9619279B2 (en) Operating systems sharing supervisor address space with same virtual to physical mapping for supervisor address space using same translation formula with different translation tree
CN101449240B (zh) 在运行中的操作***下启动***管理程序
EP0230353A2 (en) Coprocessor management in a virtual memory virtual machine data processing system
US20070022421A1 (en) Operating systems
CN101273364B (zh) 用于计算平台数据保护的方法
CN102207886A (zh) 虚拟机快速仿真辅助
JP2007220086A (ja) 入出力制御装置、入出力制御システム及び入出力制御方法
JPH0689253A (ja) 汎用のオペレーティング・システム・インターフェースを有するデバイス・ドライバを含むデータ処理システム
KR19990036565A (ko) 컴퓨터 기억장치용 수정가능한 파티션부트레코드
US20210389966A1 (en) Micro kernel based extensible hypervisor and embedded system
CN101359312B (zh) 输入输出控制***
WO2008054619A2 (en) System and method for sharing atrusted platform module
EP3701373B1 (en) Virtualization operations for directly assigned devices
CN114691300A (zh) 一种虚拟机实例的热迁移方法
CN106789337B (zh) 一种kvm的网络性能优化方法
JP2011070526A (ja) 制御仮想計算機プログラム、ハイパーバイザプログラム、制御仮想計算機制御方法及び仮想計算機制御方法
CN113556264A (zh) 实时云平台管理监控***
CN117234729A (zh) 动态内存保护方法、装置、计算机设备及存储介质
EP1616257B1 (en) Operating systems
CN116225614A (zh) 一种安全密码模块分片虚拟化方法及***
Ugah et al. Relationship between Operating System, Computer Hardware, Application Software and Other Software
Choudhury Operating Systems: Principles and Design

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100609

Termination date: 20130117