WO2021218935A1 - 计算机设备上的虚拟机的管理方法、装置、介质和系统 - Google Patents

计算机设备上的虚拟机的管理方法、装置、介质和系统 Download PDF

Info

Publication number
WO2021218935A1
WO2021218935A1 PCT/CN2021/090035 CN2021090035W WO2021218935A1 WO 2021218935 A1 WO2021218935 A1 WO 2021218935A1 CN 2021090035 W CN2021090035 W CN 2021090035W WO 2021218935 A1 WO2021218935 A1 WO 2021218935A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
virtual
real
computer device
started
Prior art date
Application number
PCT/CN2021/090035
Other languages
English (en)
French (fr)
Inventor
林军
吕达夫
Original Assignee
安谋科技(中国)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 安谋科技(中国)有限公司 filed Critical 安谋科技(中国)有限公司
Publication of WO2021218935A1 publication Critical patent/WO2021218935A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Definitions

  • This application relates to the field of computer technology, and in particular to a method, device, medium, and system for managing virtual machines on computer equipment.
  • Virtualization technology refers to virtualizing a group of hardware into multiple groups of hardware on a complete computer hardware platform through software methods or hardware devices, and providing them to multiple independently running software systems (usually operating systems) as independent The technology of the operating environment.
  • a computer device with virtualization technology can run multiple independent operating systems in parallel. These operating systems share hardware resources (such as memory, I/O interrupts, storage, and CPU) during operation, and remain independent of each other. Think of it as multiple independent computers running.
  • These independently-running operating systems are usually called virtual machines (Virtual Machine, VM). These operating systems do not interfere with each other. For example, the memory that one virtual machine can access is inaccessible to another virtual machine, thus achieving multiple Isolation between operating systems.
  • the virtual machine monitor is responsible for the scheduling of the VCPU.
  • the VM to which the VCPU belongs starts to execute on this PCPU. Due to these complicated scheduling processes, the real-time performance will be reduced, and it cannot be applied to areas that have special needs for real-time performance.
  • the embodiments of the application provide a method, device, medium, and system for managing virtual machines on computer equipment.
  • the method for managing virtual machines on computer equipment provided by the embodiments of the application allocates exclusive rights to virtual machines with real-time requirements.
  • the physical CPU in order to prevent the physical CPU from being scheduled for use by other virtual machines, and to meet the needs of users for applications with high real-time requirements.
  • an embodiment of the present application provides a method for managing a virtual machine on a computer device, where the computer device has multiple physical CPUs; and the method includes: determining whether the virtual machine requested to be started on the computer device has a real-time requirement; In the case where it is determined that the virtual machine requested to be started has real-time requirements, at least one physical CPU of the computer device is allocated to the virtual machine, wherein at least one physical CPU will run the virtual machine that is only started by the request; When the started virtual machine does not have real-time requirements, at least one virtual CPU is allocated to the virtual machine.
  • the foregoing method further includes: determining whether the virtual machine requested to be started on the computer device has a real-time requirement includes: reading attribute information of the virtual machine requested to be started on the computer device; Based on the read attribute information, it is determined whether the virtual machine requested to be started on the computer device has real-time requirements.
  • the foregoing method further includes: allocating a first virtual CPU to a first virtual machine that does not have real-time requirements; and allocating a second virtual CPU to a second virtual machine that does not have real-time requirements.
  • CPU where the first virtual CPU and the physical CPU where the virtual CPU is located are independent of the physical CPU allocated for the virtual machine with real-time requirements.
  • the first virtual CPU and the second virtual CPU are located on the same physical CPU. It can be understood that for the first virtual machine and the second virtual machine that do not have real-time requirements, since both need to poll the resources of the same physical CPU, there will be a delay, which can be applied to application scenarios where users have low real-time requirements.
  • the foregoing computer device includes multiple external devices
  • the foregoing method further includes: the virtual machine requested to be started on the computer device can directly access at least one of the multiple external devices; or, the computer The virtual machine requested to be started on the device can access at least one of the multiple virtual devices corresponding to the multiple external devices simulated in the computer device.
  • an embodiment of the present application provides a virtual machine management apparatus on a computer device, including:
  • the judgment module is used to judge whether the virtual machine requested to be started on the computer device has real-time requirements
  • the configuration module is used to allocate at least one physical CPU of a computer device to the virtual machine when it is judged that the virtual machine requested to be started has real-time requirements, wherein at least one physical CPU will run the virtual machine that is only started by the request ; In the case where it is determined that the virtual machine requested to be started does not have real-time requirements, at least one virtual CPU is allocated to the virtual machine.
  • the foregoing apparatus further includes: the judging module judges whether the virtual machine requested to be started on the computer device has a real-time requirement in the following manner:
  • the foregoing apparatus further includes: the foregoing configuration module is further configured to:
  • the physical CPUs where the first virtual CPU and the second virtual CPU are located are independent of the physical CPUs allocated to the virtual machines with real-time requirements.
  • the foregoing computer device includes multiple external devices
  • the foregoing virtual machine management apparatus further includes an access control module for controlling the virtual machine requested to be started on the computer device to directly access multiple external devices.
  • At least one of the external devices; or, the virtual machine requested to be started on the control computer device can access at least one of the multiple virtual devices corresponding to the multiple external devices simulated in the computer device.
  • the embodiments of the present application provide a computer-readable medium with instructions stored on the computer-readable medium.
  • the instructions When executed on a computer, the computer executes the first aspect and various possible implementations of the first aspect. Any one of the methods for managing virtual machines on computer equipment.
  • an electronic device including:
  • Memory used to store instructions executed by one or more processors of the system
  • the processor is one of the processors of the system, and is used to execute any one of the foregoing first aspect and various possible implementations of the first aspect, a method for managing a virtual machine on a computer device.
  • Figure 1(a) shows an architecture diagram of a virtual machine management system in related technologies
  • Figure 1(b) shows an architecture diagram of another virtual machine management system in related technologies
  • Figure 2 shows an architecture diagram of a virtual machine management system according to some embodiments of the present application
  • Fig. 3 shows an architecture diagram of a virtual machine management system of a car according to some embodiments of the present application
  • Fig. 4 shows a flow chart of a virtual machine management method according to some embodiments of the present application
  • Figure 5 shows a structural block diagram of a virtual machine management apparatus according to some embodiments of the present application.
  • Fig. 6 shows a block diagram of a system according to some embodiments of the present application.
  • Fig. 7 shows a block diagram of a system on chip (SoC) according to some embodiments of the present application.
  • SoC system on chip
  • the illustrative embodiments of the present application include, but are not limited to, virtual machine management methods, devices, and media and systems thereof.
  • module can refer to or include an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) that executes one or more software or firmware programs, and /Or memory, combinational logic circuits, and/or other suitable hardware components that provide the described functions, or may be part of these hardware components.
  • ASIC application specific integrated circuit
  • processor shared, dedicated, or group
  • processor shared, dedicated, or group
  • combinational logic circuits and/or other suitable hardware components that provide the described functions, or may be part of these hardware components.
  • the processor may be a microprocessor, a digital signal processor, a microcontroller, etc., and/or any combination thereof.
  • the processor may be a single-core processor, a multi-core processor, etc., and/or any combination thereof.
  • this application reads the attribute information of the virtual machine (for example, the virtual machine corresponding to the control logic of the car electronic instrument panel needs to meet high real-time performance, and the virtual machine corresponding to the control logic of the car’s air-conditioning There is no high requirement for real-time performance), and based on the attribute information of the virtual machine, it is judged whether it has real-time demand, and the virtual machine with real-time demand is allocated an exclusive physical CPU to prevent the physical CPU from being scheduled for other virtual machines. The machine is used to meet the needs of users for applications with high real-time requirements.
  • Physical CPU Physical CPU: The real CPU in the computer system.
  • Virtual CPU Virtual CPU, abbreviated as VCPU: The CPU allocated to the virtual machine by the virtualization management system.
  • Hypervisor Virtual Machine Monitor, abbreviated as VMM: is an intermediate software layer that runs between physical hardware and operating systems, allowing multiple operating systems and applications to share a set of basic physical hardware.
  • Virtual device A virtual device is used to virtualize an exclusive device into multiple logical devices for simultaneous use by multiple user processes. Such virtual devices are usually called virtual devices.
  • GIC Generic Interrupt Controller
  • RTC Real-time clock
  • FIG. 1(a) shows an architecture diagram of a virtual machine management system 110 in the related art.
  • the virtual machine management system 110 includes a host 113, a virtual machine 111 and a virtual machine 112 set on the host 113, a hardware device 114 of the host 113, and a virtual machine monitor 115 for managing virtual machines.
  • the host 113 may include, but is not limited to, a computer server, and various computing devices capable of implementing cloud computing functions.
  • the virtual machines 111 and 112 can be any virtual devices set in a computer server.
  • the virtual machine here refers to a complete hardware system that can be implemented by software and has complete hardware system functions like a real machine, and runs in the operating system of the host 113. computer system.
  • the virtual machine monitor 115 runs directly on the hardware device 114 of the host 113.
  • the virtual machine monitor 115 can coordinate the access of the virtual machine 111 and the virtual machine 112 to the hardware resources of the hardware device 114, and can also be used in the virtual machine 111 and the virtual machine. Protection is applied between 112.
  • the virtual machine monitor 115 When the virtual machine monitor 115 is running, it loads the operating systems of the virtual machine 111 and the virtual machine 112, and allocates an appropriate amount of memory, CPU, network, and disk to the virtual machine 111 and the virtual machine 112.
  • FIG. 1(b) shows an architecture diagram of another virtual machine management system 120 in the related art.
  • the virtual machine management system 120 includes a host 123, a virtual machine 121 and a virtual machine 122 set on the host 123, a hardware device 124 of the host 123, an operating system 126 of the host, and a virtual machine for managing virtual machines.
  • the virtual machine monitor 125 runs on the operating system 126 of the host 123 as a software layer, and relies on the operating system 126 pre-installed on the host 123 to manage the calls to the hardware devices of the host 123 (such as CPU, memory, storage, and network resources). Call).
  • the VCPU corresponding to the virtual machine 111 in Figure 1(a) and the VCPU corresponding to the virtual machine 112 share the PCPU of the host 113; the VCPU corresponding to the virtual machine 121 in Figure 1(b) and the VCPU corresponding to the virtual machine 122 share the PCPU of the host 123 PCPU.
  • the virtual machine monitor 115 and the virtual machine monitor 125 may implement the scheduling of the VCPU on the PCPU by setting the priority of the virtual machine.
  • the virtual machine monitor 115 and the virtual machine monitor 125 may implement the scheduling of the VCPU on the PCPU through a time slice round-robin scheduling algorithm.
  • the virtual machine monitor 115 and the virtual machine monitor 125 can also implement the scheduling of the VCPU on the PCPU through other scheduling algorithms, which are not limited to the aforementioned method of setting the priority of the virtual machine and time slice rotation. Scheduling Algorithm. In this way, the complicated scheduling process will inevitably lead to a decrease in the real-time performance of the system. It cannot be applied to fields that have special needs for real-time performance, such as the automotive field and the industrial field.
  • the technical solution of the present application configures at least one exclusive PCPU for the virtual machine corresponding to the function with higher real-time requirements; and configures at least one VCPU for the virtual machine corresponding to the function with no real-time requirements or lower requirements (the VCPU The occupied PCPU is different from the PCPU of the virtual machine configuration corresponding to the function that realizes higher real-time requirements).
  • a virtual machine with real-time requirements can exclusively share one or more PCPUs to avoid other virtual machines and the virtual machine from sharing the PCPU, avoid the delay of the PCPU participating in resource scheduling, and satisfy users with high real-time requirements. Needs to improve user experience.
  • Fig. 2 shows an architecture diagram of a virtual machine management system 200 according to an embodiment of the present application.
  • the virtual machine management system 200 includes a hardware device 210, a virtual machine monitor 220 for managing virtual machines, and a virtual machine 230, a virtual machine 240, and a virtual machine 250.
  • the hardware device 210 includes a PCPU, a memory, an external device, and so on.
  • the virtual machine monitor 220 includes a super calling module 221, a VCPU scheduling module 222, an interrupt processing module 223, a virtual machine isolation module 224, a power management module 225, and a virtual device management module 226.
  • the virtual machines 230, 240, and 250 request the virtual machine monitor 220 to provide services through the hyper-call module 221.
  • the virtual machine 240 requests the virtual machine monitor 220 to allocate resources and perform input and output requests for it through the hyper-call module 221.
  • the VCPU scheduling module 222 can realize the management of the PCPU resources shared by the VCPUs, and is responsible for the scheduling and switching of the VCPUs, so as to ensure that within a given time, the virtual machine corresponding to each VCPU can run on the PCPU for a period of time.
  • the virtual machine monitor 220 When the virtual machine monitor 220 receives an interrupt request generated from a hardware device 210 (such as a network card, a keyboard, or a mouse, etc.), it queries the interrupt conversion table through the interrupt processing module 223, and queries the interrupt conversion table for the hardware device configuration. The virtual interrupt request is then distributed to the corresponding virtual machine for processing.
  • the virtual machine isolation module 224 is used to isolate the address space required by the virtual machines 230, 240, and 250.
  • the power management module 225 can implement power management of the hardware device based on the usage of the virtual machines 230, 240, and 250.
  • the virtual device management module 226 is used to manage the virtual machines 230, 240, and 250.
  • the virtual machines 230, 240, and 250 can directly access external devices (for example, USB interfaces). Specifically, by mapping the address range of the external device to the corresponding virtual machine through the virtual machine monitor 220, the virtual machine can directly access the external device.
  • the virtual machine monitor 220 maps the address range of the serial interface (hereinafter referred to as the "serial port") of the hardware device 210 to the virtual machine 230, then the virtual machine 230 can directly access the serial port, the virtual machine 240 and the virtual machine 250 Can not access the serial port.
  • the virtual machine management system 200 also supports virtualized devices. Specifically, suppose that the virtual machine 230 wants to access the serial port of the hardware device 210, and the virtual device corresponding to the serial port is simulated in the virtual machine monitor 220. When the virtual machine 230 is accessing the serial port, the virtual machine is resolved through the virtual machine monitor 220. The type of the device accessed by 230 (here, the serial port) and the operation request of the virtual machine 230. The virtual machine monitor 220 controls the virtual device corresponding to the device to execute the parsed operation request, and returns the execution result to the virtual machine 230. In some embodiments, in order to ensure a low error rate of the virtual machine monitor 220, the implementation of the virtual machine monitor 220 is simplified. Therefore, the virtual machine monitor 220 can only implement full virtualization of some simple external devices. For example, GIC, RTC, watchdog, etc.
  • the created virtual machine can be used to assist the virtual machine monitor 220 in the management of other virtual machines.
  • the virtual machine is called To manage the virtual machine (for example, the virtual machine 230 in FIG. 2), the management virtual machine is a complete operating system (for example, Linux, Daemon operating system), which can realize the management of the virtual machine.
  • the virtual machine monitor 220 after the virtual machine monitor 220 obtains the information that the virtual machine accesses the external device, if it is determined that the external device is the virtual machine monitor 220, it can be simulated (that is, in the virtual machine monitor When a virtual device corresponding to the external device is created in 220, such as GIC, RTC, watchdog, etc., the virtual machine monitor 220 directly responds to the access request, and returns the response and the processing result of the request to the virtual machine. If it is determined that the external device cannot be simulated by the virtual machine monitor 220 itself, such as a serial port (virtual-serial), a virtual block device (virtual-block), and a virtual network (virtual-net).
  • a serial port virtual-serial
  • a virtual block device virtual-block
  • a virtual network virtual network
  • the related request is sent to the management virtual machine, and the management virtual machine performs device simulation, responds to the corresponding access request through the simulated virtual device, and returns the processing result to the corresponding virtual machine.
  • the data communication between the virtual machine monitor 220 and the management virtual machine may be implemented through shared memory, so as to reduce data copying and improve processing speed.
  • At least one exclusive PCPU is configured for the virtual machine of the application with higher real-time requirements; and there is no real-time requirement or lower requirements.
  • the virtual machine of the application is configured with at least one VCPU (the PCPU occupied by the VCPU is different from the PCPU configured for the virtual machine corresponding to the function that achieves higher real-time requirements).
  • the virtual machine 240 shown in FIG. 2 can execute task requests with real-time requirements.
  • the virtual machine 250 can execute task requests that have low real-time requirements. For example, for applications such as audio and air conditioning in a car, and applications that enhance the riding experience, the real-time requirements are low.
  • the virtual machine 240 that executes the task request with real-time requirements can be bound to one or more PCPUs, and only the virtual machine 240 runs on the bound PCPUs, and the execution requires more real-time performance.
  • the virtual machine 250 with a low task request runs in its corresponding VCPU.
  • the PCPU corresponding to the VCPU running the virtual machine 250 and the PCPU bound to the virtual machine 240 are different PCPUs. In this way, the virtual machine 240 will not be scheduled when it is running, and the virtual machine monitor 220 does not need to be scheduled to meet the real-time requirements.
  • FIG. 3 shows an architecture diagram of a virtual machine management system 300 of a car.
  • the virtual machine management system 300 includes a car hardware platform 310 (such as a car’s PCPU, memory, and peripherals), a car’s virtual machine monitor 320, manages the virtual machine 330, and executes applications related to the car’s electronic dashboard.
  • the virtual machine 341 for tasks (such as the display of dashboard information, data collection, etc.), the virtual machine 351 that performs tasks related to the car’s infotainment system (such as GPS satellite navigation, radio playback, DVD, etc.), and the management virtual machine 330 (such as Daemon OS).
  • the electronic instrument panel of a car includes a speedometer, a tachometer, an oil pressure gauge, a water temperature gauge, a fuel gauge, and a charging meter.
  • the management virtual machine 330 adopts Daemon OS (an operating system) to cooperate with the virtual machine monitor 320 of the car to realize the management of the virtual machine.
  • virtual machine 330 is bound to PCPU0
  • virtual machine 341 is bound to PCPU1
  • virtual machine 351 is bound to VCPU0 and VCPU1.
  • VCPU0 and VCPU1 can share a PCPU, or can be allocated to different PCPUs, and the PCPU is independent of PCPU0 and PCPU1.
  • the virtual machine 341 when the virtual machine 341 is running, it does not need to occupy the resources of the PCPU1 with other virtual machines, and the processing speed is fast, which meets the user's requirement for high real-time performance of the automotive electronic instrument panel, and improves the performance of the car and the user experience.
  • virtual machines can also be applied to autonomous driving, gateways, body, energy, chassis, and power systems. Therefore, in addition to the virtual machine 341 that executes the electronic dashboard related applications of the car (such as the display of dashboard information, data collection, etc.) shown in FIG.
  • one or more virtual machines can be configured to implement tasks related to autonomous driving applications, tasks related to vehicle body applications, and tasks related to power system applications.
  • the virtual machine monitor 320 of the car acquires the attribute information of the virtual machine 341 that executes the application related to the electronic instrument panel of the automobile and the virtual machine 351 that executes the related application of the infotainment system of the automobile (402).
  • the virtual machine monitor 320 of the car can obtain the attribute information corresponding to the virtual machine 341 and the virtual machine 351 from the configuration files of the virtual machine 341 and the virtual machine 351, respectively.
  • the attribute information of the virtual machine may include the ID and name of the virtual machine, whether it has real-time requirements, and so on.
  • the ID of the virtual machine 341 corresponding to the electronic dashboard of the car is: VMID1; the name is: instrument board; the RT attribute is: true.
  • the ID of the virtual machine 351 corresponding to the car's infotainment system is: VMID2; the name is: entertainment; the RT attribute is: false.
  • the creation of the virtual machine 341 and the virtual machine 351 can be implemented on the car hardware platform 310.
  • the automotive hardware platform 310 can be a hardware platform that supports virtualization.
  • the hardware platform uses an ARM Cortex-A53-based processor.
  • the hardware platform includes communication equipment, high-speed DMA, UART interface, GPS, Bluetooth, camera, and graphics. Processor (GPU) and so on.
  • the image file 1 of the virtual machine 341 corresponding to the car electronic dashboard can be generated, the virtual machine 341 corresponding to the car electronic dashboard can be created according to the mirror file 1, and the car electronic dashboard can be controlled by the virtual machine 341 to realize information display, Data collection and other functions; by generating the image file 2 of the virtual machine 351 corresponding to the car's infotainment system, based on the mirror file 2, the virtual machine 351 corresponding to the car's infotainment system is established, and the car's infotainment system is controlled through the virtual machine 351 Realize GPS satellite navigation, broadcast radio, DVD and other functions.
  • the virtual machine monitor 320 of the car determines whether the virtual machine 341 and the virtual machine 351 have real-time requirements according to the acquired attribute information of the virtual machine 341 and the virtual machine 351 (404). For example, by reading the configuration file of the virtual machine 341 and finding that the RT (Real Time) attribute of the virtual machine 341 is true, it is determined that the virtual machine 341 has real-time requirements; by reading the configuration file of the virtual machine 351, it is found If the RT attribute of the virtual machine 351 is false, it is determined that the virtual machine 351 does not have real-time requirements.
  • RT Real Time
  • the virtual machine corresponding to the car's electronic dashboard needs to have real-time attributes to perform tasks related to the car dashboard
  • the virtual machine 341 can meet the requirements of fast processing speed and timely response to task requests.
  • the car’s infotainment system for example, if a customer wants to open a DVD device and use car navigation at the same time, even if the virtual machine 351 that controls the DVD device and the virtual machine that controls the car navigation (not shown) share the same CPU computing resources, the car’s
  • the virtual machine monitor 320 uses a scheduling algorithm (for example, a time slice rotation method or a priority scheduling method) to schedule the virtual machine 351 of the DVD device and the occupancy of the PCPU by the VCPU corresponding to the virtual machine that controls the car navigation.
  • a scheduling algorithm for example, a time slice rotation method or a priority scheduling method
  • the virtual machine monitor 320 of the car determines that the virtual machine 341 has real-time requirements
  • the virtual machine monitor 320 of the car allocates a separate PCPU to the virtual machine 341 (406).
  • the virtual machine monitor 320 of the car determines that the virtual machine 341 has real-time properties by reading the attribute information of the virtual machine 341
  • the virtual machine 34 is bound to a separate PCPU to avoid other virtual machines and virtual machines.
  • 341 shares the PCPU to prevent the PCPU from participating in scheduling, resulting in low system real-time performance and improving user experience.
  • the virtual machine monitor 320 of the car determines that the virtual machine 351 does not have real-time attributes, and the virtual machine monitor 320 of the car configures the virtual machine 351 with a VCPU (408). Specifically, if the virtual machine monitor 320 of the car determines that the virtual machine 351 does not have real-time attributes by reading the attribute information of the virtual machine 351, the virtual machine 351 is configured with a VCPU (for example, VCPU0 and VCPU1 shown in FIG. 3, VCPU0 PCUP2 (not shown) is shared with VCPU1. It should be noted that the PCUP2 shared by VCPU0 and VCPU1 and the separate PCPU1 configured by the virtual machine 341 with real-time requirements are two independent processors.
  • the VCPU0 and VCPU1 configured by the virtual machine monitor 320 of the car for the virtual machine 351 may share PCUP2 according to a scheduling algorithm (for example, a priority scheduling or time slice rotation method).
  • a scheduling algorithm for example, a priority scheduling or time slice rotation method.
  • the virtual machine 351 can also be configured with three or more VCPUs, and VCPU0 and VCPU1 can also share two or more PCPUs, which will not be done here. limited.
  • a virtual machine with real-time attributes (for example, the virtual machine 341 corresponding to the electronic dashboard of a car) is configured with a separate PCPU;
  • the virtual machine 351) corresponding to the infotainment system is configured with a VCPU.
  • FIG. 5 provides a schematic structural diagram of a virtual machine management apparatus 500 according to some embodiments of the present application.
  • a virtual machine management apparatus 500 includes:
  • the judging module 502 is used to judge whether the virtual machine requested to be started on the computer device has real-time requirements
  • the configuration module 504 is configured to allocate at least one physical CPU of a computer device to the virtual machine when it is determined that the virtual machine requested to be started has real-time performance requirements, where at least one physical CPU will run the virtual machine that only has the requested start. If it is determined that the virtual machine requested to be started does not have real-time requirements, allocate at least one virtual CPU to the virtual machine.
  • the virtual machine management apparatus 500 shown in FIG. 5 corresponds to the virtual machine management method provided in this application, and the technical details in the specific description of the virtual machine management method provided in this application still apply to FIG. 5
  • the virtual machine management apparatus 500 shown please refer to the above for a specific description, and will not be repeated here.
  • FIG. 6 shown is a block diagram of a system 600 according to an embodiment of the present application.
  • Figure 6 schematically illustrates an example system 600 according to various embodiments.
  • the system 600 may include one or more processors 604, a system control logic 608 connected to at least one of the processors 604, a system memory 612 connected to the system control logic 608, and a system control logic 608 connected to the system control logic 608.
  • the non-volatile memory (NVM) 616 and the network interface 620 connected to the system control logic 608.
  • NVM non-volatile memory
  • the processor 604 may include one or more single-core or multi-core processors. In some embodiments, the processor 604 may include any combination of a general-purpose processor and a special-purpose processor (for example, a graphics processor, an application processor, a baseband processor, etc.).
  • a general-purpose processor for example, a graphics processor, an application processor, a baseband processor, etc.
  • system control logic 608 may include any suitable interface controller to provide any suitable interface to at least one of the processors 604 and/or any suitable device or component in communication with the system control logic 608.
  • system control logic 608 may include one or more memory controllers to provide an interface to the system memory 612.
  • the system memory 612 can be used to load and store data and/or instructions.
  • the memory 612 of the system 600 may include any suitable volatile memory, such as a suitable dynamic random access memory (DRAM).
  • DRAM dynamic random access memory
  • the NVM/memory 616 may include one or more tangible, non-transitory computer-readable media for storing data and/or instructions.
  • the NVM/memory 616 may include any suitable non-volatile memory such as flash memory and/or any suitable non-volatile storage device, such as HDD (Hard Disk Drive, hard disk drive), CD (Compact Disc) , At least one of an optical disc drive and a DVD (Digital Versatile Disc, Digital Versatile Disc) drive.
  • the NVM/memory 616 may include a part of storage resources on the device where the system 600 is installed, or it may be accessed by the device, but not necessarily a part of the device.
  • the NVM/storage 616 can be accessed through the network via the network interface 620.
  • system memory 612 and the NVM/memory 616 may respectively include: a temporary copy and a permanent copy of the instruction 624.
  • the instructions 624 may include instructions that when executed by at least one of the processors 604 cause the system 600 to implement the virtual machine management method shown in FIG. 4.
  • the instructions 624, hardware, firmware, and/or software components thereof may additionally/alternatively be placed in the system control logic 608, the network interface 620, and/or the processor 604.
  • the network interface 620 may include a transceiver to provide a radio interface for the system 600, and then communicate with any other suitable devices (such as a front-end module, an antenna, etc.) through one or more networks.
  • the network interface 620 may be integrated with other components of the system 600.
  • the network interface 620 may be integrated in at least one of the processor 604, the system memory 612, the NVM/memory 616, and a firmware device (not shown) with instructions.
  • the system 600 implements the virtual machine management method shown in FIG. 4.
  • the network interface 620 may further include any suitable hardware and/or firmware to provide a multiple input multiple output radio interface.
  • the network interface 620 may be a network adapter, a wireless network adapter, a telephone modem and/or a wireless modem.
  • At least one of the processors 604 may be packaged with the logic of one or more controllers for the system control logic 608 to form a system in package (SiP). In one embodiment, at least one of the processors 604 may be integrated with the logic of one or more controllers for the system control logic 608 on the same die to form a system on chip (SoC).
  • SiP system in package
  • SoC system on chip
  • the system 600 may further include: an input/output (I/O) device 632.
  • the I/O device 632 may include a user interface to enable a user to interact with the system 600; the design of the peripheral component interface enables the peripheral component to also interact with the system 600.
  • the system 600 further includes a sensor for determining at least one of environmental conditions and location information related to the system 600.
  • the user interface may include, but is not limited to, a display (e.g., liquid crystal display, touch screen display, etc.), speakers, microphones, one or more cameras (e.g., still image cameras and/or video cameras), flashlights (e.g., LED flash) and keyboard.
  • a display e.g., liquid crystal display, touch screen display, etc.
  • speakers e.g., speakers, microphones, one or more cameras (e.g., still image cameras and/or video cameras), flashlights (e.g., LED flash) and keyboard.
  • the peripheral component interface may include, but is not limited to, a non-volatile memory port, an audio jack, and a power interface.
  • the senor may include, but is not limited to, a gyroscope sensor, an accelerometer, a proximity sensor, an ambient light sensor, and a positioning unit.
  • the positioning unit may also be part of or interact with the network interface 620 to communicate with components of the positioning network (for example, a global positioning system (GPS) satellite).
  • GPS global positioning system
  • FIG. 7 shows a block diagram of a SoC (System on Chip) 700.
  • SoC System on Chip
  • the SoC700 includes: an interconnection unit 750, which is coupled to the application processor 715; a system agent unit 770; a bus controller unit 780; an integrated memory controller unit 740; a group or one or more coprocessors 720, which may include integrated graphics logic, image processors, audio processors, and video processors; a static random access memory (SRAM) unit 730; and a direct memory access (DMA) unit 760.
  • the coprocessor 720 includes a dedicated processor, such as, for example, a network or communication processor, a compression engine, a GPGPU, a high-throughput MIC processor, or an embedded processor, or the like.
  • the various embodiments of the mechanism disclosed in this application may be implemented in hardware, software, firmware, or a combination of these implementation methods.
  • the embodiments of the present application can be implemented as a computer program or program code executed on a programmable system.
  • the programmable system includes at least one processor and a storage system (including volatile and non-volatile memory and/or storage elements) , At least one input device and at least one output device.
  • Program codes can be applied to input instructions to perform the functions described in this application and generate output information.
  • the output information can be applied to one or more output devices in a known manner.
  • a processing system includes any system having a processor such as, for example, a digital signal processor (DSP), a microcontroller, an application specific integrated circuit (ASIC), or a microprocessor.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • the program code can be implemented in a high-level programming language or an object-oriented programming language to communicate with the processing system.
  • assembly language or machine language can also be used to implement the program code.
  • the mechanism described in this application is not limited to the scope of any particular programming language. In either case, the language can be a compiled language or an interpreted language.
  • the disclosed embodiments may be implemented in hardware, firmware, software, or any combination thereof.
  • the disclosed embodiments can also be implemented as instructions carried by or stored on one or more transient or non-transitory machine-readable (eg, computer-readable) storage media, which can be executed by one or more processors Read and execute.
  • the instructions can be distributed through a network or through other computer-readable media.
  • a machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (for example, a computer), including, but not limited to, floppy disks, optical disks, optical disks, read-only memories (CD-ROMs), magnetic Optical disk, read only memory (ROM), random access memory (RAM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), magnetic or optical card, flash memory, or A tangible machine-readable memory used to transmit information (for example, carrier waves, infrared signals, digital signals, etc.) using the Internet with electric, optical, acoustic, or other forms of propagating signals. Therefore, a machine-readable medium includes any type of machine-readable medium suitable for storing or transmitting electronic instructions or information in a form readable by a machine (for example, a computer).
  • each unit/module mentioned in each device embodiment of this application is a logical unit/module.
  • a logical unit/module can be a physical unit/module or a physical unit/ A part of the module can also be realized by a combination of multiple physical units/modules.
  • the physical realization of these logical units/modules is not the most important.
  • the combination of the functions implemented by these logical units/modules is the solution to this application.
  • the above-mentioned device embodiments of this application do not introduce units/modules that are not closely related to solving the technical problems proposed by this application. This does not mean that the above-mentioned device embodiments do not exist. Other units/modules.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种计算机设备上的虚拟机的管理方法、装置、介质和系统。计算机设备具有多个物理CPU;并且该方法包括:判断在计算机设备上请求启动的虚拟机是否具有实时性需求;在判断出请求启动的虚拟机具有实时性需求的情况下,为虚拟机分配至少一个计算机设备的物理CPU,其中,至少一个物理CPU上将运行仅有该请求启动的虚拟机;在判断出请求启动的虚拟机不具有实时性需求的情况下,为虚拟机分配至少一个虚拟CPU。本申请通过对具有实时性需求的虚拟机分配独占的物理CPU,以避免该物理CPU被调度出去供其他虚拟机使用,满足用户对于实时性要求高的应用的需求。

Description

计算机设备上的虚拟机的管理方法、装置、介质和系统 技术领域
本申请涉及计算机技术领域,特别涉及一种计算机设备上的虚拟机的管理方法、装置、介质和系统。
背景技术
虚拟化技术是指在一套完整的计算机硬件平台上,通过软件方法或硬件装置,将一组硬件虚拟成多组硬件,并提供给多个独立运行的软件系统(通常是操作系统)作为独立运行环境的技术。具备虚拟化技术的计算机装置可以并行地运行多个独立的操作系统,这些操作系统之间除了运行过程中分享硬件资源(如内存、I/O中断、存储和CPU)外,互相保持独立,可以看作是多个独立的计算机在运行。这些独立运行的操作系统通常被称为虚拟机(Virtual Machine,VM),这些操作系统相互之间不干扰,比如一个虚拟机能访问的内存是另一个虚拟机所不能访问的,从而实现多个操作系统之间的隔离。
然而由于虚拟机所使用的虚拟处理器(VCPU)共享物理处理器(PCPU),虚拟机监视器负责VCPU的调度。当一个VCPU被调度到某个PCPU后,该VCPU所属的VM就开始在这个PCPU上执行。由于这些复杂的调度过程,会导致实时性的下降,无法适用到对实时性有特殊需要的领域。
发明内容
本申请实施例提供了一种计算机设备上的虚拟机的管理方法、装置、介质和系统,本申请实施例提供的计算机设备上的虚拟机的管理方法通过对具有实时性需求的虚拟机分配独占的物理CPU,以避免该物理CPU被调度出去供其他虚拟机使用,满足用户对于实时性要求高的应用的需求。
第一方面,本申请实施例提供了一种计算机设备上的虚拟机的管理方法,计算机设备具有多个物理CPU;并且方法包括:判断在计算机设备上请求启动的虚拟机是否具有实时性需求;在判断出请求启动的虚拟机具有实时性需求的情况下,为虚拟机分配至少一个计算机设备的物理CPU,其中,至少一个物理CPU上将运行仅有该请求启动的虚拟机;在 判断出请求启动的虚拟机不具有实时性需求的情况下,为虚拟机分配至少一个虚拟CPU。如此,使得有实时性需求的虚拟机在执行实时性要求高的任务时,由于其独占物理CPU,不需要与其他虚拟机参与物理资源的调度,满足用户对于低延迟及高实时性的应用需求。
在上述第一方面的一种可能的实现中,上述方法还包括:判断在计算机设备上请求启动的虚拟机是否具有实时性需求包括:读取在计算机设备上请求启动的虚拟机的属性信息;基于读取的属性信息判断在计算机设备上请求启动的虚拟机是否具有实时性需求。
在上述第一方面的一种可能的实现中,上述方法还包括:为不具有实时性需求的第一虚拟机分配第一虚拟CPU;为不具有实时性需求的第二虚拟机分配第二虚拟CPU;其中,第一虚拟CPU和所述虚拟CPU所在的物理CPU,与为具有实时性需求的虚拟机分配的物理CPU相互独立。第一虚拟CPU和第二虚拟CPU位于同一物理CPU上。可以理解,对于不具有实时性需求的第一虚拟机和第二虚拟机,二者由于要轮询同一物理CPU的资源,会产生延迟,可以应用于用户对于实时性要求低的应用场景。
在上述第一方面的一种可能的实现中,上述计算机设备包括多个外部设备,上述方法还包括:计算机设备上请求启动的虚拟机能够直接访问多个外部设备中的至少一个;或者,计算机设备上请求启动的虚拟机能够访问计算机设备中模拟出的与多个外部设备相对应的多个虚拟设备中的至少一个。可以理解,对于有实时性需求的虚拟机,通过直接访问计算机设备的外部设备,不需要通过计算机设备的虚拟机监视器来访问外部设备,处理效率高,进一步保证了实时性需求。
第二方面,本申请实施例提供了一种计算机设备上的虚拟机的管理装置,包括:
判断模块,用于判断在计算机设备上请求启动的虚拟机是否具有实时性需求;
配置模块,用于在判断出请求启动的虚拟机具有实时性需求的情况下,为虚拟机分配至少一个计算机设备的物理CPU,其中,至少一个物理CPU上将运行仅有该请求启动的虚拟机;在判断出请求启动的虚拟机不具有实时性需求的情况下,为虚拟机分配至少一个虚拟CPU。
在上述第二方面的一种可能的实现中,上述装置还包括:判断模块通过以下方式对在计算机设备上请求启动的虚拟机是否具有实时性需求进行判断:
读取在计算机设备上请求启动的虚拟机的属性信息;基于读取的属性信息判断在计算机设备上请求启动的虚拟机是否具有实时性需求。
在上述第二方面的一种可能的实现中,上述装置还包括:上述配置模块还用于:
为不具有实时性需求的第一虚拟机分配第一虚拟CPU;
为不具有实时性需求的第二虚拟机分配第二虚拟CPU,
其中,第一虚拟CPU和第二虚拟CPU所在的物理CPU,与为具有实时性需求的虚拟机分配的物理CPU相互独立。
在上述第二方面的一种可能的实现中,上述计算机设备包括多个外部设备,上述虚拟机的管理装置还包括访问控制模块,用于控制计算机设备上请求启动的虚拟机能够直接访问多个外部设备中的至少一个;或者,控制计算机设备上请求启动的虚拟机能够访问计算机设备中模拟出的与多个外部设备相对应的多个虚拟设备中的至少一个。
第三方面,本申请实施例提供了一种计算机可读介质,计算机可读介质上存储有指令,该指令在计算机上执行时使计算机执行上述第一方面及第一方面的各种可能的实现中的任意一种计算机设备上的虚拟机的管理方法。
第四方面,本申请实施例提供了一种电子设备,包括:
存储器,用于存储由系统的一个或多个处理器执行的指令,以及
处理器,是系统的处理器之一,用于执行上述第一方面及第一方面的各种可能的实现中的任意一种计算机设备上的虚拟机的管理方法。
附图说明
在附图各图中通过示例而不是限制说明了本申请,其中相同标记指示相同元件,且其中:
图1(a)示出了相关技术中一种虚拟机管理系统的架构图;
图1(b)示出了相关技术中另一种虚拟机管理系统的架构图;
图2根据本申请的一些实施例,示出了一种虚拟机管理系统的架构图;
图3根据本申请的一些实施例,示出了一种汽车的虚拟机管理系统的架构图;
图4根据本申请的一些实施例,示出了一种虚拟机管理方法流程图;
图5根据本申请的一些实施例,示出了一种虚拟机管理装置的结构框图;
图6根据本申请的一些实施例,示出了一种系统的框图。
图7根据本申请一些实施例,示出了一种片上系统(SoC)的框图。
具体实施方式
本申请的说明性实施例包括但不限于虚拟机管理方法、装置及其介质和系统。
可以理解,如本文所使用的,术语“模块”可以指代或者包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。
可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。
本申请针对不同的应用场景,通过读取虚拟机的属性信息(例如汽车电子仪表盘的控制逻辑对应的虚拟机需要满足较高的实时性,而汽车的空调对应的控制逻辑对应的虚拟机对实时性没有较高要求),并基于虚拟机的属性信息,判断其是否具有实时性需求,通过对具有实时性需求的虚拟机分配独占的物理CPU,以避免该物理CPU被调度出去供其他虚拟机使用,满足用户对于实时性要求高的应用的需求。
为了清楚地理解本发明,以下对本发明中所使用的术语进行解释:
物理CPU(Physical CPU):计算机系统中真实的CPU。
虚拟CPU(Virtual CPU,缩写为VCPU):虚拟化管理系统分配给虚拟机的CPU。
Hypervisor(Virtual Machine Monitor,虚拟机监视器,缩写为VMM):是一种运行在物理硬件和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件。
虚拟设备:通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用,通常把这种经过虚拟的设备称为虚拟设备。
GIC(Generic Interrupt controller,通用中断控制器)。
RTC(Real-time clock,实时时钟)。
Watchdog(看门狗)。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
图1(a)示出了相关技术中一种虚拟机管理系统110的架构图。如图1(a)所示,虚拟机管理系统110包括主机113、设置于主机113上的虚拟机111和虚拟机112、主机113 的硬件设备114以及用于管理虚拟机的虚拟机监视器115。其中,主机113可以包括但不限于计算机服务器,以及能够实现云端计算功能的各种计算设备。
虚拟机111、112可以是任何设置于计算机服务器中的虚拟装置,这里的虚拟机是指通过软件实现的可以像真实机器一样具有完整硬件系统功能的、运行在与主机113的操作系统内的完整计算机系统。
虚拟机监视器115直接在主机113的硬件设备114上运行,虚拟机监视器115可以协调虚拟机111和虚拟机112对硬件设备114的硬件资源的访问,同时也可以在虚拟机111和虚拟机112之间施加防护。当虚机监视器115运行时,其加载虚拟机111和虚拟机112的操作系统,并分配给虚拟机111和虚拟机112适量的内存、CPU、网络和磁盘等。
图1(b)示出了相关技术中另一种虚拟机管理系统120的架构图。如图1(b)所示,虚拟机管理系统120包括主机123,设置于主机123上的虚拟机121和虚拟机122,主机123的硬件设备124,主机的操作系统126以及用于管理虚拟机的虚拟机监视器125。其中,虚拟机监视器125作为软件层运行在主机123的操作系统126上,依赖于主机123预先安装的操作系统126来管理对主机123的硬件设备的调用(例如CPU、内存、存储和网络资源的调用)。
图1(a)中的虚拟机111对应的VCPU和虚拟机112对应的VCPU共享主机113的PCPU;图1(b)中的虚拟机121对应的VCPU和虚拟机122对应的VCPU共享主机123的PCPU。在一些实施例中,虚拟机监视器115和虚拟机监视器125可以通过设置虚拟机的优先级的方式,实现VCPU在PCPU上的调度。在一些实施例中,虚拟机监视器115和虚拟机监视器125可以通过时间片轮转调度算法,实现VCPU在PCPU上的调度。可以理解,在其他实施例中,虚拟机监视器115和虚拟机监视器125还可以通过其他调度算法,实现VCPU在PCPU上的调度,不限于前述设置虚拟机的优先级的方式及时间片轮转调度算法。如此,复杂的调度过程势必导致系统实时性的降低。无法适用到对实时性有特殊需要的领域,如汽车领域、工业领域等。
可以理解,此处图1(a)和图1(b)中虽然示出了1个硬件设备和2个虚拟机,但是,此处硬件设备和虚拟机的数量和类型仅仅是示例性的,在此不做限制,主机113和主机123可以包括任意类型和数量的虚拟机和硬件设备。
本申请的技术方案通过为实现较高实时性要求的功能对应的虚拟机配置至少一个独占的PCPU;而将实现没有实时性要求或要求较低的功能对应的虚拟机配置至少一个VCPU(该VCPU所占用的PCPU与实现较高实时性要求的功能对应的虚拟机配置的PCPU不同)。 如此,对于有实时性需求的虚拟机可以独享一个或多个PCPU,以避免其他虚拟机和该虚拟机共享该PCPU,避免该PCPU参与资源调度产生延迟,满足用户对于实时要求较高的应用的需求,提高用户体验。
图2根据本申请的实施例,示出了一种虚拟机管理系统200的架构图。如图2所示,虚拟机管理系统200包括硬件设备210、用于管理虚拟机的虚拟机监视器220以及虚拟机230、虚拟机240和虚拟机250。其中,硬件设备210包括PCPU、内存和外部设备等。虚拟机监视器220包括超级调用模块221、VCPU调度模块222、中断处理模块223、虚拟机隔离模块224、电源管理模块225及虚拟设备管理模块226。
其中,虚拟机230、240、250通过超级调用模块221来请求虚拟机监视器220提供服务,例如虚拟机240通过超级调用模块221来请求虚拟机监视器220为其分配资源、执行输入输出请求等。VCPU调度模块222可以实现对VCPU共享的PCPU资源的管理,负责VCPU的调度和切换,以保证在给定时间内,每个VCPU对应的虚拟机可以在PCPU上运行一段时间。当虚拟机监视器220接收到来自硬件设备210(例如网卡、键盘或鼠标等)产生的中断请求时,通过中断处理模块223查询中断转换表,从中断转换表中查询到为该硬件设备配置的虚拟中断请求,然后将该虚拟中断请求分发给对应的虚拟机进行处理。虚拟机隔离模块224用于隔离出虚拟机230、240、250所需的地址空间。电源管理模块225可以基于虚拟机230、240、250的使用情况实现对硬件设备的电源管理。虚拟设备管理模块226用以管理虚拟机230、240、250。
在图2所示的实施例中,虚拟机230、240、250可以直接访问外部设备(例如USB接口)。具体地,通过虚拟机监视器220将外部设备的地址范围映射给对应的虚拟机,虚拟机就可以对该外部设备直接进行访问。例如,虚拟机监视器220将硬件设备210的串行接口(以下简称为“串口”)的地址范围映射给虚拟机230,那么虚拟机230就可以直接访问该串口,虚拟机240和虚拟机250均不能访问该串口。
在图2所示的实施例中,虚拟机管理系统200还支持虚拟化设备。具体地,假设虚拟机230要访问硬件设备210的串口,虚拟机监视器220中模拟出对应该串口的虚拟设备,当虚拟机230在访问该串口时,通过虚拟机监视器220解析出虚拟机230访问的设备类型(此处为串口)及虚拟机230的操作请求,虚拟机监视器220控制该设备对应的虚拟设备执行解析出的操作请求,并且将执行的结果返回给虚拟机230。在一些实施例中,为了使虚拟机监视器220保证低的错误率,会使虚拟机监视器220的实现较为精简,如此,虚拟机监视器220只能实现一些简单外部设备的全虚拟化,例如GIC、RTC和watchdog等。
在图2所示的实施例中,为了使虚拟机监视器220的设计更为精简,可以通过创建的虚拟机来协助该虚拟机监视器220对其他虚拟机的管理,该虚拟机则被称为管理虚拟机(例如图2中的虚拟机230),管理虚拟机是一个完整的操作系统(例如Linux、Daemon操作系统),可以实现对虚拟机的管理。
在图2所示的实施例中,虚拟机监视器220在获取到虚拟机访问外部设备的信息后,若判断该外部设备是虚拟机监视器220本身可以进行模拟的(即在虚拟机监视器220中创建该外部设备对应的虚拟设备,例如GIC、RTC和watchdog等),则虚拟机监视器220直接响应该访问请求,并将响应与该请求的处理结果返回给虚拟机。若判断该外部设备是虚拟机监视器220本身无法进行模拟的,例如串口(virtual-serial)、虚拟块设备(virtual-block)和虚拟网络(virtual-net)等。则将相关请求发送给管理虚拟机,由管理虚拟机进行设备的模拟,通过模拟出的虚拟设备响应对应的访问请求,并将处理结果返回给对应的虚拟机。在一些实施例中,虚拟机监视器220和管理虚拟机之间的数据通信可以通过共享内存实现,以减少数据拷贝,提高处理速度。
在图2所示的实施例中,对于不同的应用场景和应用需求,通过为实现较高实时性要求的应用的虚拟机配置至少一个独占的PCPU;而将实现没有实时性要求或要求较低的应用的虚拟机配置至少一个VCPU(该VCPU所占用的PCPU与实现较高实时性要求的功能对应的虚拟机配置的PCPU不同)。如此,可以避免例如1(a)或图1(b)中所有的虚拟机轮询相同的PCPU而产生延迟,满足用户对于实时要求较高的应用的需求,提高用户体验。例如,图2所示的虚拟机240可以执行有实时性要求的任务请求,例如对于汽车的电子仪表盘,关系着乘车人员的人身安全,实时性要求很高。虚拟机250可以执行对实时性要求较低的任务请求,例如对于汽车内的音响、空调等娱乐、提升乘车体验的应用,实时性要求较低。在一些实施例中,可以通过将执行有实时性要求的任务请求的虚拟机240绑定到一个或多个PCPU,被绑定的PCPU上只运行虚拟机240,而对于执行对实时性要求较低的任务请求的虚拟机250在其对应的VCPU中运行。需要说明的是,与运行虚拟机250的VCPU对应的PCPU和虚拟机240绑定的PCPU是不同的PCPU。如此,虚拟机240在运行的时候不会被调度出去,不需要虚拟机监视器220进行调度,满足实时性的需求。
下面以汽车为例,对本申请提供的虚拟机管理系统进行介绍。图3示出了一种汽车的虚拟机管理系统300的架构图。如图3所示,虚拟机管理系统300包括汽车硬件平台310(例如汽车的PCPU、内存和外部设备等)、汽车的虚拟机监视器320,管理虚拟机330、执行汽车的电子仪表盘相关应用的任务(例如仪表盘信息的显示、数据的采集等)的虚拟 机341、执行汽车的信息娱乐系统相关应用的任务(例如GPS卫星导航、播放收音机、DVD等)的虚拟机351以及管理虚拟机330(如Daemon OS)。其中,汽车的电子仪表盘包括车速里程表、转速表、机油压力表、水温表、燃油表、充电表等。
在图3所示的实施例中,管理虚拟机330采用Daemon OS(一种操作系统),以配合汽车的虚拟机监视器320实现对虚拟机的管理。其中,虚拟机330绑定到PCPU0、虚拟机341绑定到PCPU1、虚拟机351绑定到VCPU0和VCPU1。需要说明的是,VCPU0和VCPU1可以共享一个PCPU,也可以被分配到不同的PCPU上,并且该PCPU与PCPU0和PCPU1相互独立。如此,虚拟机341在运行时,无需和其他虚拟机抢占PCPU1的资源,处理速度快,满足用户对于汽车电子仪表盘具有高的实时性的要求,提升汽车性能和用户体验。
可以理解,图3所示的汽车的虚拟机管理系统300中的虚拟机的数量、PCPU及VCPU的数量仅仅是示例性的,在此不做限定。
可以理解,对于汽车领域,虚拟机还可以应用到自动驾驶、网关、车身、能源、底盘以及动力系统等。因此,除了图3所示的执行汽车的电子仪表盘相关应用(例如仪表盘信息的显示、数据的采集等)的虚拟机341、执行汽车的信息娱乐相关应用(例如GPS卫星导航、播放收音机、DVD等)的虚拟机351外,还可以配置一个或多个虚拟机,以实现自动驾驶应用的相关任务、车身应用的相关任务及动力系统应用的相关任务等。
下面以本申请的虚拟机管理方法应用于汽车为例,结合图3所示的汽车的虚拟机管理系统300的架构,对本申请实施例提供的虚拟机管理方法进行详细介绍。如图4所示,具体地,包括:
1)汽车的虚拟机监视器320获取执行汽车的电子仪表盘相关应用的虚拟机341以及执行汽车的信息娱乐系统的相关应用的虚拟机351的属性信息(402)。
具体地,当虚拟机341以及虚拟机351启动后,汽车的虚拟机监视器320可以从虚拟机341以及虚拟机351的配置文件中获取到分别与虚拟机341以及虚拟机351对应的属性信息。在一些实施例中,虚拟机的属性信息可以包括虚拟机的ID、名称、是否具有实时性需求等。例如,与汽车的电子仪表盘对应的虚拟机341的ID为:VMID1;名称为:instrument board;RT属性为:true。与汽车的信息娱乐系统对应的虚拟机351的ID为:VMID2;名称为:entertainment;RT属性为:false。
在一些实施例中,可以通过在汽车硬件平台310上实现虚拟机341和虚拟机351的创建。需要说明的是汽车硬件平台310可以是支持虚拟化的硬件平台,例如硬件平台采用基 于ARM Cortex-A53的处理器,该硬件平台包括通信设备、高速DMA、UART接口、GPS、蓝牙、照相机和图形处理器(GPU)等等。具体地,可以通过生成与汽车电子仪表盘对应的虚拟机341的镜像文件1,根据镜像文件1创建与汽车电子仪表盘对应的虚拟机341,通过虚拟机341控制汽车电子仪表盘实现信息显示、数据采集等功能;通过生成与汽车的信息娱乐系统对应的虚拟机351的镜像文件2,根据镜像文件2建立与汽车的信息娱乐系统对应的虚拟机351,通过虚拟机351控制汽车的信息娱乐系统实现GPS卫星导航、播放收音机、DVD等功能。
2)汽车的虚拟机监视器320根据获取到的虚拟机341及虚拟机351的属性信息判断虚拟机341及虚拟机351是否具有实时性需求(404)。例如,通过读取虚拟机341的配置文件,发现虚拟机341的RT(Real Time,实时)属性为:true,则确定虚拟机341具有实时性需求;通过读取虚拟机351的配置文件,发现虚拟机351的RT属性为:false,则确定虚拟机351不具有实时性需求。
由于汽车的电子仪表盘需要及时地采集数据信息并进行显示,以供用户判断车速、油量等,则与汽车电子仪表盘对应的虚拟机即需要具有实时性属性,使得执行汽车仪表盘相关任务的虚拟机341能够达到处理速度快、及时响应任务请求的要求。而对于汽车的信息娱乐系统,例如客户想要打开DVD设备并同时使用汽车导航,即便控制DVD设备的虚拟机351和控制汽车导航的虚拟机(未图示)共享同一个CPU计算资源,汽车的虚拟机监视器320在采用调度算法(例如,时间片轮转的方法或优先级调度的方法)来调度DVD设备的虚拟机351和控制汽车导航的虚拟机对应的VCPU对PCPU的占用情况,通过调度产生的相对低的实时性对客户体验的影响较小。
3)在汽车的虚拟机监视器320判断虚拟机341具有实时性需求的情况下,则汽车的虚拟机监视器320为虚拟机341分配单独的PCPU(406)。具体地,如果汽车的虚拟机监视器320通过读取虚拟机341的属性信息,确定虚拟机341具有实时性属性,则将虚拟机34绑定到单独的PCPU,以避免其他虚拟机和虚拟机341共享该PCPU,避免该PCPU参与调度,导致系统实时性能低,提高用户体验。
4)在汽车的虚拟机监视器320判断虚拟机351不具有实时性属性,则汽车的虚拟机监视器320为虚拟机351配置VCPU(408)。具体地,如果汽车的虚拟机监视器320通过读取虚拟机351的属性信息,确定虚拟机351不具有实时性属性,则将虚拟机351配置VCPU(例如图3所示的VCPU0和VCPU1,VCPU0和VCPU1共享PCUP2(未图示))。 需要说明的是,VCPU0和VCPU1共享的PCUP2和具有实时性要求的虚拟机341配置的单独的PCPU1为两个独立的处理器。在一些实施例中,汽车的虚拟机监视器320为虚拟机351配置的VCPU0和VCPU1可以按照调度算法(例如优先级调度或时间片轮转的方法)共享PCUP2。可以理解,在具体实现中,为了提高处理速度,还可以将虚拟机351配置三个或更多个数的VCPU,并且VCPU0和VCPU1还可以共享两个或两个以上的PCPU,在此不做限定。
在图4所示的实施例中,通过将有实时性属性的虚拟机(例如与汽车电子仪表盘对应的虚拟机341)配置单独的PCPU;将不具有实时性属性的虚拟机(例如与汽车的信息娱乐系统对应的虚拟机351)配置VCPU,如此,既可以满足用户对于实时要求较高的应用的需求,也可以实现用户丰富的功能体验。
图5根据本申请的一些实施例,提供了一种虚拟机的管理装置500的结构示意图。如图5所示,虚拟机的管理装置500包括:
判断模块502,用于判断在计算机设备上请求启动的虚拟机是否具有实时性需求;
配置模块504,用于在判断出请求启动的虚拟机具有实时性需求的情况下,为虚拟机分配至少一个计算机设备的物理CPU,其中,至少一个物理CPU上将运行仅有该请求启动的虚拟机;在判断出请求启动的虚拟机不具有实时性需求的情况下,为虚拟机分配至少一个虚拟CPU。
可以理解,图5所示的虚拟机的管理装置500与本申请提供的虚拟机的管理方法相对应,以上关于本申请提供的虚拟机的管理方法的具体描述中的技术细节依然适用于图5所示的虚拟机管理装置500,具体描述请参见上文,在此不再赘述。
现在参考图6,所示为根据本申请的一个实施例的系统600的框图。图6示意性地示出了根据多个实施例的示例系统600。在一个实施例中,系统600可以包括一个或多个处理器604,与处理器604中的至少一个连接的系统控制逻辑608,与系统控制逻辑608连接的系统内存612,与系统控制逻辑608连接的非易失性存储器(NVM)616,以及与系统控制逻辑608连接的网络接口620。
在一些实施例中,处理器604可以包括一个或多个单核或多核处理器。在一些实施例中,处理器604可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。
在一些实施例中,系统控制逻辑608可以包括任意合适的接口控制器,以向处理器604中的至少一个和/或与系统控制逻辑608通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,系统控制逻辑608可以包括一个或多个存储器控制器,以提供连接到系统内存612的接口。系统内存612可以用于加载以及存储数据和/或指令。在一些实施例中系统600的内存612可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。
NVM/存储器616可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM/存储器616可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器),CD(Compact Disc,光盘)驱动器,DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。
NVM/存储器616可以包括安装系统600的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口620通过网络访问NVM/存储616。
特别地,系统内存612和NVM/存储器616可以分别包括:指令624的暂时副本和永久副本。指令624可以包括:由处理器604中的至少一个执行时导致系统600实施如图4所示的虚拟机管理方法的指令。在一些实施例中,指令624、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑608,网络接口620和/或处理器604中。
网络接口620可以包括收发器,用于为系统600提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口620可以集成于系统600的其他组件。例如,网络接口620可以集成于处理器604的,系统内存612,NVM/存储器616,和具有指令的固件设备(未示出)中的至少一种,当处理器604中的至少一个执行所述指令时,系统600实现如图4所示的虚拟机管理方法。
网络接口620可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口620可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。
在一个实施例中,处理器604中的至少一个可以与用于系统控制逻辑608的一个或多 个控制器的逻辑封装在一起,以形成系统封装(SiP)。在一个实施例中,处理器604中的至少一个可以与用于系统控制逻辑608的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(SoC)。
系统600可以进一步包括:输入/输出(I/O)设备632。I/O设备632可以包括用户界面,使得用户能够与系统600进行交互;外围组件接口的设计使得外围组件也能够与系统600交互。在一些实施例中,系统600还包括传感器,用于确定与系统600相关的环境条件和位置信息的至少一种。
在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。
在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
在一些实施例中,传感器可包括但不限于陀螺仪传感器,加速度计,近程传感器,环境光线传感器和定位单元。定位单元还可以是网络接口620的一部分或与网络接口620交互,以与定位网络的组件(例如,全球定位系统(GPS)卫星)进行通信。
根据本申请的实施例,图7示出了一种SoC(System on Chip,片上系统)700的框图。在图7中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图7中,SoC700包括:互连单元750,其被耦合至应用处理器715;系统代理单元770;总线控制器单元780;集成存储器控制器单元740;一组或一个或多个协处理器720,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元730;直接存储器存取(DMA)单元760。在一个实施例中,协处理器720包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以 按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存 在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (10)

  1. 一种计算机设备上的虚拟机的管理方法,其特征在于,所述计算机设备具有多个物理CPU;并且
    所述方法包括:
    判断在所述计算机设备上请求启动的虚拟机是否具有实时性需求;
    在判断出请求启动的虚拟机具有实时性需求的情况下,为所述虚拟机分配至少一个所述计算机设备的物理CPU,其中,所述物理CPU上将运行的虚拟机仅有所述请求启动的虚拟机;
    在判断出请求启动的虚拟机不具有实时性需求的情况下,为所述虚拟机分配至少一个虚拟CPU。
  2. 根据权利要求1所述的方法,其特征在于,所述判断在所述计算机设备上请求启动的虚拟机是否具有实时性需求包括:
    读取在所述计算机设备上请求启动的虚拟机的属性信息;
    基于读取的所述属性信息判断在所述计算机设备上请求启动的虚拟机是否具有实时性需求。
  3. 根据权利要求1所述的方法,其特征在于,还包括:
    为不具有实时性需求的第一虚拟机分配第一虚拟CPU;
    为不具有实时性需求的第二虚拟机分配第二虚拟CPU;
    其中,所述第一虚拟CPU和所述第二虚拟CPU所在的物理CPU,与为所述具有实时性需求的虚拟机分配的物理CPU相互独立。
  4. 根据权利要求1至3任一项所述的方法,其特征在于,所述计算机设备包括多个外部设备,所述方法还包括:
    所述计算机设备上请求启动的虚拟机能够直接访问所述多个外部设备中的至少一个;或者,所述计算机设备上请求启动的虚拟机能够访问所述计算机设备中模拟出的与多个所述外部设备相对应的多个虚拟设备中的至少一个。
  5. 一种计算机设备上的虚拟机的管理装置,其特征在于,包括:
    判断模块,用于判断在计算机设备上请求启动的虚拟机是否具有实时性需求;
    配置模块,用于在判断出请求启动的虚拟机具有实时性需求的情况下,为所述虚拟机分配至少一个所述计算机设备的物理CPU,其中,所述物理CPU上将运行仅有该请求启动的虚拟机;在判断出请求启动的虚拟机不具有实时性需求的情况下,为所述虚拟机分配至少一个虚拟CPU。
  6. 根据权利要求5所述的管理装置,其特征在于,所述判断模块通过以下方式对在计算机设备上请求启动的虚拟机是否具有实时性需求进行判断:
    读取在所述计算机设备上请求启动的虚拟机的属性信息;
    基于读取的所述属性信息判断在所述计算机设备上请求启动的虚拟机是否具有实时性需求。
  7. 根据权利要求5所述的管理装置,其特征在于,所述配置模块还用于:
    为不具有实时性需求的第一虚拟机分配第一虚拟CPU;
    为不具有实时性需求的第二虚拟机分配第二虚拟CPU;
    其中,所述第一虚拟CPU和所述第二虚拟CPU所在的物理CPU,与为所述具有实时性需求的虚拟机分配的物理CPU相互独立。
  8. 根据权利要求5至7任一项所述的管理装置,其特征在于,所述计算机设备包括多个外部设备,所述虚拟机的管理装置还包括访问控制模块,用于控制所述计算机设备上请求启动的虚拟机能够直接访问所述多个外部设备中的至少一个;或者,控制所述计算机设备上请求启动的虚拟机能够访问所述计算机设备中模拟出的与多个所述外部设备相对应的多个虚拟设备中的至少一个。
  9. 一种机器可读介质,其特征在于,所述机器可读介质上存储有指令,该指令在机器上执行时使机器执行权利要求1至4中任一项所述的计算机设备上的虚拟机的管理方法。
  10. 一种系统,包括:
    存储器,用于存储由系统的一个或多个处理器执行的指令,以及
    处理器,是系统的处理器之一,用于执行权利要求1至4中任一项所述的计算机设备上的虚拟机的管理方法。
PCT/CN2021/090035 2020-04-27 2021-04-26 计算机设备上的虚拟机的管理方法、装置、介质和系统 WO2021218935A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010342390.6A CN111427669A (zh) 2020-04-27 2020-04-27 计算机设备上的虚拟机的管理方法、装置、介质和系统
CN202010342390.6 2020-04-27

Publications (1)

Publication Number Publication Date
WO2021218935A1 true WO2021218935A1 (zh) 2021-11-04

Family

ID=71556965

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/090035 WO2021218935A1 (zh) 2020-04-27 2021-04-26 计算机设备上的虚拟机的管理方法、装置、介质和系统

Country Status (2)

Country Link
CN (1) CN111427669A (zh)
WO (1) WO2021218935A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114296865A (zh) * 2021-12-15 2022-04-08 中汽创智科技有限公司 一种虚拟机线程的调度方法、装置、电子设备及存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427669A (zh) * 2020-04-27 2020-07-17 安谋科技(中国)有限公司 计算机设备上的虚拟机的管理方法、装置、介质和系统
CN112235210B (zh) * 2020-08-27 2023-01-10 上海赫千电子科技有限公司 一种基于车载以太网的多域控制器虚拟机数据通信方法及装置
CN113537507B (zh) * 2020-09-02 2024-05-24 腾讯科技(深圳)有限公司 机器学习系统、方法及电子设备
CN112330229B (zh) * 2020-12-02 2023-09-22 北京元心科技有限公司 资源调度方法、装置、电子设备及计算机可读存储介质
CN113419820A (zh) * 2021-07-02 2021-09-21 广州市品高软件股份有限公司 实时虚拟机的部署方法和云平台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007148371A1 (ja) * 2006-06-19 2007-12-27 Nec Corporation 仮想マシンのための性能管理システムと性能管理方法
CN102012835A (zh) * 2010-12-22 2011-04-13 北京航空航天大学 一种支持软实时应用的虚拟cpu调度方法
CN103678003A (zh) * 2013-12-18 2014-03-26 华中科技大学 一种实时性增强的虚拟cpu调度方法
CN111143025A (zh) * 2019-11-22 2020-05-12 中国船舶工业系统工程研究院 一种针对实时虚拟机实例管理的方法
CN111427669A (zh) * 2020-04-27 2020-07-17 安谋科技(中国)有限公司 计算机设备上的虚拟机的管理方法、装置、介质和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4705051B2 (ja) * 2007-01-29 2011-06-22 株式会社日立製作所 計算機システム
US20140229940A1 (en) * 2013-02-14 2014-08-14 General Dynamics C4 Systems, Inc. Methods and apparatus for synchronizing multiple processors of a virtual machine
AU2014311463B2 (en) * 2013-08-26 2017-02-16 VMware LLC Virtual machine monitor configured to support latency sensitive virtual machines
US10452572B2 (en) * 2016-10-06 2019-10-22 Vmware, Inc. Automatic system service resource management for virtualizing low-latency workloads that are input/output intensive
US11036555B2 (en) * 2018-07-25 2021-06-15 Vmware, Inc. Virtual processor allocation with execution guarantee

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007148371A1 (ja) * 2006-06-19 2007-12-27 Nec Corporation 仮想マシンのための性能管理システムと性能管理方法
CN102012835A (zh) * 2010-12-22 2011-04-13 北京航空航天大学 一种支持软实时应用的虚拟cpu调度方法
CN103678003A (zh) * 2013-12-18 2014-03-26 华中科技大学 一种实时性增强的虚拟cpu调度方法
CN111143025A (zh) * 2019-11-22 2020-05-12 中国船舶工业系统工程研究院 一种针对实时虚拟机实例管理的方法
CN111427669A (zh) * 2020-04-27 2020-07-17 安谋科技(中国)有限公司 计算机设备上的虚拟机的管理方法、装置、介质和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114296865A (zh) * 2021-12-15 2022-04-08 中汽创智科技有限公司 一种虚拟机线程的调度方法、装置、电子设备及存储介质
CN114296865B (zh) * 2021-12-15 2024-03-26 中汽创智科技有限公司 一种虚拟机线程的调度方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111427669A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
WO2021218935A1 (zh) 计算机设备上的虚拟机的管理方法、装置、介质和系统
CN105830026B (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
JP6110038B2 (ja) 異種マルチプロセッサシステムにおける共有メモリ領域のための動的なアドレスのネゴシエーション
TWI721060B (zh) 用於輸入/輸出裝置之可縮放虛擬化的位址轉譯設備、方法及系統
JP5170782B2 (ja) ヘテロジニアス処理ユニットのための集中デバイス仮想化レイヤ
JP5608243B2 (ja) 仮想化環境においてi/o処理を行う方法および装置
JP5345652B2 (ja) 部分仮想化マシンに基づく統一格納装置
US10860332B2 (en) Multicore framework for use in pre-boot environment of a system-on-chip
US20090265708A1 (en) Information Processing Apparatus and Method of Controlling Information Processing Apparatus
JP2008530706A (ja) メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム
EP2375324A2 (en) Virtualization apparatus for providing a transactional input/output interface
US11836091B2 (en) Secure memory access in a virtualized computing environment
CN113778612A (zh) 基于微内核机制的嵌入式虚拟化系统实现方法
CN112330229B (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
US11150928B2 (en) Hypervisor translation bypass
Shukla et al. Shared memory heterogeneous computation on PCIe-supported platforms
US20220335109A1 (en) On-demand paging support for confidential computing
KR101564293B1 (ko) 장치 가상화 방법 및 장치
WO2022100693A1 (zh) 一种地址转换关系的配置方法及计算机系统
US11853798B2 (en) Disaggregated memory pool assignment
Sinha et al. A paravirtualized android for next generation interactive automotive systems
CN112486632A (zh) 一种面向k8s的用户态虚拟设备驱动框架
TWI452468B (zh) 虛擬機器記憶體的分享方法與電腦系統
US8813075B2 (en) Virtual computer system and method of installing virtual computer system
CN113626148B (zh) 一种基于混合虚拟化的终端虚拟机生成系统及方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21795791

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 20/02/2023)

122 Ep: pct application non-entry in european phase

Ref document number: 21795791

Country of ref document: EP

Kind code of ref document: A1