BACKGROUND OF THE INVENTION

A virtual machine (VM) may be or include a framework or environment created by for example a virtual machine monitor (VMM) on a host system. A VMM may provide facilities or resources on a host environment for an application, firmware or guest operating system (OS) that may run in the VM. Instructions may be conveyed from the VM to the VMM, and the VMM may execute such instructions for example on or through the host environment.

Multiple VMs may run on a host at particular time. While a VMM may allocate resources among the various VMs, a VMM may lack a way to efficiently transfer data, messages, statistics and other communication signals among the VMs that are running in a host environment

DETAILED DESCRIPTION OF THE INVENTION

Reference is made to FIG. 1, a schematic diagram of a host environment with a virtual machine in accordance with an exemplary embodiment of the invention. Host environment 50 may be or include a computer platform such as for example a mainframe, workstation, personal computer or other computing devices, and may include some or all of the components, peripherals or other resources that may be available to or connected with such host environment 50. Host environment 50 may include for example a host OS 48 that may for example control some or all of the operations of a central processing unit (CPU) 51 or other processor. Host OS 48 may manage or coordinate resources of host environment 50 such as for example a file system 46 that may allocate and index files such as for example data files. Host environment 50 may also include hardware 44 resources such as for example one or more disc drives or other mass storage memory device 45, modems, sound card, peripheral devices, etc. Some of such hardware or devices may be for example devices that meet or operate using a peripheral component interconnect (PCI) specification such as the specification described in IEEE Standard Physical and Environmental Layers for PCI Mezzanine Cards, IEEE Standard 1386-2001 and 1386.1-2001. A PCI device42 may include for example a printer, microphone, mouse, joystick, network card 52, disk adapter etc. Other devices and resources may be included or connected with a host environment 50, and a host may include other components. In some embodiments network card 52 may link different computers or components of computers that may communicate with a VM 40.

Host environment 50 may include a VM 40 that may include for example a guest OS 38 that may for example run an application 36. For example, in some embodiments a host 48 may run a Windows™ OS while VM 40 may run a UNIX™ OS. In some embodiments VM 40 may run for example a guest firmware 34 such as for example an extended firmware interface. In some embodiments more than one VM 40 such as VM 40 and VM 41 may run for example simultaneously in a host environment 50. Other operating systems, combinations of operating systems, firmware or applications may be run on a host environment in accordance with an embodiment of the invention.

Host Environment 50 may also include a VMM 20 that may create and manage a VM 40 and allocate resources within for example host environment 50to support one or more VM 40. In some embodiments, a host environment 50 may include a host OS 48 and a VMM 20 or a VMM 20 without a host OS48. In some embodiments VMM 20 may include a virtual management device 18 and a management core 16.

Virtual management device 18 may be a real or virtual device that may be created or defined for example by VMM 20 as a virtual device within host environment 50. In some embodiments, virtual management device 18 may not be connected to or represented by a real instance of a device, and may not be reflected in a real device that is connected to a hardware component. In some embodiments virtual management device 18 may be defined as a PCI device, though devices created in accordance with other types or definitions may be used. Such other types or definitions may include for example devices that comply with standards such as for example universal serial bus as is described in Universal Serial Bus Revision 2.0 Specification released on Apr. 27, 2000 USB. Other possible architectures and arrangements of components are possible. A host, VMM, and VM may include other components or arrangements of components.

In some embodiments, there may be created or defined in VMM 20 a management core 16 that may be or include one or more instructions, segments of code or software that may monitor, collect, direct or manage instructions sent by for example one or more VM 40 to or from one or more management devices 18 or other components of host network 50.

A VM 40 may include a management device driver 32 that may issue one or more instructions to management device 18. In some embodiments, module or driver 32 may be stored on for example a mass storage memory device 45, and may be or include one or more instructions, lines of code or collections of software that may interpret or translate instructions or commands from a VM 40 into a format or language that may be processed by virtual management device 18. In some embodiments driver 32 may comply with the standards used by PCI devices and a PCI bus. Other standards or formats for driver 32 may be used. In some embodiments a driver 32 may be updated, refreshed or reloaded by for example VMM 20 or by another component operably attached to host environment 50 without significant disruption to the operation of VM 40. Similarly, the software, code and the corresponding capabilities of device 18 and core 16 may be improved or updated without significantly disrupting VMM 40 or the VM 20 managed by VMM 40.

In operation, a function, process or application running for example on VM 40 may call for a transfer of data, a file or other information to for example host OS 48 or to for example another VM 41. An instruction may be passed from VM 40 by way of driver 32 directing virtual management device 18 to operate in for example a file transfer mode. Management core 16 may monitor instructions passed to virtual management device 18. When such an instruction arrives at device 18, core 16 may for example relay the instruction for processing or execution for example by host OS 48 or by or on another resource operably connected to host environment 50. For example, core 16 may receive or direct a file or data to or from for example file system 46. A file may be read for example in a memory device managed by a file system 46, and may for example be written back to device 18. Device18 may then transfer a file to VM 40. In some embodiments an instruction from VM 40 to device 18 may require the performance of a calculation by for example host OS 48, and the return of a result from such calculation back to device 18 for further transfer of such result to VM 40.

In another example, VM 40 and VM 41 may be operating concurrently and may be managed by VMM 20. As part of for example a scheduling task, it may be beneficial for VMM 20 to assess the resources needed by VM 40 and VM 41 at a particular time. To pass statistics or other data to for example VMM 20, a VM 40 may program virtual management device 18 by way of driver 32 to enter for example a statistics mode. Other suitable modes may be used. VM 40 may deliver for example usage and processing needs statistics to virtual management device 18. The delivered statistics may be monitored, collected or otherwise processed by for example management core 16 within for example VMM 20 to collect such statistics from one or more VMs 40. In some embodiments, such statistics may be conveyed to a host OS 48 or to another component or resource outside of VM 40 which is operably connected to host OS 48, where such statistics may be used as part of for example a scheduling of a CPU 51 to accommodate the processing requirements of VM 40.

In still another example, to facilitate delivering a message from VM 40 to another VM 41 or to an OS running on host OS 48, VM 40 may program virtual management device 18 by way of drive 32 to enter for example a chat mode. Other modes may be used. VM 40 may then initiate a message with virtual management device 18 or publish its existence and wait for a call. Other message passing methods may be used. Management core 16 may monitor virtual management device 18, and when a message is delivered to device 18, core 16 may route or direct a message received by device 18, as a destination, from device 18, as a source, to for example one or more other VM 41, as a destination. The message may likewise be directed to a host OS 48 or to another component or resource operably connected to host environment 50. In some embodiments, VMM 20 may deliver and initiate messages to VM 40 by way of device 18 and core 16.

Other functions and actions as may be performed by for example a PCI device may be programmed into for example driver 32 and device 18. In some embodiments of the invention, a transfer of instructions or files between VM 40 and VMM 20 by way of device 18 may avoid exposing internal memory or files between or among the VMM 20 and VM 40, or another VM 41, or host OS 48.

In some embodiments, messages, files or other data may be transferred to or from a VM 40 using one or more of input/output ports or direct memory access resources that are available to PCI devices such as device 18 in host environment 50. The size, format and length of data files to be transferred, whether fixed or variable, may in some embodiments be unlimited other than by the capacity of the host environment 50.

Reference is made to FIG. 2, a flow diagram depicting a method of instructing a virtual device from a virtual machine in accordance with an embodiment of the invention. In block 200, a VM may issue an instruction, by way of for example a driver in such VM, to a virtual management device. In some embodiments the virtual management device may be defined and created by for example a VMM to comply with specifications of a PCI device; other devices may be specified. In some embodiments, the instruction may be for example a read or write instruction for the transfer of data between the VMM and the VM, or between the VM and for example a file system of a host OS. The instruction may be received in a virtual management device. In block 202 instructions reaching the virtual management device may be monitored by for example a management core that may be defined in the VMM. The management core may accept the instruction, and convey it to for example host OS or to a CPU where it may be executed.

In some embodiments the instruction may order the virtual management device to enter into for example a chat mode; other suitable modes may be used. The management core may collect messages received by virtual management device as a destination and may forward such messages to for example a host, to another VM or to another resource outside of the VM. Similarly, a VM may instruct virtual management device to enter a file transfer mode. VM may instruct virtual management device to retrieve or open a file. A management core may direct the instruction to for example a host OS or to a file system managed by host OS. The file may be transferred or otherwise made accessible to the management core which may transfer the file to virtual management device, and from there to the VM. Other operations or series of operations may be used.

Reference is made to FIG. 3, a flow chart of a method in accordance with an embodiment of the invention. In block 300 an instruction may be issued from a VM to a virtual device. The instruction may be passed through a driver in the VM that is suitable for communicating with the virtual device.

In block 302, a component or segment of a VMM such as for example a management core may monitor and collect the instructions sent to the virtual device. In block 304, the VMM or the management core may direct the instruction or manage the execution of the instruction on a resource that is outside of the VM and the VMM such as for example hardware resources in a host environment. In some embodiments the instruction may include a message or data delivered to or from the VM. The VMM or the management core may collect data or files that are sent to or from a VM from for example a file system, from another VM or from another resource operably connected with a host environment.

SRC=http://www.freepatentsonline.com/7546599.html

PatentTips - Method, apparatus and system for instructing a virtual device from a virtual machine的更多相关文章

  1. Method, apparatus, and system for speculative abort control mechanisms

    An apparatus and method is described herein for providing robust speculative code section abort cont ...

  2. Method, apparatus and system for acquiring a global promotion facility utilizing a data-less transaction

    A data processing system includes a global promotion facility and a plurality of processors coupled ...

  3. PatentTips - Method for network interface sharing among multiple virtual machines

    BACKGROUND Many computing systems include a network interface card (NIC) to provide for communicatio ...

  4. Method not found: 'System.Data.Entity.ModelConfiguration.Configuration.XXX

    使用EF flument API  修改映射数据库字段的自增长 modelBuilder.Entity<Invoice>().Property(p => p.Id).HasDatab ...

  5. PatentTips - Method for booting a host device from an MMC/SD device

    FIELD OF THE INVENTION The present invention relates to a memory device and especially to the interf ...

  6. PatentTips - Method to manage memory in a platform with virtual machines

    BACKGROUND INFORMATION Various mechanisms exist for managing memory in a virtual machine environment ...

  7. PatentTips - Method and system for browsing things of internet of things on ip using web platform

    BACKGROUND The following disclosure relates to a method and system for enabling a user to browse phy ...

  8. PatentTips - Method for guest operating system integrity validation

    BACKGROUND The embodiments relate to guest operating system integrity validation, and more particula ...

  9. PatentTips - Method and Apparatus to Support Virtualization with Code Patches

    BACKGROUND As recognized in Revision 2.0 of the Intel® Virtualization Technology Specification for t ...

随机推荐

  1. 天意——thinkphp方法名大小写问题

    今天星期六,晚一小时上班.早起后背了会单词就骑自行车上班了.我是个有豪车梦的男生,每看到什么保时捷啊,雷克萨斯啊开过都会呆呆的看一会.现在虽然我买不上车,但是我可以靠我自己先买一台帅气的大摩托啊哈哈. ...

  2. Linux下QQ的使用并手动设置QQ文件保存路径

    一.背景&&目标 马化腾迟迟不肯做linux版本的QQ和微信,实在抠脚. 没有办法,要在linux上使用QQ,目前我找到最好的办法就是使用wine,然而wine这个杀千刀的又是个坑货, ...

  3. 【Linux端口大全】

    2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发生器 20端口 ...

  4. Linux系统中命令提示符解释-Linux中命令格式、分类-bash中的快捷键

    1.命令提示符 [root@mysqlserver01 opt]# [root@mysqlserver01 ~]# root 当前用户名 @ 固定的(格式) mysqlserver01 主机名 opt ...

  5. [Javascript] Specify this using .call() or .apply()

    A function's this argument is usually set implicitly, depending on how the function is called. Ordin ...

  6. shell学习四十九天----进程建立

    进程 前言:进程指的是运行中程序的一个实例.新进程由fork()与execve()等系统调用所起始,然后运行,知道他们下达exit()系统调用为止. linux系统都支持多进程.尽管计算机看起来像是一 ...

  7. hdu5305 Friends(dfs+map/hash)

    题目:pid=5305">http://acm.hdu.edu.cn/showproblem.php?pid=5305 题意:给定N个人和M条朋友关系,是朋友关系的两个人之间有两种联系 ...

  8. 我的vim配置记录

    一 总体介绍 配置路径,/etc/vim/vimrc,这个是系统的vim配置,假设一台PC多个用户使用,每一个用户的习惯不同的话,能够使用不同的配置.在用户文件夹下新建一个.vimrc的文件就能够了. ...

  9. 【Django】MEDIA的配置及用法

    如果需要在数据库中存储图片或视频类的数据,我们可以配置MEDIA. 下面的示例将以上传一张图片的形式来说明MEDIA的配置及用法. 第一步 settings.py # media配置 MEDIA_UR ...

  10. 获取Spring容器中Bean实例的工具类(Java泛型方法实现)

    在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean. 因此,实现一个获得bean实例的工具类,就很有必要. 以前,写了一个根据bean的名称和类型获取b ...