US9430034B2 - Data communication on a virtual machine - Google Patents
Data communication on a virtual machine Download PDFInfo
- Publication number
- US9430034B2 US9430034B2 US14/422,560 US201314422560A US9430034B2 US 9430034 B2 US9430034 B2 US 9430034B2 US 201314422560 A US201314422560 A US 201314422560A US 9430034 B2 US9430034 B2 US 9430034B2
- Authority
- US
- United States
- Prior art keywords
- data packets
- location
- physical memory
- memory pages
- media
- 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
Links
- 238000004891 communication Methods 0.000 title claims description 37
- 230000015654 memory Effects 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims description 33
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims 4
- 238000012545 processing Methods 0.000 description 33
- 230000008569 process Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
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/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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- 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
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
Definitions
- the technologies described herein pertain generally to media data communication to and from a media device via a network on a virtual machine executing on a server.
- Media data that is generated on, or received by, a virtual machine may not be reproduced on a client device absent customization of the virtual machine. Even with such customization, though, the reproduction of such media data may suffer from latency on the client device.
- Some systems may include one or more virtual machines that are each configured to generate one or more media data packets and to write the generated one or more media data packets into a corresponding one of plural storage blocks.
- the system may further include an IP layer that is configured to retrieve the media data packets from respective ones of the storage blocks and to pack the retrieved media data packets into one or more IP data packets, a coordinator layer that is configured to receive the one or more IP data packets from the IP layer and to write the one or more IP data packets to at least one of plural physical memory pages, and a privilege component that is configured to read the one or more IP data packets from the at least one of the physical memory pages and to write the one or more IP data packets to a physical interface for transmission to a media device.
- various techniques may be implemented to include receiving one or more media data packets in a virtual environment, transmitting the one or more media data packets to an IP layer, converting the media data packets into IP data packets, writing the IP data packets into at least one of plural physical memory pages, reading the IP data packets from the physical memory pages to a physical interface, and transmitting the IP data packets to a media device.
- various techniques may be implemented as executable instructions stored on one or more computer-readable mediums that may store executable instructions that include receiving one or more IP data packets from a source device, writing the one or more IP data packets into one or more physical memory pages, reading the one or more IP data packets from the one or more physical memory pages, and extracting one or more media data packets from the one or more IP data packets.
- FIG. 1 shows an example system by which data communication on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein;
- FIG. 2 shows an example virtual machine for which data communication may be implemented, arranged in accordance with at least some embodiments described herein;
- FIG. 3 shows another example system by which data communication on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein;
- FIG. 4 shows an example configuration of a processing flow of operations by which transmitting data from a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein;
- FIG. 5 shows an example configuration of a processing flow of operations by which receiving data at a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein;
- FIG. 6 shows a block diagram illustrating an example computing device that is arranged for data communication on a virtual machine, arranged in accordance with at least some embodiments described herein.
- FIG. 1 shows an example system 100 by which data communication on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein.
- example system 100 may include, at least, a server 102 communicatively coupled to a media device 118 via a network 120 .
- Server 102 may include one or more virtual machines 104 A, 104 B, 104 C, . . . 104 N; a physical memory 106 that includes one or more storage blocks 108 A, 108 B, 108 C, . . . , 108 N; an IP layer 110 ; a virtual network interface controller (NIC) 112 ; a privilege component 114 ; and a physical NIC 116 .
- NIC virtual network interface controller
- virtual machines 104 Unless context requires specific reference to one or more of virtual machines 104 A, 104 B, 104 C, . . . , 104 N, reference may be made collectively to “virtual machines 104 ,” below; similarly, reference may be made collectively to “storage blocks 108 ,” below.
- Server 102 may refer to a physical computer, or a computer hardware system, that is configured to execute one or more hosted computing services to serve the needs of one or more other computers on network 120 .
- Operating systems such as Microsoft Windows®, Linux, OS X, etc., may be executed on server 102 to allow a variety of software programs to be executed on or by one or more of the hardware components server 102 .
- Server 102 in some examples, may include one or more hardware components (not shown) including Central Processing Units (CPU), physical storage space, memories, network ports, network interface controller, etc.
- CPU Central Processing Units
- Virtual machines 104 may refer to one or more software emulations of one or more physical machines (e.g., computer) executing on server 102 . Virtual machines 104 may have appropriate operational access to cooperate with one or more of the hardware components of server 102 to execute software programs in the same manner as on physical machines. Notably, “virtual machine,” as referenced herein, may or may not have direct correspondence to any physical machines. Virtual machines 104 , in accordance with some examples, may be configured to generate media data packets that may be temporarily stored in storage blocks 108 , which may further be transmitted to or obtained by IP layer 110 .
- Physical memory 106 may refer to a physical component of server 102 that may be configured to store data on a temporary or permanent basis.
- the read/write speed of physical memory 106 may be exponentially faster than that of a hard disk drive or an optical drive based on moving mechanical parts. For instance, whereas a hard disk drive may have a read/write speed of around 0.2 GB/sec, the read/write speed of physical memory 106 may exceed 8 GB/sec. Such values are provided as examples only for the purpose of explanation, and not intended to be limiting in any manner.
- Physical memory 106 may be configured to store the media data packets generated by virtual machines 104 .
- physical memory may include storage blocks 108 .
- Storage blocks 108 may refer to one or more blocks of physical memory 106 , each of which may be designated to a respective one of virtual machines 104 . That is, each of storage blocks 108 may be configured to permanently or temporarily store the media data packets generated by each of virtual machines 104 , respectively.
- the access to a specific storage block e.g., storage block 108 A
- IP layer 110 may refer to one or more software components or modules, executing on server 102 , that may be configured to pack the media data packets into one or more IP data packets. That is, in accordance with some examples, IP layer 110 may be configured to retrieve the media data packets from respective ones of virtual machines 104 and pack, or convert, the media data packets into one or more IP data packets, i.e., organize the media data packets in accordance with Internet Protocol. For example, each IP data packet may be configured to include an IP header and a payload.
- the IP header may include a source IP address, e.g., the IP addresses of the respective ones of virtual machines 104 ; a destination IP address, e.g., the IP address of media device 118 ; and other metadata that may be utilized to transmit data to the destination IP address.
- the payload may include the data included in the media data packets.
- IP layer 110 may further include a transmission layer (not shown in the drawings) for the purpose of receiving the media data packets from virtual machines 104 .
- Virtual network interface controller (NIC) 112 may refer to a software component or module, executing on server 102 , that may be configured to emulate a physical NIC to transmit data between virtual machines 104 , via IP layer 110 .
- Virtual NIC 112 may have virtually identical transceiving properties as a physical NIC, except for transmitting data on a virtual network on server 102 between virtual machines 104 . That is, the transmission speed of virtual NIC 112 may be the same as that of a corresponding physical NIC that virtual NIC 112 emulates, e.g., 1,000 megabits per second (Mbps).
- virtual NIC 112 may be configured to transmit the IP data packets to privilege component 114 from IP layer 110 .
- Privilege component 114 may refer to a software component or module that may be configured to emulate a physical computer having or possessed with authority to access one or more of the hardware components of server 102 .
- privilege component 114 may be configured to assign storage blocks 108 to corresponding ones of virtual machines 104 , although privilege component 114 may not necessarily have access to the data stored in storage blocks 108 after the respective ones of storage blocks 108 are assigned to virtual machines 104 .
- privilege component 114 may control physical NIC 116 to transmit the IP data packets received from virtual NIC 112 over network 120 .
- Physical NIC 116 may refer to a physical component of server 102 that may be configured to transmit and receive data over network 120 under the control of privilege component 114 . That is, physical NIC 116 may transmit the IP data packets received from privilege component 114 to media device 118 that is communicatively coupled to server 102 over network 120 .
- Media device 118 may refer to a computing device that may be configured to receive and decode the IP data packets and to further extract one or more media data packets from the IP data packets. Media device 118 may be further configured to process the extracted media data contained in the media data packets. That is, media device 118 may generate audible sound or visible images based on the extracted media data. Similarly, media device 118 may be further configured to process media files and generate one or more media data packets. In accordance with some examples, media device 118 may be implemented as a wireless communication device. In some other examples, media device 118 may be implemented as a virtual machine executing on server 102 .
- Network 120 may refer to one or more communication links that follow at least one of multiple communication protocols.
- the communication protocols may include any mobile communications technology, e.g., GSM, CDMA, etc., depending upon the technologies supported by particular wireless service providers.
- the one or more communication links may be implemented utilizing non-cellular technologies such as Wi-FiTM, wireless local area network (WLAN or IEEE 802.11), WiMAXTM (Worldwide Interoperability for Microwave Access), BluetoothTM, hard-wired connections, e.g., cable, phone lines, and other analog and digital wireless voice and data transmission technologies.
- virtual machines 104 may be configured to generate one or more media data packets as part of the execution of one or more software programs, e.g., executing a media player program to play audio files.
- the one or more generated media data packets may be temporarily stored in one of storage blocks 108 , e.g., storage block 108 A, corresponding to a respective one of virtual machines 104 that generates the one or more media data packets, e.g., virtual machine 104 A.
- virtual machine 104 A may transmit the one or more generated media data packets to IP layer 110 , which may be configured to convert the one or more generated media data packets into one or more IP data packets.
- Virtual NIC 112 may be configured to obtain or receive the one or more IP data packets from IP layer 110 and to transmit the one or more IP data packets to privilege component 114 .
- privilege component 114 may transmit the one or more IP data packets to physical NIC 116 , which may further transmit the one or more IP data packets to media device 118 over network 120 .
- Media device 118 may be configured to decode the one or more IP data packets, extract the one or more media data packets from the one or more IP data packets, and process the media data contained in the one or more media data packets, e.g., play the sound wave on media device 118 . Processing the media data may further include, e.g., streaming video on media device 118 .
- media device 118 may be configured to generate one or more media data packets and to convert the one or more generated media data packets to one or more IP data packets. Further, media device 118 may transmit the one or more IP data packets to physical NIC 116 over network 120 .
- privilege component 114 may be configured to receive the one or more IP data packets from physical NIC 116 and to re-transmit the one or more IP data packets to virtual NIC 112 .
- IP layer 110 may be configured to receive or obtain the one or more IP data packets from virtual NIC 112 and to convert the IP data packets into one or more media data packets. The one or more media data packets may be transmitted to one of virtual machines 104 and processed thereon.
- FIG. 1 shows an example system 100 in which transmitting and receiving data on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein.
- FIG. 2 shows an example virtual machine 200 for which data communication may be implemented, arranged in accordance with at least some embodiments described herein.
- example virtual machine 200 may include, at least, a media application 202 and a media interceptor 204 .
- Media application 202 may refer to a software component, module, or program, e.g., a virtual audio player, that is executable on virtual machine 200 and that may be configured to process media files and to generate media data.
- Non-limiting examples of media application 202 may include Windows Media Player®, QuickTime Player®, iTunes®, Amarok, Audacious, Banshee, Mplayer, Rhythmbox, Totem, VLC, and xine.
- Media interceptor 204 may refer to a software component, module, or program executable on virtual machine 200 that may be configured to intercept the media data and packetize the media data in to one or more media data packets when media application 202 submits the media data to a virtual media adapter (not shown in FIG. 2 ).
- the one or more media data packets may be in a format that can be played without a proprietary coder-decoder (CODEC).
- CDEC proprietary coder-decoder
- “intercept” may refer to obtaining media data when the media data are to be transmitted to a virtual media adapter, which may or may not exist in example system 100 .
- the one or more media data packets may be transmitted to IP layer 110 by media interceptor 204 .
- media interceptor 204 may be implemented as an audio interceptor to intercept one or more audio data packets generated by a virtual audio player and, further, to transmit the one or more audio data packets to IP layer 110 .
- FIG. 2 shows an example virtual machine 200 by which transmitting and receiving data on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein.
- FIG. 3 shows another example system 300 by which data communication on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein.
- example system 300 in addition to the features included in example system 100 , may include, at least, a coordinator layer 302 and one or more physical memory pages 304 .
- Coordinator layer 302 may refer to a software component or module that is executable on server 102 and that may be configured to receive one or more IP data packets from IP layer 110 and to write the IP data packets into physical memory pages 304 .
- Coordinator layer 302 may also be configured to read one or more IP data packets from physical memory pages 304 and to transmit the one or more IP data packets to IP layer 110 .
- coordinator layer 302 may include one or more buffers configured to temporarily store the one or more IP data packets.
- Physical memory pages 304 may refer to one or more memory partitions of physical memory 106 that may be configured to temporarily store the one or more IP data packets received from coordinator layer 302 . That is, privilege component 114 may be configured to designate one or more of physical memory pages 304 in physical memory 106 to store the IP data packets. In addition, physical memory pages 304 may be configured to be accessible primarily, if not exclusively, to coordinator layer 302 and privilege component 304 . Since the read/write speed of physical memory 106 may be faster than the transmission speed via virtual NIC 112 , transmitting and receiving IP data packets via physical memory pages 304 may be more efficient than transmission via virtual NIC 112 .
- coordinator layer 302 may detect whether physical memory pages 304 have enough storage capacity to store the one or more IP data packets. If so, coordinator layer 302 may be configured to write the one or more IP data packets into one or more of physical memory pages 304 . If not, coordinator layer 302 may be configured to adjust the location of the one or more IP data packets, e.g., write only portions of the one or more IP data packets into physical memory 106 and write the rest of the one or more IP data packets when physical memory pages 304 have enough space.
- privilege component 114 may also detect whether physical memory pages 304 have enough storage capacity to store the one or more IP data packets when physical NIC 116 receives the one or more IP data packets from media device 118 . If so, privilege component 114 may be configured to write the one or more IP data packets into physical memory pages 304 . If not, similar to coordinator layer 302 , privilege component 114 may be configured to adjust the location of the one or more IP data packets, e.g., write only portions of the one or more IP data packets into physical memory and write the rest of the one or more IP data packets when physical memory pages 304 have enough storage capacity.
- FIG. 3 shows another example system 300 by which transmitting and receiving data on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein.
- FIG. 4 shows an example configuration of a processing flow 400 of operations by which transmitting data on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein.
- processing flow 400 may include sub-processes executed by various components that are part of example systems 100 and 300 .
- processing flow 400 is not limited to such components, and modification may be made by re-ordering two or more of the sub-processes described here, eliminating at least one of the sub-processes, adding further sub-processes, substituting components, or even having various components assuming sub-processing roles accorded to other components in the following description.
- Processing flow 400 may include various operations, functions, or actions as illustrated by one or more of blocks 402 , 404 , 406 , 408 , and 410 . Processing may begin at block 402 .
- Block 402 may refer to IP layer 110 receiving one or more media data packets from virtual machines 104 . That is, media application 202 , as a software component executable on virtual machines 104 , may be configured to process media files and to generate one or more media data packets. Media interceptor 204 , as another software component executable on virtual machine 104 , may be configured to intercept the one or more media data packets and to transmit the media data packets to IP layer 110 . IP layer 110 may be configured to receive, or obtain, the one or more media data packets from media interceptor 204 . Processing may continue from block 402 to 404 .
- Block 404 may refer to IP layer 110 converting the one or more media data packets into one or more IP data packets. That is, in accordance with some examples, IP layer 110 may be configured to retrieve the media data packets from media interceptor 204 and to convert, or pack, the media data packets into one or more IP data packets. In accordance with some examples, IP layer 110 may be configured to notify coordinator layer 302 when IP layer 110 has received the one or more media data packets and to transmit the one or more IP data packets to coordinator layer 302 . Processing may continue from block 404 to 406 .
- Block 406 may refer to coordinator layer 302 writing the one or more IP data packets into physical memory pages 304 .
- the one or more IP data packets may not be written to physical memory pages 304 at the same time, e.g., physical memory pages 304 may not have enough space available for the one or more data packets.
- Coordinator layer 302 may be configured to include one or more buffers to temporarily store the one or more IP data packets. Processing may continue from block 406 to 408 .
- Block 408 (Read IP Data Packets from Physical Memory Pages) may refer to privilege component 114 reading the one or more IP data packets from physical memory pages 304 . Similarly, the one or more IP data packets may not be read from physical memory pages at the same time. Privilege component 114 may be configured to include one or more buffers to temporarily store the one or more IP data packets. Processing may continue from block 408 to 410 .
- Block 410 may refer to privilege component 114 transmitting the one or more IP data packets to media device 118 , via physical NIC 116 . That is, privilege component 114 may transmit the one or more IP data packets to physical NIC 116 , which may be configured to further transmit the one or more IP data packets over network 120 .
- network 120 may refer to a wireless communication link.
- block 410 may refer to coordinator layer 302 transmitting the IP data packets to virtual machine 104 A.
- FIG. 4 shows an example configuration of a processing flow 400 of operations by which transmitting data on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein.
- FIG. 5 shows an example configuration of a processing flow 500 of operations by which receiving data on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein.
- processing flow 500 may include sub-processes executed by various components that are part of example systems 100 and 300 .
- processing flow 500 is not limited to such components, and modification may be made by re-ordering two or more of the sub-processes described here, eliminating at least one of the sub-processes, adding further sub-processes, substituting components, or even having various components assuming sub-processing roles accorded to other components in the following description.
- Processing flow 500 may include various operations, functions, or actions as illustrated by one or more of blocks 502 , 504 , 506 , 508 , and 510 . Processing may begin at block 502 .
- Block 502 may refer to physical NIC 116 receiving one or more IP data packets from a source device, e.g., media device 118 .
- media device 118 may be configured to process media files and to generate one or more media data packets. Further, media device 118 may be configured to convert the one or more media data packets into one or more IP data packets and to transmit the one or more IP data packets over network 120 that includes a wireless communication link.
- Physical NIC 116 may be configured to receive the one or more IP data packets from media device 118 . Processing may continue from block 502 to 504 .
- Block 504 may refer to privilege component 114 writing the one or more IP data packets to physical memory pages 304 . That is, privilege component 114 may receive, or obtain, the one or more IP data packets from physical NIC 116 and write the one or more IP data packets into physical memory pages 304 . Processing may continue from block 504 to 506 .
- Block 506 may refer to coordinator layer 302 reading the one or more IP data packets from physical memory pages 304 .
- Coordinator layer 302 may be configured to receive, or obtain, the one or more IP data packets from physical memory pages 304 and, further, to transmit the one or more IP data packets to IP layer 110 . Processing may continue from block 506 to 508 .
- Block 508 may refer to IP layer 110 extracting one or more media data packets from the one or more IP data packets received from coordinator layer 302 .
- IP layer 110 may further transmit the one or more media data packets to a corresponding virtual machine, e.g., virtual machine 104 A. Processing may continue from block 508 to 510 .
- coordinator layer 302 may be configured to receive the one or more IP data packets from the virtual machine via physical memory pages 304 . Further, to extract the one or more media data packets from the one or more IP data packets, IP layer 110 may be configured to release one or more computing resources, e.g., one or more cores of a Central Processing Unit, for decoding the one or more IP data packets.
- computing resources e.g., one or more cores of a Central Processing Unit
- Block 510 may refer to one of virtual machines 104 playing the one or more media data packets on a virtual media player.
- virtual machine 104 A may be configured to receive the one or more media data packets and play the media data packets on media application 202 .
- FIG. 5 shows an example configuration of a processing flow 500 of operations by which receiving data on a virtual machine may be implemented, arranged in accordance with at least some embodiments described herein.
- FIG. 6 shows a block diagram illustrating an example computing device that is arranged for data communication on a virtual machine, arranged in accordance with at least some embodiments described herein.
- FIG. 6 shows an illustrative computing embodiment, in which any of the processes and sub-processes described herein may be implemented as computer-readable instructions stored on a computer-readable medium.
- the computer-readable instructions may, for example, be executed by a processor of a device, as referenced herein, having a network element and/or any other device corresponding thereto, particularly as applicable to the applications and/or programs described above corresponding to the example wireless communication system.
- a computing device 600 may typically include one or more processors 604 and a system memory 606 .
- a memory bus 608 may be used for communicating between processor 604 and system memory 606 .
- processor 604 may be of any type including but not limited to a microprocessor ( ⁇ P), a microcontroller ( ⁇ C), a digital signal processor (DSP), or any combination thereof.
- the processor 604 may include one or more levels of caching, such as a level one cache 610 and a level two cache 612 , a processor core 614 , and registers 616 .
- An example processor core 614 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof.
- An example memory controller 618 may also be used with the processor 604 , or in some implementations the memory controller 618 may be an internal part of the processor 604 .
- system memory 606 may be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof.
- System memory 606 may include an operating system 620 , one or more applications 622 , and program data 624 .
- Application 622 may be configured to data communication on a virtual machine as described previously with respect to FIGS. 1-5 and further include a client application 640 .
- Client application 640 may be configured to perform the executable instructions stored on system memory 606 .
- the executable instructions may include processing flows described in FIGS. 4 and 5 .
- Program data 624 may include a table 660 , which may be useful for data communication on a virtual machine as described herein.
- Table 660 may refer to a data structure to store and organize data, e.g., internet indexing services. Examples of the data structure may include array data structure, record, hash, union, etc.
- System memory 606 is an example of computer storage media.
- Computer storage media may include, but not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by computing device 600 . Any such computer storage media may be part of computing device 600 .
- the network communication link may be one example of a communication media.
- Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media.
- a “modulated data signal” may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media.
- RF radio frequency
- IR infrared
- the term computer readable media as used herein may include both storage media and communication media.
- the implementer may opt for a mainly hardware and/or firmware vehicle; if flexibility is paramount, the implementer may opt for a mainly software implementation; or, yet again alternatively, the implementer may opt for some combination of hardware, software, and/or firmware.
- a signal bearing medium examples include, but are not limited to, the following: a recordable type medium such as a floppy disk, a hard disk drive, a CD, a DVD, a digital tape, a computer memory, etc.; and a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.).
- a typical data processing system generally includes one or more of a system unit housing, a video display device, a memory such as volatile and non-volatile memory, processors such as microprocessors and digital signal processors, computational entities such as executing systems, drivers, graphical user interfaces, and applications programs, one or more interaction devices, such as a touch pad or screen, and/or control systems including feedback loops and control motors, e.g., feedback for sensing position and/or velocity; control motors for moving and/or adjusting components and/or quantities.
- a typical data processing system may be implemented utilizing any suitable commercially available components, such as those typically found in data computing/communication and/or network computing/communication systems.
- any two components so associated can also be viewed as being “operably connected”, or “operably coupled”, to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being “operably couplable”, to each other to achieve the desired functionality.
- operably couplable include but are not limited to physically mateable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/079041 WO2015003312A1 (fr) | 2013-07-09 | 2013-07-09 | Communication de données sur une machine virtuelle |
Publications (2)
Publication Number | Publication Date |
---|---|
US20150234453A1 US20150234453A1 (en) | 2015-08-20 |
US9430034B2 true US9430034B2 (en) | 2016-08-30 |
Family
ID=52279289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/422,560 Expired - Fee Related US9430034B2 (en) | 2013-07-09 | 2013-07-09 | Data communication on a virtual machine |
Country Status (2)
Country | Link |
---|---|
US (1) | US9430034B2 (fr) |
WO (1) | WO2015003312A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170046185A1 (en) * | 2015-08-13 | 2017-02-16 | Red Hat Israel, Ltd. | Page table based dirty page tracking |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10628192B2 (en) | 2015-12-24 | 2020-04-21 | Intel Corporation | Scalable techniques for data transfer between virtual machines |
US10360058B2 (en) * | 2016-11-28 | 2019-07-23 | International Business Machines Corporation | Input/output component selection for virtual machine migration |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040218527A1 (en) * | 2003-05-01 | 2004-11-04 | Schwartz Mayer D | Method and apparatus for measuring quality of service parameters of networks delivering real time MPEG video |
US20090016217A1 (en) * | 2007-07-13 | 2009-01-15 | International Business Machines Corporation | Enhancement of end-to-end network qos |
EP2075688A1 (fr) | 2007-12-27 | 2009-07-01 | Intel Corporation | Sous-système audio partageant un environnement virtualisé |
US20090219935A1 (en) * | 2008-02-29 | 2009-09-03 | Sun Microsystems, Inc. | Method and system for transferring packets to a guest operating system |
US20090240793A1 (en) * | 2008-03-18 | 2009-09-24 | Vmware, Inc. | Memory Buffer Management Method and System Having Multiple Receive Ring Buffers |
WO2010135430A1 (fr) | 2009-05-19 | 2010-11-25 | Vmware, Inc. | Entrées/sorties simplifiées dans des systèmes de machines virtuelles |
US20110046759A1 (en) | 2009-08-18 | 2011-02-24 | Samsung Electronics Co., Ltd. | Method and apparatus for separating audio object |
US8102881B1 (en) * | 2009-09-08 | 2012-01-24 | Amazon Technologies, Inc. | Streamlined guest networking in a virtualized environment |
US20120023195A1 (en) * | 2005-09-21 | 2012-01-26 | Infoblox Inc. | Event management |
US8429675B1 (en) | 2008-06-13 | 2013-04-23 | Netapp, Inc. | Virtual machine communication |
CN103077153A (zh) | 2013-02-01 | 2013-05-01 | 北京航空航天大学 | 基于授权拷贝的虚拟机域间通信通道系统 |
US9152568B1 (en) * | 2011-12-05 | 2015-10-06 | Seagate Technology Llc | Environmental-based device operation |
-
2013
- 2013-07-09 US US14/422,560 patent/US9430034B2/en not_active Expired - Fee Related
- 2013-07-09 WO PCT/CN2013/079041 patent/WO2015003312A1/fr active Application Filing
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040218527A1 (en) * | 2003-05-01 | 2004-11-04 | Schwartz Mayer D | Method and apparatus for measuring quality of service parameters of networks delivering real time MPEG video |
US20120023195A1 (en) * | 2005-09-21 | 2012-01-26 | Infoblox Inc. | Event management |
US20090016217A1 (en) * | 2007-07-13 | 2009-01-15 | International Business Machines Corporation | Enhancement of end-to-end network qos |
US20090171677A1 (en) | 2007-12-27 | 2009-07-02 | Abhishek Singhal | Audio subsystem sharing in a virtualized environment |
EP2075688A1 (fr) | 2007-12-27 | 2009-07-01 | Intel Corporation | Sous-système audio partageant un environnement virtualisé |
US20090219935A1 (en) * | 2008-02-29 | 2009-09-03 | Sun Microsystems, Inc. | Method and system for transferring packets to a guest operating system |
US20090240793A1 (en) * | 2008-03-18 | 2009-09-24 | Vmware, Inc. | Memory Buffer Management Method and System Having Multiple Receive Ring Buffers |
US8429675B1 (en) | 2008-06-13 | 2013-04-23 | Netapp, Inc. | Virtual machine communication |
WO2010135430A1 (fr) | 2009-05-19 | 2010-11-25 | Vmware, Inc. | Entrées/sorties simplifiées dans des systèmes de machines virtuelles |
US20110046759A1 (en) | 2009-08-18 | 2011-02-24 | Samsung Electronics Co., Ltd. | Method and apparatus for separating audio object |
US8102881B1 (en) * | 2009-09-08 | 2012-01-24 | Amazon Technologies, Inc. | Streamlined guest networking in a virtualized environment |
US9152568B1 (en) * | 2011-12-05 | 2015-10-06 | Seagate Technology Llc | Environmental-based device operation |
CN103077153A (zh) | 2013-02-01 | 2013-05-01 | 北京航空航天大学 | 基于授权拷贝的虚拟机域间通信通道系统 |
Non-Patent Citations (11)
Title |
---|
Barham, P., et al., "Xen and the art of virtualization," In 19th ACM Symposium on Operating Systems Principles, vol. 37, No. 5, pp. 164-177 (Oct. 2003). |
Cheng, M. K., "iPhone Jailbreaking Under the DMCA: Towards a Functionalist Approach in Anti-Circumvention," In Berkeley Technology Law Journal, vol. 25, No. 215, pp. 216-246 (Jan. 2010). |
Huang, W., et al., "Virtual machine aware communication libraries for high performance computing," In: Proceedings of Super Computing, pp. 1-12 (Nov. 2007). |
International search report and written opinion for PCT application No. PCT/CN2013/079041 mailed on Mar. 27, 2014. |
Kim, K., et al. "Inter-domain Socket Communications Supporting High Performance and Full Binary Compatibility on Xen," In: Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, pp. 11-20 (Mar. 2008). |
Menon, A., et al., "Diagnosing performance overheads in the xen virtual machine environment," In Proceedings of Virtual Execution Environments, pp. 13-23 (May 2005). |
Menon, A., et al., "Optimizing network virtualization in Xen," In: Proceedings of USENIX Annual Technical Conference, pp. 14 (Sep. 2006). |
Richardson, T., et al., "Virtual network computing," IEEE Internet Computing, vol. 2, No. 1, pp. 33-38 (Jan./Feb. 1998). |
Rosenblum, M., and Garfinkel, T., "Virtual Machine Monitors: Current Technology and Future Trends," IEEE Computer, vol. 38, No. 5, pp. 39-47 (May 2005). |
Wang, J., et al., "XenLoop: A Transparent High Performance Inter-VM Network Loopback," In Proceedings of 17th International Symposium on High Performance Distributed Computing, pp. 109-118 (Jun. 2008). |
Zhang, X., et al., "XenSocket: A high-throughput interdomain transport for virtual machines," In Proceedings of Middleware, vol. 4834, pp. 184-203 (Nov. 2007). |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170046185A1 (en) * | 2015-08-13 | 2017-02-16 | Red Hat Israel, Ltd. | Page table based dirty page tracking |
US9870248B2 (en) * | 2015-08-13 | 2018-01-16 | Red Hat Israel, Ltd. | Page table based dirty page tracking |
Also Published As
Publication number | Publication date |
---|---|
US20150234453A1 (en) | 2015-08-20 |
WO2015003312A1 (fr) | 2015-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9462502B2 (en) | Limiting data usage of a device connected to the internet via tethering | |
US7921178B2 (en) | Device, system, and method of accessing storage | |
US9864538B1 (en) | Data size reduction | |
US20200226077A1 (en) | Network interface device with non-volatile memoery expreess over fabrics (nvme-of) support over wide-area networks | |
US20180098151A1 (en) | Enhanced multichannel audio interception and redirection for multimedia devices | |
US9066225B2 (en) | Network selection scheme | |
US9398117B2 (en) | Protocol data unit interface | |
US9912750B2 (en) | Data path selection for network transfer using high speed RDMA or non-RDMA data paths | |
US20180027074A1 (en) | System and method for storage access input/output operations in a virtualized environment | |
US9225770B2 (en) | Cloud computing secure data storage | |
TW202219782A (zh) | 用於儲存的系統、以及用於實行通訊管理的裝置及方法 | |
US9792062B2 (en) | Acceleration of memory access | |
US9430034B2 (en) | Data communication on a virtual machine | |
US9231987B2 (en) | Data center access and management settings transfer | |
US11792113B2 (en) | Information centric network dynamic compute orchestration | |
US11394776B2 (en) | Systems and methods for transport layer processing of server message block protocol messages | |
EP2873294B1 (fr) | Schéma de gestion de distribution sélective | |
US9684672B2 (en) | System and method for data storage | |
US20140297797A1 (en) | Broadcasting media from a stationary source to multiple mobile devices over wi-fi | |
US9811526B2 (en) | Computing resource provisioning based on deduplication | |
US20180098150A1 (en) | Multichannel audio interception and redirection for multimedia devices | |
US20100332687A1 (en) | METHOD AND APPARATUS FOR RESTRICTING THE EXECUTION OF OPEN SERVICES GATEWAY INITIATIVE (OSGi) LIFE CYCLE COMMANDS | |
US10255213B1 (en) | Adapter device for large address spaces | |
US10877911B1 (en) | Pattern generation using a direct memory access engine | |
JP2018504689A5 (fr) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
AS | Assignment |
Owner name: CRESTLINE DIRECT FINANCE, L.P., TEXAS Free format text: SECURITY INTEREST;ASSIGNOR:EMPIRE TECHNOLOGY DEVELOPMENT LLC;REEL/FRAME:048373/0217 Effective date: 20181228 |
|
AS | Assignment |
Owner name: EMPIRE TECHNOLOGY DEVELOPMENT LLC, WASHINGTON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CRESTLINE DIRECT FINANCE, L.P.;REEL/FRAME:049924/0794 Effective date: 20190501 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20200830 |