《计算机、访问管理方法以及访问管理程序.pdf》由会员分享,可在线阅读,更多相关《计算机、访问管理方法以及访问管理程序.pdf(36页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104137088A43申请公布日20141105CN104137088A21申请号201280070396622申请日20120223G06F13/10200601G06F9/4620060171申请人三菱电机株式会社地址日本东京72发明人冈部亮74专利代理机构中国国际贸易促进委员会专利商标事务所11038代理人张丽54发明名称计算机、访问管理方法以及访问管理程序57摘要在发生了从OS231A向I/O设备110A的访问的情况下,I/O分配部223参照I/O分配表格229,判定I/O设备110A是否被分配给其他OS231B。在I/O设备110A被分配给其他OS231B的情况下。
2、,控制部228向OS231A通知报错。在I/O设备110A未被分配给任何一个OS231A、231B的情况下,I/O分配部223为了将I/O设备110A分配给OS231A,更新I/O分配表格229,I/O仿真部222对向I/O设备110A的访问进行仿真。85PCT国际申请进入国家阶段日2014082286PCT国际申请的申请数据PCT/JP2012/0544272012022387PCT国际申请的公布数据WO2013/125012JA2013082951INTCL权利要求书2页说明书15页附图18页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书15页附图18页10申请公布号。
3、CN104137088ACN104137088A1/2页21一种计算机,是向设备访问的多个OS即操作系统动作的计算机,其特征在于,具备设备分配存储部,存储用于将设备和被分配了设备的OS对应起来的设备分配表格;以及访问管理部,在发生了向所述设备的访问的情况下,根据所述设备分配表格判定分配了所述设备的OS,在所述设备未被分配给任何一个OS的情况下,为了将所述设备和访问源的OS对应起来,更新所述设备分配表格来许可向所述设备的访问,在所述设备被分配给所述访问源的OS以外的OS的情况下,拒绝向所述设备的访问。2根据权利要求1所述的计算机,其特征在于,所述设备分配表格是将所述设备的物理地址空间和被分配了所。
4、述设备的OS对应起来表示的数据,所述访问管理部在所述设备未被分配给任何一个OS的情况下,进而,将所述设备分配表格表示的所述设备的物理地址空间映射到所述访问源的OS的虚拟地址空间。3根据权利要求2所述的计算机,其特征在于,所述访问管理部在发生了向所述设备的PCI即外围组件互连总线配置寄存器的访问的情况下,根据所述设备分配表格判定被分配了所述设备的OS,在所述设备被分配给访问源的OS的情况下,许可所述访问,在所述设备未被分配给所述访问源的OS的情况下,拒绝所述访问。4根据权利要求3所述的计算机,其特征在于,所述访问管理部在向所述PCI配置寄存器的访问是基地址的变更,且所述设备被分配给所述访问源的O。
5、S的情况下,根据变更后的基地址,更新所述设备分配表格内的所述设备的物理地址空间的信息,将更新后的所述信息表示的所述设备的物理地址空间映射到所述访问源的OS的虚拟地址空间。5根据权利要求4所述的计算机,其特征在于,所述访问管理部在发生了向规定的种类的设备的PCI配置寄存器写入的访问的情况下,拒绝所述写入的访问,在发生了向所述规定的种类的设备的PCI配置寄存器读取的访问的情况下,许可所述读取的访问。6根据权利要求5所述的计算机,其特征在于,所述访问管理部在发生了从所述多个OS以外的规定的管理OS向所述规定的种类的设备的PCI配置寄存器写入的访问的情况下,许可所述写入的访问。7根据权利要求1至6中的。
6、任意一项所述的计算机,其特征在于,所述访问管理部在动作结束的情况下将所述设备分配表格保存为保存分配表格,在动作开始的情况下使用所述保存分配表格来生成新的设备分配表格。8一种访问管理方法,是由向设备访问的多个OS即操作系统动作的计算机执行的访问管理方法,其特征在于,所述计算机具备存储用于将设备和被分配了设备的OS对应起来的设备分配表格的设备分配存储部、和访问管理部,所述访问管理部在发生了向所述设备的访问的情况下,根据所述设备分配表格判定被分配了所述设备的OS,在所述设备未被分配给任何一个OS的情况下,为了将所述设备和访问源的OS对应起来,更新所述设备分配表格来许可向所述设备的访问,在所述设备被分。
7、配权利要求书CN104137088A2/2页3给所述访问源的OS以外的OS的情况下,拒绝向所述设备的访问。9一种访问管理程序,其特征在于,用于使电脑执行权利要求8所述的访问管理方法。权利要求书CN104137088A1/15页4计算机、访问管理方法以及访问管理程序技术领域0001本发明涉及例如管理从多个OSOPERATINGSYSTEM操作系统向设备的访问的计算机、访问管理方法以及访问管理程序。背景技术0002虚拟计算机系统是使多个OS动作的系统。例如,存在XEN注册商标、KVMKERNELBASEDVIRTUALMACHINE基于内核的虚拟机注册商标等虚拟计算机系统。0003以往的虚拟计算机。
8、系统在事先针对多个OS分别设定使其占有的I/O设备之后起动多个OS。然后,虚拟计算机监视器VMMVIRTUALMACHINEMONITOR许可从各OS向该OS占有的I/O设备的存储器、寄存器的访问,拒绝从各OS向其他OS占有的I/O设备的存储器、寄存器的访问。在I/O设备是PCI设备包括PCIEXPRESS设备。以下相同的情况下,虚拟计算机监视器许可或者拒绝向PCI配置寄存器的访问。这样,进行了针对各OS的I/O设备的排他性的分配。0004例如,在XEN中对设定文件指定使OS占有的I/O设备。另外,在KVM中,用OS的起动选项指定使其占有的I/O设备。0005XEN、KVM等以往的虚拟计算机系。
9、统需要针对每个OS事先设定使其占有的I/O设备。因此,在多个OS动作而各OS占有多个I/O设备的情况下,事先设定变得繁杂。0006在专利文献1中,公开了如以下那样,在执行中切换占有I/O设备的OS的虚拟计算机系统。0007在专利文献1的虚拟计算机系统中,VMM将基于OS的I/O设备占有要求、基于VMM的事件探测作为主要原因,向OS输出I/O设备的占有许可。然后,OS仅在输出了I/O设备的占有许可的情况下,进行针对I/O设备的输入输出。因此,不需要用于使某一个OS占有I/O设备的事先设定。0008但是,由于不保护I/O设备的存储器、寄存器,所以能够从非占有I/O设备中的OS向该I/O设备的存储器。
10、、寄存器访问。因此,存在其他OS破坏某个OS占有中的I/O设备的存储器、寄存器的内容的可能性。0009专利文献1日本特开2007220086号公报发明内容0010本发明的目的在于例如能够正确地管理从多个OS向设备的访问。0011在本发明的计算机中,向设备访问的多个OSOPERATINGSYSTEM进行动作。0012所述计算机具备0013设备分配存储部,存储用于将设备和分配了设备的OS对应起来的设备分配表格;以及0014访问管理部,在发生了向所述设备的访问的情况下,根据所述设备分配表格判定说明书CN104137088A2/15页5分配了所述设备的OS,在所述设备未被分配给任何一个OS的情况下,为。
11、了将所述设备和访问源的OS对应起来,更新所述设备分配表格来许可向所述设备的访问,在所述设备被分配给所述访问源的OS以外的OS的情况下,拒绝向所述设备的访问。0015根据本发明,例如,能够正确地管理从多个OS向设备的访问。附图说明0016图1是实施方式1中的虚拟计算机系统100的结构图。0017图2是示出实施方式1中的虚拟计算机系统100的动作的流程图。0018图3是示出实施方式1中的虚拟计算机系统100的存储器映射的图。0019图4是示出实施方式1中的I/O分配表格229的初始状态的图。0020图5是示出实施方式1中的I/O分配表格229的初始化处理的流程图。0021图6是示出实施方式1中的初。
12、始化处理后的I/O分配表格229的图。0022图7是示出实施方式1中的I/O设备110的分配处理的流程图。0023图8是示出实施方式1中的分配了I/O设备110A、110B之后的I/O分配表格229的图。0024图9是示出实施方式1中的分配了I/O设备110A、110B之后的虚拟存储器映射320A、320B的图。0025图10是示出实施方式1中的向PCI配置寄存器的访问处理的流程图。0026图11是示出实施方式1中的BAR变更判定处理S500的流程图。0027图12是示出实施方式2中的I/O分配表格229的图。0028图13是示出实施方式2中的虚拟计算机系统100的存储器映射的图。0029图1。
13、4是示出实施方式2中的I/O分配表格229的初始化处理的流程图。0030图15是示出实施方式2中的I/O设备110的分配处理的流程图。0031图16是示出实施方式2中的向PCI配置寄存器的访问处理的流程图。0032图17是实施方式3中的虚拟计算机系统100的结构图。0033图18是示出实施方式3中的I/O分配表格229的初始化处理的流程图。0034符号说明0035100虚拟计算机系统;110I/O设备;200物理计算机;210硬件;211处理器;212主存储器;213辅助存储装置;214中断控制器;220VMM部;221PCI仿真部;222I/O仿真部;223I/O分配部;224存储器管理部;。
14、225表格保存部;228控制部;229I/O分配表格;230VM部;231OS;232设备驱动器;233PCI驱动器;310物理存储器映射;311VM用存储器空间;312I/O用存储器空间;313I/O用寄存器空间;320虚拟存储器映射。具体实施方式0036实施方式10037说明对虚拟计算机的OSOPERATINGSYSTEM分配设备而使虚拟计算机的OS占有设备的虚拟计算机系统。虚拟计算机系统是多个OS进行动作的系统的一个例子。0038图1是实施方式1中的虚拟计算机系统100的结构图。说明书CN104137088A3/15页60039根据图1,说明实施方式1中的虚拟计算机系统100的硬件结构以。
15、及功能结构。0040虚拟计算机系统100具备物理计算机200、和与物理计算机200连接的多个I/O设备110A110C输入INPUT/输出OUTPUT设备。I/O设备110的数量也可以是2个或者4个以上。0041在实施方式中,设为I/O设备110A110C是将PCIPERIPHERALCOMPONENTSINTERCONNECTBUS外围组件互连总线用作接口的PCI设备而进行说明。其中,与物理计算机200连接的I/O设备也可以是PCI设备以外的设备。0042PCI设备存储包括BAR基地址寄存器的PCI配置寄存器。PCI配置寄存器的BAR表示分配给PCI设备的存储器空间或者寄存器空间都为存储区域。
16、的基地址开头地址和尺寸。0043显示器装置、键盘、鼠标、打印机、通信板、外部存储装置等是I/O设备110的一个例子。0044物理计算机200计算机、电脑的一个例子是具备处理器211A、211B、主存储器212、辅助存储装置213以及中断控制器214等硬件210的电脑。0045处理器211A、211B是控制物理计算机200的处理装置,CPUCENTRALPROCESSINGUNIT中央处理单元是处理器211A、211B的一个例子。处理器211的数量也可以是1个或者3个以上。0046主存储器212是被称为一次存储装置的存储装置,RAMRANDOMACCESSMEMORY随机访问存储器、ROMREA。
17、DONLYMEMORY只读存储器是主存储器212的一个例子。0047辅助存储装置213是被称为二次存储装置的存储装置,磁盘装置、闪存存储器是辅助存储装置213的一个例子。0048中断控制器214是控制来自I/O设备110A110C的中断的装置。例如,中断控制器214将来自I/O设备110A110C的中断通知给处理器211A、211B。0049物理计算机200还具备使用硬件210而进行动作的VMM部220以及多个VM部230A、230B。VM部230的数量也可以是3个以上。0050VM部230A执行OS231A、设备驱动器232A以及PCI驱动器233A,作为虚拟计算机VM而动作。同样地,VM部。
18、230B执行OS231B、设备驱动器232B以及PCI驱动器233B,作为虚拟计算机而动作。虚拟计算机是通过后述虚拟计算机监视器VMM虚拟地构筑的计算机。设为VM部230A使用处理器211A而动作,VM部230B使用处理器211B而动作。0051OS231A、OS231B是虚拟计算机的OS或者执行虚拟计算机的OS的执行部。OS231A、OS231B不支持虚拟地址空间。另外,OS231A、OS231B通过单处理器或者多处理器动作。在实施方式中,以通过单处理器动作的OS231A、OS231B为例子进行说明。但是,OS231A、OS231B也可以是通过多处理器动作的OS。另外,OS231A、OS23。
19、1B将由存储器管理部224构筑的虚拟地址空间识别为物理地址空间而动作。0052设备驱动器232A、232B是用于向I/O设备110A110C的存储器、寄存器访问而个别地控制I/O设备110A110C的软件或者执行软件的执行部。访问主要意味着数据的读取或者数据的写入以下相同。0053PCI驱动器233A、233B是用于向I/O设备110A110C的PCI配置寄存器访问的软件或者执行软件的执行部。说明书CN104137088A4/15页70054VMM部220设备分配存储部、访问管理部的一个例子执行虚拟计算机监视器VMM来控制多个虚拟计算机VM部230A、230B。虚拟计算机监视器是用于对各虚拟计。
20、算机分配硬件资源例如处理器211、主存储器212的存储区域来构筑多个虚拟计算机的软件。0055VMM部220具备PCI仿真部221、I/O仿真部222、I/O分配部223、存储器管理部224以及控制部228。0056PCI仿真部221对从PCI驱动器233A、233B向PCI配置寄存器的访问进行仿真。即,PCI仿真部221争夺向PCI配置寄存器的访问,代替PCI驱动器233A、233B而向PCI配置寄存器访问。0057I/O仿真部222对从设备驱动器232A、232B向I/O设备的存储器、寄存器的访问进行仿真。即,I/O仿真部222争夺向I/O设备的存储器、寄存器的访问,代替设备驱动器232A。
21、、232B而向I/O设备的存储器、寄存器访问。0058I/O分配部223参照后述I/O分配表格229,判定对发生了访问的I/O设备110分配的OS231,更新I/O分配表格229。0059存储器管理部224定义VM部230A、230BOS231A、OS231B用的虚拟地址空间。例如,存储器管理部224生成将表示虚拟地址空间内的存储区域的虚拟地址、和表示物理地址空间内的存储区域的物理地址对应起来的映射表格。即,存储器管理部224使用映射表格对虚拟地址空间和物理地址空间进行映射。映射主要意味着,将虚拟地址空间的虚拟地址和物理地址空间的物理地址对应起来以下相同。0060控制部228进行VM部230A。
22、、230B的控制、后述I/O分配表格229的初始化。0061图2是示出实施方式1中的虚拟计算机系统100的动作的流程图。0062根据图2,说明实施方式1中的虚拟计算机系统100的动作。0063在S110中,物理计算机200起动。在物理计算机200起动的情况下,物理计算机200的起动处理部图示省略执行BIOSBASICINPUT/OUTPUTSYSTEM基本输入/输出系统、引导装载程序等规定的软件物理计算机200的起动处理。0064例如,在物理计算机200的起动处理中,进行物理地址空间的初始设定、PCI配置寄存器的初始设定。0065图3是示出实施方式1中的虚拟计算机系统100的存储器映射的图。0。
23、066根据图3,说明实施方式1中的虚拟计算机系统100的存储器映射。0067通过处理器211、主存储器212,对物理存储器映射310的数据进行存储管理。0068在物理地址空间中,确保VM用存储器空间311、I/O用存储器空间312、I/O用寄存器空间313等。VM用存储器空间311是为了VMM、OS231用而分配的存储区域。I/O用存储器空间312是为了I/O设备110A110C的存储器用而分配的存储区域。I/O用寄存器空间313是为了I/O设备110A110C的寄存器用而分配的存储区域。0069在物理计算机200的起动处理图2的S110中,进行以下那样的物理地址空间的初始设定。0070在物理。
24、地址空间中,确保VM用存储器空间311、I/O用存储器空间312、I/O用寄存器空间313等。0071在VM用存储器空间311中,确保VMM部220用的存储区域,从辅助存储装置213向说明书CN104137088A5/15页8VMM部220用的存储区域载入读入VMM的程序、数据。后述I/O分配表格229是在VMM部220用的存储区域中载入的数据的一个例子。0072在I/O用存储器空间312中,确保I/O设备110A110C各自的存储器空间。通过向I/O设备110A110C的存储器空间访问,能够向I/O设备110A110C的存储器访问。0073在I/O用寄存器空间313中,确保I/O设备110A。
25、110C各自的寄存器空间在图3中仅表示I/O设备110B的寄存器空间。通过向I/O设备110A110C的寄存器空间访问,能够向I/O设备110A110C的寄存器访问。0074虚拟存储器映射320A是表示OS231A用的虚拟地址空间的用途的图或者数据,虚拟存储器映射320B是表示OS231B用的虚拟地址空间的用途的图或者数据。通过VMM部220的存储器管理部224,对虚拟存储器映射320A、320B的数据进行存储管理。关于OS231A、OS231B用的虚拟地址空间,后述。0075图4是示出实施方式1中的I/O分配表格229的初始状态的图。0076根据图4,说明实施方式1中的I/O分配表格229。。
26、0077I/O分配表格229设备分配表格的一个例子是用于将I/O设备110的存储器、寄存器和分配了I/O设备110的OS231对应起来的数据。0078I/O分配表格229包括“设备标识符”、“分配目的地”以及“区域0至5”。“区域NN是0至5”表示的存储区域对应于PCI配置寄存器的BARN表示的存储区域。也可以代替使用1个“区域N”来表示32比特的存储区域,与PCI配置寄存器的BAR同样地使用2个“区域N”来表示64比特的存储区域。0079“区域0至5”包括“基地址”、“尺寸”、“属性”。在初始状态下,任何一个项目都未被设定。另外,也可以在“区域0至5”中包括其他信息例如可否预取标志。0080。
27、之后设定的各项目如以下那样发挥功能。0081“设备标识符”表示I/O设备110的标识符。例如,在PCI设备的情况下,将域编号、总线编号、设备编号、功能编号的组用作设备标识符。0082“分配目的地”表示分配了I/O设备110的OS231的标识符。在“分配目的地”中设定的“NULL”意味着,I/O设备110未被分配给任何一个OS231。0083“基地址”表示为了I/O设备110用而分配的存储区域的开头的物理地址。在“区域NN是0至5”的“基地址”中设定PCI配置寄存器的BARN表示的基地址。0084“尺寸”表示所分配的存储区域的大小。在“区域N”的“尺寸”中设定PCI配置寄存器的BARN表示的尺寸。
28、。0085“属性”表示所分配的存储区域的用途。在“属性”中设定的“存储器”意味着所分配的存储区域是存储器空间,在“属性”中设定的“寄存器”意味着所分配的存储区域是寄存器空间。0086返回到图2,继续说明虚拟计算机系统100的动作。0087在S120中,VMM部220起动。在VMM部220起动了的情况下,VMM部220的控制部228执行I/O分配表格229参照图4的初始化处理。关于I/O分配表格229的初始化处理,后述。0088进而,VMM部220的控制部228在VM用存储器空间311参照图3中确保OS231A、OS231B用的存储区域,在OS231A、OS231B用的存储区域中从辅助存储装置2。
29、13载入读入说明书CN104137088A6/15页9VM的程序、数据。OS231A、OS231B、设备驱动器232A、232B以及PCI驱动器233A、233B是在OS231A、OS231B用的存储区域中载入的程序的一个例子。OS231A、OS231B用的存储区域的确保以及VM的程序、数据的载入,也可以在物理计算机200的起动处理S110中执行。0089另外,VMM部220的存储器管理部224定义OS231A、OS231B用的虚拟地址空间,在虚拟地址空间中映射OS231A、OS231B用的存储区域参照图3的虚拟存储器映射320A、320B。此时,存储器管理部224生成将物理地址空间的物理地址。
30、和虚拟地址空间的虚拟地址对应起来的映射表格。0090然后,VMM部220的控制部228使VM部230A、230B起动。0091在S130中,VM部230A、230B开始动作。在VM部230A、230B开始了动作的情况下,发生向I/O设备110A110C的存储器、寄存器的访问以及向PCI配置寄存器的访问。关于发生了访问的情况的处理,后述。0092通过图2的流程图所示那样的虚拟计算机系统100的动作,在物理计算机200中VM部230A、230B工作。0093图5是示出实施方式1中的I/O分配表格229的初始化处理的流程图。0094根据图5,说明实施方式1中的I/O分配表格229的初始化处理。009。
31、5VMM部220的控制部228针对物理计算机200中使用的每个I/O设备110,执行S210至S230的处理。即,控制部228针对I/O设备110A110C分别执行S210至S230的处理。0096在S210中,控制部228判定I/O设备110的存储器空间以及寄存器空间是否定位在页面边界。0097此时,控制部228参照I/O设备110的PCI配置寄存器内的各BAR。在各BAR中设定了I/O设备110的存储器空间或者寄存器空间的基地址以及尺寸。控制部228判定在各BAR中设定的基地址是否为页面边界的地址页面尺寸例如4K字节单位的地址。在各BAR中设定的基地址是页面边界的地址的情况下,I/O设备1。
32、10的存储器空间以及寄存器空间定位在页面边界。0098在I/O设备110的存储器空间以及寄存器空间定位在页面边界的情况下“是”,处理进入到S230。0099在I/O设备110的存储器空间以及寄存器空间未定位在页面边界的情况下“否”,处理进入到S220。0100在S220中,控制部228在设定有并非页面边界的地址的基地址的BAR中设定该基地址的前后某一个的页面边界的地址。0101由此,能够使I/O设备110的存储器空间以及寄存器空间定位在页面边界。0102在S220之后,处理进入到S230。0103在S230中,控制部228使用I/O设备110的PCI配置寄存器的设定值,在I/O分配表格229中。
33、设定I/O设备110的“设备标识符”“基地址”“尺寸”“属性”。另外,控制部228在I/O分配表格229的“分配目的地”中设定“NULL无被分配了的OS231”。0104图6是示出实施方式1中的初始化处理后的I/O分配表格229的图。图6示出初始化处理后的I/O分配表格229的一个例子。0105图7是示出实施方式1中的I/O设备110的分配处理的流程图。说明书CN104137088A7/15页100106根据图7,说明实施方式1中的I/O设备110的分配处理。0107在未分配给任何一个OS231A、OS231B的I/O设备110的存储器空间或者寄存器空间中发生了访问的情况下,如以下那样执行I/。
34、O设备110的分配处理。0108以下,说明发生了从OS231A向I/O设备110A的存储器空间的访问的情况。其中,在发生了从OS231A向I/O设备110A的寄存器空间的访问的情况、以及发生了从OS231A向I/O设备110B或者110C的存储器空间或者寄存器空间的访问的情况下,处理内容也与以下相同。进而,在发生了从OS231B向I/O设备110A110C中的任何一个的存储器空间或者寄存器空间的访问的情况下,处理内容都与以下相同。0109在S310中,OS231A的设备驱动器232A向I/O设备110A的存储器空间访问。例如,设备驱动器232A指定I/O设备110A的存储器空间的物理地址而将访。
35、问命令输出到处理器211A。0110在S310之后,处理进入到S320。0111在S320中,处理器211A参照VMM部220的起动时由存储器管理部224生成的映射表格。此时,在映射表格中未设定映射与I/O设备110A的存储器空间的物理地址对应的虚拟地址。因此,处理器211A发生页面错误例外或者TLB差错例外。以下相同而调用VMM部220。页面错误例外的信息数据中包括访问目的地的物理地址。0112例如,也可以在OS231A、OS231B的例外处理程序HANDLER中设定页面错误例外的发生时的VMM部220的调用。或者,也可以使用作为物理计算机200的虚拟化支援功能的一部分的例外争夺功能来调用V。
36、MM部220。或者,也可以使OS231A、OS231B以非特权模式动作,在OS231A、OS231B的例外向量中设定页面错误例外特权违反的一个例子发生时的VMM部220的调用。0113在S320之后,处理进入到S330。0114在S330中,VMM部220的I/O分配部223参照I/O分配表格229,判定页面错误例外的原因是否为向I/O设备110A的存储器空间或者寄存器空间的访问。0115此时,I/O分配部223判定在I/O分配表格229中登记的各I/O设备的各“区域0至5”中是否包括访问目的地的物理地址。在访问目的地的物理地址包含于某一个I/O设备的“区域0至5”的情况下,页面错误例外的原因。
37、是向该I/O设备110的存储器空间或者寄存器空间的访问。0116在页面错误例外的原因是向I/O设备110A的存储器空间或者寄存器空间的访问的情况下“是”,处理进入到S331。0117在页面错误例外的原因并非向I/O设备110A的存储器空间或者寄存器空间的访问的情况下“否”,处理进入到S350。0118在S331中,VMM部220的I/O分配部223参照I/O分配表格229,判定访问目的地的I/O设备110A是否被其他OS231B占有。0119此时,I/O分配部223判定是否在I/O分配表格229中在与访问目的地I/O设备110A的“设备标识符”对应起来了的“分配目的地”中设定了其他OS231B。
38、的标识符。在“分配目的地”中设定了其他OS231B的标识符的情况下,访问目的地的I/O设备110A被其他OS231B占有。0120在访问目的地的I/O设备110A被其他OS231B占有的情况下“是”,处理进入说明书CN104137088A108/15页11到S350。0121在访问目的地的I/O设备110A未被其他OS231B占有的情况下“否”,处理进入到S340。0122在S340中,VMM部220的I/O分配部223进行I/O分配表格229的设定。此时,I/O分配部223在与访问目的地I/O设备110A的“设备标识符”对应起来了的“分配目的地”中设定访问源OS231A的标识符。0123在S。
39、340之后,处理进入到S341。0124在S341中,VMM部220的存储器管理部224参照I/O分配表格229,将与访问目的地I/O设备110A的“设备标识符”对应起来了的“区域0至5”表示的所有存储器空间以及寄存器空间映射到访问源的OS231A的虚拟地址空间。即,存储器管理部224将该“区域0至5”的物理地址和OS231A的虚拟地址空间的虚拟地址对应起来而设定到映射表格。0125在S341之后,处理进入到S342。0126在S342中,VMM部220的I/O仿真部222对向I/O设备110A的存储器空间的访问进行仿真。即,I/O仿真部222代替OS231A的设备驱动器232A而向I/O设备。
40、110A的存储器空间访问。例如,I/O仿真部222将访问命令输出到处理器211A,处理器211A向I/O设备110A的存储器空间访问。0127在S342之后,处理进入到S360。0128在S350中,VMM部220的控制部228执行页面错误例外用的规定的异常处理。例如,控制部228向OS231A进行报错通知、或者对页面错误例外进行仿真来执行。0129在S350之后,处理进入到S360。0130在S360中,VMM部220的控制部228使控制返回到OS231A。0131通过S360,I/O设备110的分配处理结束。0132在对OS231A分配了I/O设备110A并且映射了I/O设备110A的存储。
41、器空间和OS231A的虚拟地址空间的情况下,处理器211A即使发生从OS231A向I/O设备110A的存储器空间的访问也不发生页面错误例外,依照访问命令向I/O设备110A的存储器空间访问。在该情况下,VMM部220不对向I/O设备110A的存储器空间的访问进行仿真。0133图8是示出实施方式1中的分配了I/O设备110A、110B之后的I/O分配表格229的图。0134图8示出对向I/O设备110A的存储器访问了的OS231A分配了I/O设备110A,对向I/O设备110B的存储器或者寄存器访问了的OS231B分配了I/O设备110B的情况的I/O分配表格229。0135图9是示出实施方式1。
42、中的分配了I/O设备110A、110B之后的虚拟存储器映射320A、320B的图。0136图9示出将I/O设备110A的存储器空间映射到了OS231A的虚拟地址空间的情况的虚拟存储器映射320A、和将I/O设备110B的存储器空间和寄存器空间映射到了OS231B的虚拟地址空间的情况的虚拟存储器映射320B。0137图10是示出实施方式1中的向PCI配置寄存器的访问处理的流程图。0138根据图10,说明OS231A的PCI驱动器233A向I/O设备110A的PCI配置寄存器访问了的情况的处理。其中,在OS231A的PCI驱动器233A向I/O设备110B、110C的PCI配说明书CN104137。
43、088A119/15页12置寄存器访问了的情况下,处理内容也与以下相同。进而,在OS231B的PCI驱动器233B向I/O设备110A110C的PCI配置寄存器访问了的情况下,处理内容也与以下相同。0139在S410中,OS231A的PCI驱动器233A向I/O设备110A的PCI配置寄存器访问。例如,PCI驱动器233A指定I/O设备110A的PCI配置寄存器内的地址、寄存器编号而将访问命令输出到处理器211A。0140在S410之后,处理进入到S420。0141在S420中,VMM部220争夺向I/O设备110A的PCI配置寄存器的访问。0142例如,预将配置有向PCI配置空间的访问用的寄。
44、存器CONFIG_ADDR寄存器以及CONFIG_DATA寄存器的页面作为无法从OS231A、OS231B访问的页面设定到处理器211A、211B。然后,在发生了从OS231A、OS231B向该页面的访问向PCI配置寄存器的访问的情况下,处理器211A、211B发生页面错误例外或者TLB差错例外。以下相同而调用VMM部220。另外,也可以为了OS231A、OS231B向PCI配置空间的访问用的寄存器的访问,而调用VMM部220。另外,在向PCI配置空间的访问用的寄存器并非被映射到存储器空间而被映射到I/O地址空间的情况下,也可以通过I/O地址空间的保护功能调用VMM部220。0143在S420。
45、之后,处理进入到S430。0144在S430中,VMM部220的PCI仿真部221参照I/O分配表格229,判定访问目的地的I/O设备110APCI设备是否被分配给访问源的OS231A。在与访问目的地I/O设备110A的“设备标识符”对应起来了的“分配目的地”中设定了访问源OS231A的标识符的情况下,访问目的地的I/O设备110A被分配给访问源的OS231A。0145在访问目的地的I/O设备110A被分配给访问源的OS231A的情况下“是”,处理进入到S440。0146在访问目的地的I/O设备110A未被分配给访问源的OS231A的情况下“否”,处理进入到S450。0147在S440中,VM。
46、M部220的PCI仿真部221判定访问内容是否包括PCI配置寄存器的BAR的变更。0148在访问内容包括PCI配置寄存器的BAR的变更的情况下“是”,处理进入到BAR变更判定处理S500,之后,进入到S441。关于BAR变更判定处理S500,另外说明。0149在访问内容不包括PCI配置寄存器的BAR的变更的情况下“否”,处理进入到S442。0150在S441中,BAR变更判定处理S500的处理结果是“OK”的情况下,处理进入到S442。另外,在BAR变更判定处理S500的处理结果是“NG”的情况下,处理进入到S450。0151在S442中,VMM部220的PCI仿真部221对向PCI配置寄存器。
47、的访问进行仿真。此时,PCI仿真部221代替PCI驱动器233A而向PCI配置寄存器访问。例如,PCI仿真部221将访问命令输出到处理器211A,处理器211A向PCI配置寄存器访问。0152在S442之后,处理进入到S460。0153在S450中,VMM部220的PCI仿真部221执行向PCI配置寄存器的访问时的规定的异常处理。例如,PCI仿真部221向OS231A进行报错通知。0154在S450之后,处理进入到S460。0155在S460中,VMM部220的PCI仿真部221使控制返回到OS231A。说明书CN104137088A1210/15页130156通过S460,向PCI配置寄存器。
48、的访问处理结束。0157图11是示出实施方式1中的BAR变更判定处理S500的流程图。0158根据图11,说明向PCI配置寄存器的访问处理参照图10中包含的BAR变更判定处理S500。0159在S510中,VMM部220的PCI仿真部221判定变更后的BAR表示的存储区域是否为正确的存储区域。例如,PCI仿真部221在变更后的BAR的基地址与页面边界的地址一致的情况下,判定为变更后的BAR表示的存储区域是正确的存储区域。进而,PCI仿真部221判定变更后的BAR表示的存储区域收敛于I/O用存储器空间312、I/O用寄存器空间313中。0160在变更后的BAR表示的存储区域是正确的存储区域的情况。
49、下“是”,处理进入到S511。0161在变更后的BAR表示的存储区域并非正确的存储区域的情况下“否”,BAR变更判定处理S500的处理结果是“NG”S530。0162在S511中,VMM部220的PCI仿真部221参照I/O分配表格229,判定变更后的BAR表示的存储区域是否被其他OS231B占有。0163此时,PCI仿真部221判定在与设定了访问源以外的OS231B的标识符的“分配目的地”对应起来了的“区域0至5”中是否包括变更后的BAR表示的存储区域的一部分或者全部。0164在变更后的BAR表示的存储区域被其他OS231B占有了的情况下“是”,BAR变更判定处理S500的处理结果是“NG”。
50、S530。0165在变更后的BAR表示的存储区域未被其他OS231B占有的情况下“否”,处理进入到S520。0166在S520中,VMM部220的PCI仿真部221变更与I/O分配表格229的访问目的地I/O设备110A的“设备标识符”对应起来了的“区域0至5”中的、与变更了的BAR对应的“区域0至5中的某一个”的“基地址”以及“尺寸”。0167在S520之后,处理进入到S521。0168在S521中,VMM部220的存储器管理部224根据BAR的变更,变更I/O设备110A的映射表格。即,存储器管理部224从I/O设备110A的虚拟地址空间解映射变更前的BAR表示的存储区域,将变更后的BAR。