CN104137088A - 计算机、访问管理方法以及访问管理程序 - Google Patents
计算机、访问管理方法以及访问管理程序 Download PDFInfo
- Publication number
- CN104137088A CN104137088A CN201280070396.6A CN201280070396A CN104137088A CN 104137088 A CN104137088 A CN 104137088A CN 201280070396 A CN201280070396 A CN 201280070396A CN 104137088 A CN104137088 A CN 104137088A
- Authority
- CN
- China
- Prior art keywords
- access
- equipment
- situation
- assigned
- pci
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
在发生了从OS(231a)向I/O设备(110a)的访问的情况下,I/O分配部(223)参照I/O分配表格(229),判定I/O设备(110a)是否被分配给其他OS(231b)。在I/O设备(110a)被分配给其他OS(231b)的情况下,控制部(228)向OS(231a)通知报错。在I/O设备(110a)未被分配给任何一个OS(231a、231b)的情况下,I/O分配部(223)为了将I/O设备(110a)分配给OS(231a),更新I/O分配表格(229),I/O仿真部222对向I/O设备(110a)的访问进行仿真。
Description
技术领域
本发明涉及例如管理从多个OS(Operating System:操作系统)向设备的访问的计算机、访问管理方法以及访问管理程序。
背景技术
虚拟计算机系统是使多个OS动作的系统。例如,存在Xen(注册商标)、KVM(Kernel-based Virtual Machine:基于内核的虚拟机)(注册商标)等虚拟计算机系统。
以往的虚拟计算机系统在事先针对多个OS分别设定使其占有的I/O设备之后起动多个OS。然后,虚拟计算机监视器(VMM:VirtualMachine Monitor)许可从各OS向该OS占有的I/O设备的存储器、寄存器的访问,拒绝从各OS向其他OS占有的I/O设备的存储器、寄存器的访问。在I/O设备是PCI设备(包括PCI Express设备。以下相同)的情况下,虚拟计算机监视器许可或者拒绝向PCI配置寄存器的访问。这样,进行了针对各OS的I/O设备的排他性的分配。
例如,在Xen中对设定文件指定使OS占有的I/O设备。另外,在KVM中,用OS的起动选项指定使其占有的I/O设备。
Xen、KVM等以往的虚拟计算机系统需要针对每个OS事先设定使其占有的I/O设备。因此,在多个OS动作而各OS占有多个I/O设备的情况下,事先设定变得繁杂。
在专利文献1中,公开了如以下那样,在执行中切换占有I/O设备的OS的虚拟计算机系统。
在专利文献1的虚拟计算机系统中,VMM将基于OS的I/O设备占有要求、基于VMM的事件探测作为主要原因,向OS输出I/O设备的占有许可。然后,OS仅在输出了I/O设备的占有许可的情况下,进行针对I/O设备的输入输出。因此,不需要用于使某一个OS占有I/O设备的事先设定。
但是,由于不保护I/O设备的存储器、寄存器,所以能够从非占有I/O设备中的OS向该I/O设备的存储器、寄存器访问。因此,存在其他OS破坏某个OS占有中的I/O设备的存储器、寄存器的内容的可能性。
专利文献1:日本特开2007-220086号公报
发明内容
本发明的目的在于例如能够正确地管理从多个OS向设备的访问。
在本发明的计算机中,向设备访问的多个OS(OperatingSystem)进行动作。
所述计算机具备:
设备分配存储部,存储用于将设备和分配了设备的OS对应起来的设备分配表格;以及
访问管理部,在发生了向所述设备的访问的情况下,根据所述设备分配表格判定分配了所述设备的OS,在所述设备未被分配给任何一个OS的情况下,为了将所述设备和访问源的OS对应起来,更新所述设备分配表格来许可向所述设备的访问,在所述设备被分配给所述访问源的OS以外的OS的情况下,拒绝向所述设备的访问。
根据本发明,例如,能够正确地管理从多个OS向设备的访问。
附图说明
图1是实施方式1中的虚拟计算机系统100的结构图。
图2是示出实施方式1中的虚拟计算机系统100的动作的流程图。
图3是示出实施方式1中的虚拟计算机系统100的存储器映射的图。
图4是示出实施方式1中的I/O分配表格229的初始状态的图。
图5是示出实施方式1中的I/O分配表格229的初始化处理的流程图。
图6是示出实施方式1中的初始化处理后的I/O分配表格229的图。
图7是示出实施方式1中的I/O设备110的分配处理的流程图。
图8是示出实施方式1中的分配了I/O设备110a、110b之后的I/O分配表格229的图。
图9是示出实施方式1中的分配了I/O设备110a、110b之后的虚拟存储器映射320a、320b的图。
图10是示出实施方式1中的向PCI配置寄存器的访问处理的流程图。
图11是示出实施方式1中的BAR变更判定处理(S500)的流程图。
图12是示出实施方式2中的I/O分配表格229的图。
图13是示出实施方式2中的虚拟计算机系统100的存储器映射的图。
图14是示出实施方式2中的I/O分配表格229的初始化处理的流程图。
图15是示出实施方式2中的I/O设备110的分配处理的流程图。
图16是示出实施方式2中的向PCI配置寄存器的访问处理的流程图。
图17是实施方式3中的虚拟计算机系统100的结构图。
图18是示出实施方式3中的I/O分配表格229的初始化处理的流程图。
符号说明
100:虚拟计算机系统;110:I/O设备;200:物理计算机;210:硬件;211:处理器;212:主存储器;213:辅助存储装置;214:中断控制器;220:VMM部;221:PCI仿真部;222:I/O仿真部;223:I/O分配部;224:存储器管理部;225:表格保存部;228:控制部;229:I/O分配表格;230:VM部;231:OS;232:设备驱动器;233:PCI驱动器;310:物理存储器映射;311:VM用存储器空间;312:I/O用存储器空间;313:I/O用寄存器空间;320:虚拟存储器映射。
具体实施方式
实施方式1.
说明对虚拟计算机的OS(Operating System)分配设备而使虚拟计算机的OS占有设备的虚拟计算机系统。虚拟计算机系统是多个OS进行动作的系统的一个例子。
图1是实施方式1中的虚拟计算机系统100的结构图。
根据图1,说明实施方式1中的虚拟计算机系统100的硬件结构以及功能结构。
虚拟计算机系统100具备物理计算机200、和与物理计算机200连接的多个I/O设备110a-110c(输入(Input)/输出(Output)设备)。I/O设备110的数量也可以是2个或者4个以上。
在实施方式中,设为I/O设备110a-110c是将PCI(PeripheralComponents Interconnect bus:外围组件互连总线)用作接口的PCI设备而进行说明。其中,与物理计算机200连接的I/O设备也可以是PCI设备以外的设备。
PCI设备存储包括BAR(基地址寄存器)的PCI配置寄存器。PCI配置寄存器的BAR表示分配给PCI设备的存储器空间或者寄存器空间(都为存储区域)的基地址(开头地址)和尺寸。
显示器装置、键盘、鼠标、打印机、通信板、外部存储装置等是I/O设备110的一个例子。
物理计算机200(计算机、电脑的一个例子)是具备处理器211a、211b、主存储器212、辅助存储装置213以及中断控制器214等硬件210的电脑。
处理器211a、211b是控制物理计算机200的处理装置,CPU(Central Processing Unit:中央处理单元)是处理器211a、211b的一个例子。处理器211的数量也可以是1个或者3个以上。
主存储器212是被称为一次存储装置的存储装置,RAM(Random Access Memory:随机访问存储器)、ROM(Read OnlyMemory:只读存储器)是主存储器212的一个例子。
辅助存储装置213是被称为二次存储装置的存储装置,磁盘装置、闪存存储器是辅助存储装置213的一个例子。
中断控制器214是控制来自I/O设备110a-110c的中断的装置。例如,中断控制器214将来自I/O设备110a-110c的中断通知给处理器211a、211b。
物理计算机200还具备使用硬件210而进行动作的VMM部220以及多个VM部230a、230b。VM部230的数量也可以是3个以上。
VM部230a执行OS231a、设备驱动器232a以及PCI驱动器233a,作为虚拟计算机(VM)而动作。同样地,VM部230b执行OS231b、设备驱动器232b以及PCI驱动器233b,作为虚拟计算机而动作。虚拟计算机是通过后述虚拟计算机监视器(VMM)虚拟地构筑的计算机。设为VM部230a使用处理器211a而动作,VM部230b使用处理器211b而动作。
OS231a、OS231b是虚拟计算机的OS(或者执行虚拟计算机的OS的执行部)。OS231a、OS231b不支持虚拟地址空间。另外,OS231a、OS231b通过单处理器或者多处理器动作。在实施方式中,以通过单处理器动作的OS231a、OS231b为例子进行说明。但是,OS231a、OS231b也可以是通过多处理器动作的OS。另外,OS231a、OS231b将由存储器管理部224构筑的虚拟地址空间识别为物理地址空间而动作。
设备驱动器232a、232b是用于向I/O设备110a-110c的存储器、寄存器访问而个别地控制I/O设备110a-110c的软件(或者执行软件的执行部)。访问主要意味着数据的读取或者数据的写入(以下相同)。
PCI驱动器233a、233b是用于向I/O设备110a-110c的PCI配置寄存器访问的软件(或者执行软件的执行部)。
VMM部220(设备分配存储部、访问管理部的一个例子)执行虚拟计算机监视器(VMM)来控制多个虚拟计算机(VM部230a、230b)。虚拟计算机监视器是用于对各虚拟计算机分配硬件资源(例如处理器211、主存储器212的存储区域)来构筑多个虚拟计算机的软件。
VMM部220具备PCI仿真部221、I/O仿真部222、I/O分配部223、存储器管理部224以及控制部228。
PCI仿真部221对从PCI驱动器233a、233b向PCI配置寄存器的访问进行仿真。即,PCI仿真部221争夺向PCI配置寄存器的访问,代替PCI驱动器233a、233b而向PCI配置寄存器访问。
I/O仿真部222对从设备驱动器232a、232b向I/O设备的存储器、寄存器的访问进行仿真。即,I/O仿真部222争夺向I/O设备的存储器、寄存器的访问,代替设备驱动器232a、232b而向I/O设备的存储器、寄存器访问。
I/O分配部223参照后述I/O分配表格229,判定对发生了访问的I/O设备110分配的OS231,更新I/O分配表格229。
存储器管理部224定义VM部230a、230b(OS231a、OS231b)用的虚拟地址空间。例如,存储器管理部224生成将表示虚拟地址空间内的存储区域的虚拟地址、和表示物理地址空间内的存储区域的物理地址对应起来的映射表格。即,存储器管理部224使用映射表格对虚拟地址空间和物理地址空间进行映射。映射主要意味着,将虚拟地址空间的虚拟地址和物理地址空间的物理地址对应起来(以下相同)。
控制部228进行VM部230a、230b的控制、后述I/O分配表格229的初始化。
图2是示出实施方式1中的虚拟计算机系统100的动作的流程图。
根据图2,说明实施方式1中的虚拟计算机系统100的动作。
在S110中,物理计算机200起动。在物理计算机200起动的情况下,物理计算机200的起动处理部(图示省略)执行BIOS(BasicInput/Output System:基本输入/输出系统)、引导装载程序等规定的软件(物理计算机200的起动处理)。
例如,在物理计算机200的起动处理中,进行物理地址空间的初始设定、PCI配置寄存器的初始设定。
图3是示出实施方式1中的虚拟计算机系统100的存储器映射的图。
根据图3,说明实施方式1中的虚拟计算机系统100的存储器映射。
通过处理器211、主存储器212,对物理存储器映射310的数据进行存储管理。
在物理地址空间中,确保VM用存储器空间311、I/O用存储器空间312、I/O用寄存器空间313等。VM用存储器空间311是为了VMM、OS231用而分配的存储区域。I/O用存储器空间312是为了I/O设备110a-110c的存储器用而分配的存储区域。I/O用寄存器空间313是为了I/O设备110a-110c的寄存器用而分配的存储区域。
在物理计算机200的起动处理(图2的S110)中,进行以下那样的物理地址空间的初始设定。
在物理地址空间中,确保VM用存储器空间311、I/O用存储器空间312、I/O用寄存器空间313等。
在VM用存储器空间311中,确保VMM部220用的存储区域,从辅助存储装置213向VMM部220用的存储区域载入(读入)VMM的程序、数据。后述I/O分配表格229是在VMM部220用的存储区域中载入的数据的一个例子。
在I/O用存储器空间312中,确保I/O设备110a-110c各自的存储器空间。通过向I/O设备110a-110c的存储器空间访问,能够向I/O设备110a-110c的存储器访问。
在I/O用寄存器空间313中,确保I/O设备110a-110c各自的寄存器空间(在图3中仅表示I/O设备110b的寄存器空间)。通过向I/O设备110a-110c的寄存器空间访问,能够向I/O设备110a-110c的寄存器访问。
虚拟存储器映射320a是表示OS231a用的虚拟地址空间的用途的图或者数据,虚拟存储器映射320b是表示OS231b用的虚拟地址空间的用途的图或者数据。通过VMM部220的存储器管理部224,对虚拟存储器映射320a、320b的数据进行存储管理。关于OS231a、OS231b用的虚拟地址空间,后述。
图4是示出实施方式1中的I/O分配表格229的初始状态的图。
根据图4,说明实施方式1中的I/O分配表格229。
I/O分配表格229(设备分配表格的一个例子)是用于将I/O设备110(的存储器、寄存器)和分配了I/O设备110的OS231对应起来的数据。
I/O分配表格229包括“设备标识符”、“分配目的地”以及“区域(0至5)”。“区域n(n是0至5)”表示的存储区域对应于PCI配置寄存器的BARn表示的存储区域。也可以代替使用1个“区域n”来表示32比特的存储区域,与PCI配置寄存器的BAR同样地使用2个“区域n”来表示64比特的存储区域。
“区域(0至5)”包括“基地址”、“尺寸”、“属性”。在初始状态下,任何一个项目都未被设定。另外,也可以在“区域(0至5)”中包括其他信息(例如可否预取标志)。
之后设定的各项目如以下那样发挥功能。
“设备标识符”表示I/O设备110的标识符。例如,在PCI设备的情况下,将域编号、总线编号、设备编号、功能编号的组用作设备标识符。
“分配目的地”表示分配了I/O设备110的OS231的标识符。在“分配目的地”中设定的“NULL”意味着,I/O设备110未被分配给任何一个OS231。
“基地址”表示为了I/O设备110用而分配的存储区域的开头的物理地址。在“区域n(n是0至5)”的“基地址”中设定PCI配置寄存器的BARn表示的基地址。
“尺寸”表示所分配的存储区域的大小。在“区域n”的“尺寸”中设定PCI配置寄存器的BARn表示的尺寸。
“属性”表示所分配的存储区域的用途。在“属性”中设定的“存储器”意味着所分配的存储区域是存储器空间,在“属性”中设定的“寄存器”意味着所分配的存储区域是寄存器空间。
返回到图2,继续说明虚拟计算机系统100的动作。
在S120中,VMM部220起动。在VMM部220起动了的情况下,VMM部220的控制部228执行I/O分配表格229(参照图4)的初始化处理。关于I/O分配表格229的初始化处理,后述。
进而,VMM部220的控制部228在VM用存储器空间311(参照图3)中确保OS231a、OS231b用的存储区域,在OS231a、OS231b用的存储区域中从辅助存储装置213载入(读入)VM的程序、数据。OS231a、OS231b、设备驱动器232a、232b以及PCI驱动器233a、233b是在OS231a、OS231b用的存储区域中载入的程序的一个例子。OS231a、OS231b用的存储区域的确保以及VM的程序、数据的载入,也可以在物理计算机200的起动处理(S110)中执行。
另外,VMM部220的存储器管理部224定义OS231a、OS231b用的虚拟地址空间,在虚拟地址空间中映射OS231a、OS231b用的存储区域(参照图3的虚拟存储器映射320a、320b)。此时,存储器管理部224生成将物理地址空间的物理地址和虚拟地址空间的虚拟地址对应起来的映射表格。
然后,VMM部220的控制部228使VM部230a、230b起动。
在S130中,VM部230a、230b开始动作。在VM部230a、230b开始了动作的情况下,发生向I/O设备110a-110c的存储器、寄存器的访问以及向PCI配置寄存器的访问。关于发生了访问的情况的处理,后述。
通过图2的流程图所示那样的虚拟计算机系统100的动作,在物理计算机200中VM部230a、230b工作。
图5是示出实施方式1中的I/O分配表格229的初始化处理的流程图。
根据图5,说明实施方式1中的I/O分配表格229的初始化处理。
VMM部220的控制部228针对物理计算机200中使用的每个I/O设备110,执行S210至S230的处理。即,控制部228针对I/O设备110a-110c分别执行S210至S230的处理。
在S210中,控制部228判定I/O设备110的存储器空间以及寄存器空间是否定位在页面边界。
此时,控制部228参照I/O设备110的PCI配置寄存器内的各BAR。在各BAR中设定了I/O设备110的存储器空间或者寄存器空间的基地址以及尺寸。控制部228判定在各BAR中设定的基地址是否为页面边界的地址(页面尺寸(例如4K字节)单位的地址)。在各BAR中设定的基地址是页面边界的地址的情况下,I/O设备110的存储器空间以及寄存器空间定位在页面边界。
在I/O设备110的存储器空间以及寄存器空间定位在页面边界的情况下(“是”),处理进入到S230。
在I/O设备110的存储器空间以及寄存器空间未定位在页面边界的情况下(“否”),处理进入到S220。
在S220中,控制部228在设定有并非页面边界的地址的基地址的BAR中设定该基地址的前后某一个的页面边界的地址。
由此,能够使I/O设备110的存储器空间以及寄存器空间定位在页面边界。
在S220之后,处理进入到S230。
在S230中,控制部228使用I/O设备110的PCI配置寄存器的设定值,在I/O分配表格229中设定I/O设备110的“设备标识符”“基地址”“尺寸”“属性”。另外,控制部228在I/O分配表格229的“分配目的地”中设定“NULL(无被分配了的OS231)”。
图6是示出实施方式1中的初始化处理后的I/O分配表格229的图。图6示出初始化处理后的I/O分配表格229的一个例子。
图7是示出实施方式1中的I/O设备110的分配处理的流程图。
根据图7,说明实施方式1中的I/O设备110的分配处理。
在未分配给任何一个OS231a、OS231b的I/O设备110的存储器空间或者寄存器空间中发生了访问的情况下,如以下那样执行I/O设备110的分配处理。
以下,说明发生了从OS231a向I/O设备110a的存储器空间的访问的情况。其中,在发生了从OS231a向I/O设备110a的寄存器空间的访问的情况、以及发生了从OS231a向I/O设备110b或者110c的存储器空间或者寄存器空间的访问的情况下,处理内容也与以下相同。进而,在发生了从OS231b向I/O设备110a-110c中的任何一个的存储器空间或者寄存器空间的访问的情况下,处理内容都与以下相同。
在S310中,OS231a的设备驱动器232a向I/O设备110a的存储器空间访问。例如,设备驱动器232a指定I/O设备110a的存储器空间的物理地址而将访问命令输出到处理器211a。
在S310之后,处理进入到S320。
在S320中,处理器211a参照VMM部220的起动时由存储器管理部224生成的映射表格。此时,在映射表格中未设定(映射)与I/O设备110a的存储器空间的物理地址对应的虚拟地址。因此,处理器211a发生页面错误例外(或者TLB差错例外。以下相同)而调用VMM部220。页面错误例外的信息(数据)中包括访问目的地的物理地址。
例如,也可以在OS231a、OS231b的例外处理程序(Handler)中设定页面错误例外的发生时的VMM部220的调用。或者,也可以使用作为物理计算机200的虚拟化支援功能的一部分的例外争夺功能来调用VMM部220。或者,也可以使OS231a、OS231b以非特权模式动作,在OS231a、OS231b的例外向量中设定页面错误例外(特权违反的一个例子)发生时的VMM部220的调用。
在S320之后,处理进入到S330。
在S330中,VMM部220的I/O分配部223参照I/O分配表格229,判定页面错误例外的原因是否为向I/O设备110a的存储器空间或者寄存器空间的访问。
此时,I/O分配部223判定在I/O分配表格229中登记的各I/O设备的各“区域(0至5)”中是否包括访问目的地的物理地址。在访问目的地的物理地址包含于某一个I/O设备的“区域(0至5)”的情况下,页面错误例外的原因是向该I/O设备110的存储器空间或者寄存器空间的访问。
在页面错误例外的原因是向I/O设备110a的存储器空间或者寄存器空间的访问的情况下(“是”),处理进入到S331。
在页面错误例外的原因并非向I/O设备110a的存储器空间或者寄存器空间的访问的情况下(“否”),处理进入到S350。
在S331中,VMM部220的I/O分配部223参照I/O分配表格229,判定访问目的地的I/O设备110a是否被其他OS231b占有。
此时,I/O分配部223判定是否在I/O分配表格229中在与访问目的地(I/O设备110a)的“设备标识符”对应起来了的“分配目的地”中设定了其他OS231b的标识符。在“分配目的地”中设定了其他OS231b的标识符的情况下,访问目的地的I/O设备110a被其他OS231b占有。
在访问目的地的I/O设备110a被其他OS231b占有的情况下(“是”),处理进入到S350。
在访问目的地的I/O设备110a未被其他OS231b占有的情况下(“否”),处理进入到S340。
在S340中,VMM部220的I/O分配部223进行I/O分配表格229的设定。此时,I/O分配部223在与访问目的地(I/O设备110a)的“设备标识符”对应起来了的“分配目的地”中设定访问源(OS231a)的标识符。
在S340之后,处理进入到S341。
在S341中,VMM部220的存储器管理部224参照I/O分配表格229,将与访问目的地(I/O设备110a)的“设备标识符”对应起来了的“区域(0至5)”表示的所有存储器空间以及寄存器空间映射到访问源的OS231a的虚拟地址空间。即,存储器管理部224将该“区域(0至5)”的物理地址和OS231a的虚拟地址空间的虚拟地址对应起来而设定到映射表格。
在S341之后,处理进入到S342。
在S342中,VMM部220的I/O仿真部222对向I/O设备110a的存储器空间的访问进行仿真。即,I/O仿真部222代替OS231a的设备驱动器232a而向I/O设备110a的存储器空间访问。例如,I/O仿真部222将访问命令输出到处理器211a,处理器211a向I/O设备110a的存储器空间访问。
在S342之后,处理进入到S360。
在S350中,VMM部220的控制部228执行页面错误例外用的规定的异常处理。例如,控制部228向OS231a进行报错通知、或者对页面错误例外进行仿真来执行。
在S350之后,处理进入到S360。
在S360中,VMM部220的控制部228使控制返回到OS231a。
通过S360,I/O设备110的分配处理结束。
在对OS231a分配了I/O设备110a并且映射了I/O设备110a的存储器空间和OS231a的虚拟地址空间的情况下,处理器211a即使发生从OS231a向I/O设备110a的存储器空间的访问也不发生页面错误例外,依照访问命令向I/O设备110a的存储器空间访问。在该情况下,VMM部220不对向I/O设备110a的存储器空间的访问进行仿真。
图8是示出实施方式1中的分配了I/O设备110a、110b之后的I/O分配表格229的图。
图8示出对向I/O设备110a的存储器访问了的OS231a分配了I/O设备110a,对向I/O设备110b的存储器或者寄存器访问了的OS231b分配了I/O设备110b的情况的I/O分配表格229。
图9是示出实施方式1中的分配了I/O设备110a、110b之后的虚拟存储器映射320a、320b的图。
图9示出将I/O设备110a的存储器空间映射到了OS231a的虚拟地址空间的情况的虚拟存储器映射320a、和将I/O设备110b的存储器空间和寄存器空间映射到了OS231b的虚拟地址空间的情况的虚拟存储器映射320b。
图10是示出实施方式1中的向PCI配置寄存器的访问处理的流程图。
根据图10,说明OS231a的PCI驱动器233a向I/O设备110a的PCI配置寄存器访问了的情况的处理。其中,在OS231a的PCI驱动器233a向I/O设备110b、110c的PCI配置寄存器访问了的情况下,处理内容也与以下相同。进而,在OS231b的PCI驱动器233b向I/O设备110a-110c的PCI配置寄存器访问了的情况下,处理内容也与以下相同。
在S410中,OS231a的PCI驱动器233a向I/O设备110a的PCI配置寄存器访问。例如,PCI驱动器233a指定I/O设备110a的PCI配置寄存器内的地址、寄存器编号而将访问命令输出到处理器211a。
在S410之后,处理进入到S420。
在S420中,VMM部220争夺向I/O设备110a的PCI配置寄存器的访问。
例如,预将配置有向PCI配置空间的访问用的寄存器(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。
在S420之后,处理进入到S430。
在S430中,VMM部220的PCI仿真部221参照I/O分配表格229,判定访问目的地的I/O设备110a(PCI设备)是否被分配给访问源的OS231a。在与访问目的地(I/O设备110a)的“设备标识符”对应起来了的“分配目的地”中设定了访问源(OS231a)的标识符的情况下,访问目的地的I/O设备110a被分配给访问源的OS231a。
在访问目的地的I/O设备110a被分配给访问源的OS231a的情况下(“是”),处理进入到S440。
在访问目的地的I/O设备110a未被分配给访问源的OS231a的情况下(“否”),处理进入到S450。
在S440中,VMM部220的PCI仿真部221判定访问内容是否包括PCI配置寄存器的BAR的变更。
在访问内容包括PCI配置寄存器的BAR的变更的情况下(“是”),处理进入到BAR变更判定处理(S500),之后,进入到S441。关于BAR变更判定处理(S500),另外说明。
在访问内容不包括PCI配置寄存器的BAR的变更的情况下(“否”),处理进入到S442。
在S441中,BAR变更判定处理(S500)的处理结果是“OK”的情况下,处理进入到S442。另外,在BAR变更判定处理(S500)的处理结果是“NG”的情况下,处理进入到S450。
在S442中,VMM部220的PCI仿真部221对向PCI配置寄存器的访问进行仿真。此时,PCI仿真部221代替PCI驱动器233a而向PCI配置寄存器访问。例如,PCI仿真部221将访问命令输出到处理器211a,处理器211a向PCI配置寄存器访问。
在S442之后,处理进入到S460。
在S450中,VMM部220的PCI仿真部221执行向PCI配置寄存器的访问时的规定的异常处理。例如,PCI仿真部221向OS231a进行报错通知。
在S450之后,处理进入到S460。
在S460中,VMM部220的PCI仿真部221使控制返回到OS231a。
通过S460,向PCI配置寄存器的访问处理结束。
图11是示出实施方式1中的BAR变更判定处理(S500)的流程图。
根据图11,说明向PCI配置寄存器的访问处理(参照图10)中包含的BAR变更判定处理(S500)。
在S510中,VMM部220的PCI仿真部221判定变更后的BAR表示的存储区域是否为正确的存储区域。例如,PCI仿真部221在变更后的BAR的基地址与页面边界的地址一致的情况下,判定为变更后的BAR表示的存储区域是正确的存储区域。进而,PCI仿真部221判定变更后的BAR表示的存储区域收敛于I/O用存储器空间312、I/O用寄存器空间313中。
在变更后的BAR表示的存储区域是正确的存储区域的情况下(“是”),处理进入到S511。
在变更后的BAR表示的存储区域并非正确的存储区域的情况下(“否”),BAR变更判定处理(S500)的处理结果是“NG”(S530)。
在S511中,VMM部220的PCI仿真部221参照I/O分配表格229,判定变更后的BAR表示的存储区域是否被其他OS231b占有。
此时,PCI仿真部221判定在与设定了访问源以外的OS231b的标识符的“分配目的地”对应起来了的“区域(0至5)”中是否包括变更后的BAR表示的存储区域的一部分或者全部。
在变更后的BAR表示的存储区域被其他OS231b占有了的情况下(“是”),BAR变更判定处理(S500)的处理结果是“NG”(S530)。
在变更后的BAR表示的存储区域未被其他OS231b占有的情况下(“否”),处理进入到S520。
在S520中,VMM部220的PCI仿真部221变更与I/O分配表格229的访问目的地(I/O设备110a)的“设备标识符”对应起来了的“区域(0至5)”中的、与变更了的BAR对应的“区域(0至5中的某一个)”的“基地址”以及“尺寸”。
在S520之后,处理进入到S521。
在S521中,VMM部220的存储器管理部224根据BAR的变更,变更I/O设备110a的映射表格。即,存储器管理部224从I/O设备110a的虚拟地址空间解映射变更前的BAR表示的存储区域,将变更后的BAR表示的存储区域映射到I/O设备110a的虚拟地址空间。
BAR变更判定处理(S500)的处理结果是“OK”(S522)。
此处,补充实施方式中的虚拟计算机系统100的硬件。
处理器211a、211b经由总线(图示省略)与主存储器212、辅助存储装置213、中断控制器214、I/O设备110a-110c以及其他硬件连接,并控制这些硬件。
在主存储器212或者辅助存储装置213中存储有程序群、文件群(图示省略)。
在程序群中,包括执行在实施方式中说明为“~部”的功能的程序。程序(例如访问控制程序、虚拟计算机程序)由处理器211读出并执行。即,程序使电脑作为“~部”发挥功能,并且使电脑执行“~部”的阶段、方法。
在文件群中,包括在实施方式中说明的“~部”中使用的各种数据(输入、输出、判定结果、计算结果、处理结果等)。
在实施方式中在结构图以及流程图中包含的箭头主要表示数据、信号的输入输出。
使用硬件210(例如处理器211)执行根据流程图等说明的处理。
在实施方式中说明为“~部”的部分既可以是“~电路”、“~装置”、“~设备”,并且也可以是“~步骤”、“~阶段”、“~处理”。即,说明为“~部”的部分可以用固件、软件、硬件或者它们的组合中的任何一个来安装。
实施方式1中的虚拟计算机的OS231a、OS231b是在物理计算机200中动作的多个OS的一个例子。也可以在物理计算机200中安装多操作系统,物理计算机200使虚拟计算机的OS以外的多个OS动作。
在实施方式1中,物理计算机200将PCI设备的寄存器空间映射到存储器空间。其中,物理计算机200也可以如PC/AT互换机那样,将PCI设备的寄存器空间映射到I/O地址空间(PC/AT是注册商标)。例如,在Intel x86 CPU的情况下,向I/O地址空间映射了的PCI设备的寄存器空间的保护能够通过使用I/O特权等级、I/O许可比特映射、或者硬件的虚拟化支援功能的I/O访问争夺功能来实现(Intel是注册商标)。
在实施方式1中,物理计算机200不进行针对OS231a、OS231b的I/O设备110a-110c的事先分配。代替这个,物理计算机200在发生了基于OS231a的向I/O设备110a的存储器空间、寄存器空间的访问时,按照先到顺序,对该OS231a分配该I/O设备110a。由此,物理计算机200从该OS231a以外的OS231b保护该I/O设备110a的存储器空间、寄存器空间以及PCI配置寄存器。即,物理计算机200无法从分配了该I/O设备110a的OS231a以外的OS231b向该I/O设备110a访问。
通过实施方式1,变得不需要I/O设备110a-110c的分配的事先设定,并且能够从其他OS231b保护分配给OS231a的I/O设备110a的存储器空间、寄存器空间以及PCI配置寄存器。
在实施方式1中,例如,说明了以下那样的计算机(物理计算机200)。
计算机使向设备(I/O设备110a-110c)访问的多个OS(OS231a、OS231b)动作。
计算机具备设备分配存储部和访问管理部(VMM部220)。
设备分配存储部存储用于将所述设备和分配了所述设备的OS对应起来的设备分配表格(I/O分配表格229)。
访问管理部在发生了向所述设备的访问的情况下,根据所述设备分配表格判定分配了所述设备的OS。访问管理部在所述设备未被分配给任何一个OS的情况下,为了将所述设备和访问源的OS对应起来,更新所述设备分配表格而许可向所述设备的访问。访问管理部在所述设备被分配给所述访问源的OS以外的OS的情况下,拒绝向所述设备的访问。
所述设备分配表格是将所述设备的物理地址空间和分配了所述设备的OS对应起来表示的数据。
所述访问管理部在所述设备未被分配给任何一个OS的情况下,进而,将所述设备分配表格表示的所述设备的物理地址空间映射到所述访问源的OS的虚拟地址空间。
所述访问管理部在发生了向所述设备的PCI配置寄存器访问的情况下,根据所述设备分配表格判定被分配了所述设备的OS。所述访问管理部在所述设备被分配给访问源的OS的情况下,许可向所述PCI配置寄存器的访问。所述访问管理部在所述设备未被分配给所述访问源的OS的情况下,拒绝向所述PCI配置寄存器的访问。
所述访问管理部在向所述PCI配置寄存器的访问是基地址的变更,且所述设备被分配给所述访问源的OS的情况下,如以下那样动作。所述访问管理部根据变更后的基地址,更新所述设备分配表格内的所述设备的物理地址空间的信息。所述访问管理部将更新后的所述信息表示的所述设备的物理地址空间映射到所述访问源的OS的虚拟地址空间。
实施方式2.
说明通过所访问的设备的种类对多个OS(或者所有OS)许可从设备的存储器、寄存器读入数据的方式。
以下,主要说明与实施方式1不同的事项。关于省略说明的事项,与实施方式1相同。
虚拟计算机系统100的结构与实施方式1相同(参照图1)。
其中,I/O分配表格229的结构的一部分不同。
图12是示出实施方式2中的I/O分配表格229的图。
根据图12,说明实施方式2中的I/O分配表格229。
I/O分配表格229除了在实施方式1中说明了的项目(参照图4、6、8)以外,还具有“设备类别”。
“设备类别”表示I/O设备110的设备类别(例如桥)。
图12的I/O分配表格229示出I/O设备110c是“桥”。I/O设备110c(桥)未被分配给任何一个OS231a、OS231b。
PCI Express开关、PCI桥(都是桥的一个例子)的PCI配置寄存器通过树构造与其他PCI设备关联起来,所以有时被从多个OS231a、OS231b参照。
因此,在实施方式2中,未将分配类别是“桥”的I/O设备110c分配给任何一个OS231a、OS231b,许可以只读(读取专用)方式从各OS231a、OS231b向PCI配置寄存器的访问。另外,关于向I/O设备110c的PCI配置寄存器的写入,仅对第3VM部的OS(图示省略)、物理计算机200的OS(图示省略)等特定的管理OS许可。其中,也可以针对OS231a、OS231b使桥以外的I/O设备110a、110b的存储器、寄存器或者PCI配置寄存器成为只读。
图13是示出实施方式2中的虚拟计算机系统100的存储器映射的图。
如图13所示,I/O设备110c的存储器空间向OS231a和OS231b这两方的虚拟存储器映射320(虚拟地址空间)映射。此时,存储器管理部224在映射表格中设定表示I/O设备110c的存储器空间是只读的访问属性。另外,存储器管理部224根据需要在管理OS的虚拟地址空间中映射I/O设备110c的存储器空间,在映射表格中设定表示I/O设备110c的存储器空间可写入的访问属性。
图14是示出实施方式2中的I/O分配表格229的初始化处理的流程图。
根据图14,说明实施方式2中的I/O分配表格229的初始化处理。
I/O分配表格229的初始化处理除了在实施方式1中说明了的处理(参照图5)以外,还包括S240和S241。以下,说明S240和S241。
在S240中,VMM部220的控制部228参照I/O设备110的PCI配置寄存器(包括设备类别的信息),判定I/O设备110是否为PCIExpress开关或者PCI桥。
在I/O设备110是PCI Express开关或者PCI桥的情况下(“是”),处理进入到S241。
在I/O设备110并非PCI Express开关和PCI桥中的任何一个的情况下(“否”),针对该I/O设备110的处理结束。
在S241中,VMM部220的控制部228针对I/O分配表格229,在与I/O设备110的“设备标识符”对应起来了的“设备类别”中设定“桥”。
通过S241,针对该I/O设备110的处理结束。
图15是示出实施方式2中的I/O设备110的分配处理的流程图。
根据图15,说明实施方式2中的I/O设备110的分配处理。
I/O设备110的分配处理除了在实施方式1中说明了的处理(参照图7)以外,还包括S332以及S333。以下,说明S332。
在S332中,VMM部220的I/O分配部223判定来自OS231a、OS231b的访问是否为向桥(I/O设备110c)的存储器空间或者寄存器空间的写入或者读入。
此时,I/O分配部223判定访问命令的内容是否为“写入”或者“读入”。另外,I/O分配部223参照I/O分配表格229,判定与访问目的地的I/O设备110的“设备标识符”对应起来了的“设备类别”是否为“桥”。在访问命令的内容是“写入”或者读入且“设备类别”是“桥”的情况下,从OS231a、OS231b的访问是向桥(I/O设备110c)的存储器空间或者寄存器空间的写入或者读入。
在来自OS231a、OS231b的访问是向桥(I/O设备110c)的存储器空间或者寄存器空间的写入的情况下(“是”[写入]),处理进入到S350。
在来自OS231a、OS231b的访问是向桥(I/O设备110c)的存储器空间或者寄存器空间的读入的情况下(“是”[读入]),处理进入到S333。
在来自OS231a、OS231b的访问并非向桥(I/O设备110c)的存储器空间或者寄存器空间的写入以及读入的情况下(“否”),处理进入到S331。
在S333中,I/O分配部223不进行向I/O分配表格229的登记,而向虚拟地址空间以只读形式映射该I/O设备110c的存储器空间以及寄存器空间。
在S333之后,处理进入到S342。
图16是示出实施方式2中的向PCI配置寄存器的访问处理的流程图。
根据图16,说明实施方式2中的向PCI配置寄存器的访问处理。
向PCI配置寄存器的访问处理除了在实施方式1中说明了的处理(参照图10)以外,还包括S421。以下,说明S421。
在S421中,VMM部220的PCI仿真部221判定来自OS231a、OS231b的访问是否为向桥(I/O设备110c)的PCI配置寄存器的写入或者读入。
在来自OS231a、OS231b的访问是向桥(I/O设备110c)的PCI配置寄存器的写入的情况下(“是”[写入]),处理进入到S450。
在来自OS231a、OS231b的访问是向桥(I/O设备110c)的PCI配置寄存器的读入的情况下(“是”[读入]),省略设备是否被分配给本OS的检查,进入到S442。
在来自OS231a、OS231b的访问并非向桥(I/O设备110c)的PCI配置寄存器的写入以及读入的情况下(“否”),处理进入到S430。
在S421中,PCI仿真部221也可以判定向桥(I/O设备110c)的PCI配置寄存器的写入的访问是否为来自规定的管理OS的访问。在向桥(I/O设备110c)的PCI配置寄存器的写入的访问是来自规定的管理OS的访问的情况下,并非进入S450而进入到S430。即,PCI仿真部221许可向PCI配置寄存器的写入。
通过实施方式2,能够防止某个OS231a随便地占有PCI桥(规定的种类的设备的一个例子)、或者随便地变更PCI桥的PCI配置寄存器所致的不合适。例如,能够防止其他OS231b不能向该PCI桥访问、无法跟踪该PCI桥以下的PCI的树构造这样的不合适。
在实施方式2中,例如,说明了以下那样的计算机(物理计算机200)。
访问管理部(VMM部220)在发生了向规定的种类的设备(例如桥)的PCI配置寄存器写入的访问的情况下,拒绝所述写入的访问。访问管理部在发生了向所述规定的种类的设备的PCI配置寄存器读取的访问的情况下,许可所述读取的访问。
访问管理部在发生了从规定的管理OS向所述规定的种类的设备的PCI配置寄存器写入的访问的情况下,许可所述写入的访问。
实施方式3.
说明在下次的虚拟计算机系统100中使用上次的I/O设备110a-110c的分配结果的方式。
以下,主要说明与实施方式1、2不同的事项。关于省略说明的事项,与实施方式1、2相同。
图17是实施方式3中的虚拟计算机系统100的结构图。
根据图17,说明实施方式3中的虚拟计算机系统100的结构。
物理计算机200的VMM部220除了在实施方式1中说明了的结构(参照图1)以外,还具备表格保存部225。
表格保存部225在VMM部220的执行结束时(或者VM部230a、230b的执行结束时)将I/O分配表格229(参照图12)保存到辅助存储装置213中。在物理计算机200的下次以后的起动时的I/O分配表格229的初始化处理中使用所保存的I/O分配表格229。
图18是示出实施方式3中的I/O分配表格229的初始化处理的流程图。
根据图18,说明实施方式3中的I/O分配表格229的初始化处理。
I/O分配表格229的初始化处理除了在实施方式2中说明了的处理(参照图14)以外,还包括S250至S253。以下,说明S250至S253。
在S240中,在I/O设备110并非PCI Express开关和PCI桥中的任何一个的情况下(“否”),处理进入到S250。
另外,在实施方式1的I/O分配表格229的初始化处理(参照图5)中应用实施方式3的情况下,在S230之后进入到S250。
在S250中,VMM部220的控制部228判定VMM部220是否以利用由表格保存部225所保存的上次(或者过去)的I/O分配表格229的模式(以下称为“继承模式”)起动。例如,用户将表示是否为继承模式的模式类别指定为起动选项而使VMM部220起动,控制部228根据起动选项的模式类别进行判定。另外,用户也可以通过物理计算机200的拨码(DIP)开关切换模式。以下,将上次(或者过去)的I/O分配表格229称为“保存分配表格”。
在VMM部220以继承模式起动了的情况下(“是”),处理进入到S251。
在VMM部220未以继承模式起动的情况下(“否”),针对该I/O设备110的处理结束。
在S251中,控制部228参照辅助存储装置213的保存分配表格,判定该I/O设备110是否被分配给了某一个OS231a、OS231b。即,控制部228参照保存分配表格,判定是否对与该I/O设备110的“设备标识符”对应起来了的“分配目的地”设定了某一个OS231a、OS231b。
在该I/O设备110被分配给了某一个OS231a、OS231b的情况下(“是”),处理进入到S252。
在该I/O设备110未被分配给任何一个OS231a、OS231b的情况下(“否”),针对该I/O设备110的处理结束。
在S252中,控制部228对分配了该I/O设备110的OS231(a或者b)分配该I/O设备110。即,控制部228针对I/O分配表格229,对与I/O设备110的“设备标识符”对应起来了的“分配目的地”设定被分配了该I/O设备110的OS231的标识符。
在S252之后,处理进入到S253。
在S253中,控制部228(或者存储器管理部224)参照I/O分配表格229,向被分配了该I/O设备110的OS231的虚拟地址空间映射该I/O设备110的存储器空间以及寄存器空间(物理地址空间)。
通过S253,针对该I/O设备110的处理结束。
通过实施方式3,利用在辅助存储装置213中保存了的I/O分配表格229,能够削减针对各OS231a、OS231b的I/O设备110a-110c的分配以及映射所需的开销。
在实施方式3中,例如,说明了以下那样的计算机(物理计算机200)。
访问管理部(VMM部220)在动作结束的情况下将设备分配表格(I/O分配表格229)保存为保存分配表格,在动作开始的情况下使用所述保存分配表格来生成新的设备分配表格。
Claims (9)
1.一种计算机,是向设备访问的多个OS即操作系统动作的计算机,其特征在于,具备:
设备分配存储部,存储用于将设备和被分配了设备的OS对应起来的设备分配表格;以及
访问管理部,在发生了向所述设备的访问的情况下,根据所述设备分配表格判定分配了所述设备的OS,在所述设备未被分配给任何一个OS的情况下,为了将所述设备和访问源的OS对应起来,更新所述设备分配表格来许可向所述设备的访问,在所述设备被分配给所述访问源的OS以外的OS的情况下,拒绝向所述设备的访问。
2.根据权利要求1所述的计算机,其特征在于,
所述设备分配表格是将所述设备的物理地址空间和被分配了所述设备的OS对应起来表示的数据,
所述访问管理部在所述设备未被分配给任何一个OS的情况下,进而,将所述设备分配表格表示的所述设备的物理地址空间映射到所述访问源的OS的虚拟地址空间。
3.根据权利要求2所述的计算机,其特征在于,
所述访问管理部在发生了向所述设备的PCI即外围组件互连总线配置寄存器的访问的情况下,根据所述设备分配表格判定被分配了所述设备的OS,在所述设备被分配给访问源的OS的情况下,许可所述访问,在所述设备未被分配给所述访问源的OS的情况下,拒绝所述访问。
4.根据权利要求3所述的计算机,其特征在于,
所述访问管理部在向所述PCI配置寄存器的访问是基地址的变更,且所述设备被分配给所述访问源的OS的情况下,根据变更后的基地址,更新所述设备分配表格内的所述设备的物理地址空间的信息,将更新后的所述信息表示的所述设备的物理地址空间映射到所述访问源的OS的虚拟地址空间。
5.根据权利要求4所述的计算机,其特征在于,
所述访问管理部在发生了向规定的种类的设备的PCI配置寄存器写入的访问的情况下,拒绝所述写入的访问,在发生了向所述规定的种类的设备的PCI配置寄存器读取的访问的情况下,许可所述读取的访问。
6.根据权利要求5所述的计算机,其特征在于,
所述访问管理部在发生了从所述多个OS以外的规定的管理OS向所述规定的种类的设备的PCI配置寄存器写入的访问的情况下,许可所述写入的访问。
7.根据权利要求1至6中的任意一项所述的计算机,其特征在于,
所述访问管理部在动作结束的情况下将所述设备分配表格保存为保存分配表格,在动作开始的情况下使用所述保存分配表格来生成新的设备分配表格。
8.一种访问管理方法,是由向设备访问的多个OS即操作系统动作的计算机执行的访问管理方法,其特征在于,
所述计算机具备存储用于将设备和被分配了设备的OS对应起来的设备分配表格的设备分配存储部、和访问管理部,
所述访问管理部在发生了向所述设备的访问的情况下,根据所述设备分配表格判定被分配了所述设备的OS,在所述设备未被分配给任何一个OS的情况下,为了将所述设备和访问源的OS对应起来,更新所述设备分配表格来许可向所述设备的访问,在所述设备被分配给所述访问源的OS以外的OS的情况下,拒绝向所述设备的访问。
9.一种访问管理程序,其特征在于,用于使电脑执行权利要求8所述的访问管理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/054427 WO2013125012A1 (ja) | 2012-02-23 | 2012-02-23 | 計算機、アクセス管理方法およびアクセス管理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104137088A true CN104137088A (zh) | 2014-11-05 |
Family
ID=49005232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280070396.6A Pending CN104137088A (zh) | 2012-02-23 | 2012-02-23 | 计算机、访问管理方法以及访问管理程序 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9558364B2 (zh) |
EP (1) | EP2819023A4 (zh) |
JP (1) | JP5925288B2 (zh) |
KR (1) | KR101571992B1 (zh) |
CN (1) | CN104137088A (zh) |
TW (1) | TW201335851A (zh) |
WO (1) | WO2013125012A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648877A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 资源申请、释放方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325563B (zh) * | 2015-06-15 | 2021-06-04 | 联想企业解决方案(新加坡)有限公司 | 用于标识电子设备的数据存储设备及相应的方法 |
CN107783821A (zh) * | 2017-01-25 | 2018-03-09 | 问众智能信息科技(北京)有限公司 | 车载一体虚拟化方法和装置 |
CN109981434A (zh) * | 2019-03-25 | 2019-07-05 | 华勤通讯技术有限公司 | 一种车载智能系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070078891A1 (en) * | 2003-09-30 | 2007-04-05 | Eric Lescouet | Operating systems |
US20080155222A1 (en) * | 2006-12-22 | 2008-06-26 | Megumu Hasegawa | Computer system |
US20090228882A1 (en) * | 2006-03-30 | 2009-09-10 | Yun Wang | Method and apparatus for supporting heterogeneous virtualization |
US20100146620A1 (en) * | 2008-12-08 | 2010-06-10 | Simeral Brad W | Centralized Device Virtualization Layer For Heterogeneous Processing Units |
JP2010186456A (ja) * | 2009-02-11 | 2010-08-26 | Saito Seisakusho:Kk | 電気自動車の運転音および警報の発生方法 |
US20110246755A1 (en) * | 2010-03-31 | 2011-10-06 | International Business Machines Corporation | Method and System for Automated Operating System Image Loading |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6086657A (ja) | 1983-10-19 | 1985-05-16 | Hitachi Ltd | 入出力装置の占有制御装置 |
US5414851A (en) * | 1992-06-15 | 1995-05-09 | International Business Machines Corporation | Method and means for sharing I/O resources by a plurality of operating systems |
JP2972501B2 (ja) | 1993-09-20 | 1999-11-08 | 富士通株式会社 | I/oサブシステム及びi/oサブシステムにおける排他制御方法 |
JPH1083373A (ja) | 1996-09-06 | 1998-03-31 | Mitsubishi Electric Corp | プログラマブルコントローラ |
US6453392B1 (en) * | 1998-11-10 | 2002-09-17 | International Business Machines Corporation | Method of and apparatus for sharing dedicated devices between virtual machine guests |
US6820164B2 (en) | 2001-04-17 | 2004-11-16 | International Business Machines Corporation | Peripheral component interconnect bus detection in logically partitioned computer system involving authorizing guest operating system to conduct configuration input-output operation with functions of pci devices |
US7392172B2 (en) | 2005-04-28 | 2008-06-24 | Hewlett-Packard Development Company, L.P. | Providing virtual device access via firmware |
JP2007220086A (ja) | 2006-01-17 | 2007-08-30 | Ntt Docomo Inc | 入出力制御装置、入出力制御システム及び入出力制御方法 |
JP5352848B2 (ja) | 2008-11-28 | 2013-11-27 | 株式会社日立製作所 | 仮想計算機の制御方法及び計算機装置 |
JP2010128943A (ja) | 2008-11-28 | 2010-06-10 | Toshiba Corp | 情報処理装置および情報処理装置の制御方法 |
JP4705982B2 (ja) | 2008-12-11 | 2011-06-22 | 株式会社日立製作所 | 情報処理システム、情報処理方法、及び管理装置 |
JP2011145912A (ja) | 2010-01-15 | 2011-07-28 | Fujitsu Ltd | 仮想計算機を使用したクライアントシステム、仮想計算機を使用したクライアント制御方法及びそのプログラム |
-
2012
- 2012-02-23 EP EP12869300.9A patent/EP2819023A4/en not_active Withdrawn
- 2012-02-23 US US14/371,891 patent/US9558364B2/en active Active
- 2012-02-23 CN CN201280070396.6A patent/CN104137088A/zh active Pending
- 2012-02-23 WO PCT/JP2012/054427 patent/WO2013125012A1/ja active Application Filing
- 2012-02-23 JP JP2014500820A patent/JP5925288B2/ja not_active Expired - Fee Related
- 2012-02-23 KR KR1020147023181A patent/KR101571992B1/ko active IP Right Grant
- 2012-04-13 TW TW101113163A patent/TW201335851A/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070078891A1 (en) * | 2003-09-30 | 2007-04-05 | Eric Lescouet | Operating systems |
US20090228882A1 (en) * | 2006-03-30 | 2009-09-10 | Yun Wang | Method and apparatus for supporting heterogeneous virtualization |
US20080155222A1 (en) * | 2006-12-22 | 2008-06-26 | Megumu Hasegawa | Computer system |
US20100146620A1 (en) * | 2008-12-08 | 2010-06-10 | Simeral Brad W | Centralized Device Virtualization Layer For Heterogeneous Processing Units |
JP2010186456A (ja) * | 2009-02-11 | 2010-08-26 | Saito Seisakusho:Kk | 電気自動車の運転音および警報の発生方法 |
US20110246755A1 (en) * | 2010-03-31 | 2011-10-06 | International Business Machines Corporation | Method and System for Automated Operating System Image Loading |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648877A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 资源申请、释放方法及装置 |
CN106648877B (zh) * | 2015-10-28 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 资源申请、释放方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5925288B2 (ja) | 2016-05-25 |
EP2819023A1 (en) | 2014-12-31 |
JPWO2013125012A1 (ja) | 2015-05-21 |
EP2819023A4 (en) | 2016-06-08 |
US20150302222A1 (en) | 2015-10-22 |
US9558364B2 (en) | 2017-01-31 |
WO2013125012A1 (ja) | 2013-08-29 |
TW201335851A (zh) | 2013-09-01 |
KR101571992B1 (ko) | 2015-11-25 |
KR20140124787A (ko) | 2014-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103761145B (zh) | 用于各个处理器的辅助中断虚拟化的访客中断控制器 | |
US10235515B2 (en) | Method and apparatus for on-demand isolated I/O channels for secure applications | |
US8151027B2 (en) | System management mode inter-processor interrupt redirection | |
KR100992291B1 (ko) | 가상 머신 모니터와 정책 가상 머신 간의 양방향 통신 방법 및 장치와, 가상 머신 호스트 | |
US20050076324A1 (en) | Virtual machine monitor | |
US20110197190A1 (en) | Virtualization method and virtual machine | |
US10387184B2 (en) | Address based host page table selection | |
US10552345B2 (en) | Virtual machine memory lock-down | |
US10402576B2 (en) | Safe physical function passthrough using virtual machine functions | |
US11099884B2 (en) | Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest | |
US10664304B2 (en) | Application memory protection using an extended page table switching virtual machine function | |
WO2017105758A1 (en) | Monitoring the operation of a processor | |
US9436495B2 (en) | Protection against interrupts in virtual machine functions | |
US20190377612A1 (en) | VCPU Thread Scheduling Method and Apparatus | |
CN104137088A (zh) | 计算机、访问管理方法以及访问管理程序 | |
US20170220369A1 (en) | Hypervisor post-write notification of control and debug register updates | |
CN102597972A (zh) | 虚拟计算机系统、区域管理方法及程序 | |
CN102428471A (zh) | 从系统管理模式确定信任级别的系统和方法 | |
JP6679419B2 (ja) | メモリ保護ユニット、メモリ管理ユニット、及びマイクロコントローラ | |
JP2016018555A (ja) | 動作環境の切換方法、コンピュータ、およびコンピュータ・プログラム | |
US20160216984A1 (en) | Protection against interrupts in virtual machine functions | |
US7752030B2 (en) | Virtualization as emulation support | |
Zabaljáuregui | Hardware assisted virtualization intel virtualization technology | |
JP2001142737A (ja) | メモリ管理装置 | |
KR20130042914A (ko) | 컴퓨터 시스템의 주변장치 가상화 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141105 |
|
RJ01 | Rejection of invention patent application after publication |